Subversion Repositories Kolibri OS

Rev

Rev 1892 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1892 Rev 3959
Line 34... Line 34...
34
#define CAIRO_SPANS_UNIT_COVERAGE ((1 << CAIRO_SPANS_UNIT_COVERAGE_BITS)-1)
34
#define CAIRO_SPANS_UNIT_COVERAGE ((1 << CAIRO_SPANS_UNIT_COVERAGE_BITS)-1)
Line 35... Line 35...
35
 
35
 
36
/* A structure representing an open-ended horizontal span of constant
36
/* A structure representing an open-ended horizontal span of constant
37
 * pixel coverage. */
37
 * pixel coverage. */
38
typedef struct _cairo_half_open_span {
38
typedef struct _cairo_half_open_span {
39
    /* The inclusive x-coordinate of the start of the span. */
-
 
40
    int x;
-
 
41
 
39
    int32_t x; /* The inclusive x-coordinate of the start of the span. */
42
    /* The pixel coverage for the pixels to the right. */
40
    uint8_t coverage; /* The pixel coverage for the pixels to the right. */
43
    int coverage;
41
    uint8_t inverse; /* between regular mask and clip */
Line 44... Line 42...
44
} cairo_half_open_span_t;
42
} cairo_half_open_span_t;
45
 
43
 
46
/* Span renderer interface. Instances of renderers are provided by
44
/* Span renderer interface. Instances of renderers are provided by
Line 71... Line 69...
71
typedef struct _cairo_scan_converter cairo_scan_converter_t;
69
typedef struct _cairo_scan_converter cairo_scan_converter_t;
72
struct _cairo_scan_converter {
70
struct _cairo_scan_converter {
73
    /* Destroy this scan converter. */
71
    /* Destroy this scan converter. */
74
    cairo_destroy_func_t	destroy;
72
    cairo_destroy_func_t	destroy;
Line 75... Line -...
75
 
-
 
76
    /* Add a single edge to the converter. */
-
 
77
    cairo_status_t (*add_edge) (void		    *abstract_converter,
-
 
78
				const cairo_point_t *p1,
-
 
79
				const cairo_point_t *p2,
-
 
80
				int top, int bottom,
-
 
81
				int dir);
-
 
82
 
-
 
83
    /* Add a polygon (set of edges) to the converter. */
-
 
84
    cairo_status_t (*add_polygon) (void		    *abstract_converter,
-
 
85
				   const cairo_polygon_t  *polygon);
-
 
86
 
73
 
87
    /* Generates coverage spans for rows for the added edges and calls
74
    /* Generates coverage spans for rows for the added edges and calls
88
     * the renderer function for each row. After generating spans the
75
     * the renderer function for each row. After generating spans the
89
     * only valid thing to do with the converter is to destroy it. */
76
     * only valid thing to do with the converter is to destroy it. */
90
    cairo_status_t (*generate) (void			*abstract_converter,
77
    cairo_status_t (*generate) (void			*abstract_converter,
Line 99... Line 86...
99
cairo_private cairo_scan_converter_t *
86
cairo_private cairo_scan_converter_t *
100
_cairo_tor_scan_converter_create (int			xmin,
87
_cairo_tor_scan_converter_create (int			xmin,
101
				  int			ymin,
88
				  int			ymin,
102
				  int			xmax,
89
				  int			xmax,
103
				  int			ymax,
90
				  int			ymax,
-
 
91
				  cairo_fill_rule_t	fill_rule,
-
 
92
				  cairo_antialias_t	antialias);
-
 
93
cairo_private cairo_status_t
-
 
94
_cairo_tor_scan_converter_add_polygon (void		*converter,
-
 
95
				       const cairo_polygon_t *polygon);
-
 
96
 
-
 
97
cairo_private cairo_scan_converter_t *
-
 
98
_cairo_tor22_scan_converter_create (int			xmin,
-
 
99
				    int			ymin,
-
 
100
				    int			xmax,
-
 
101
				    int			ymax,
-
 
102
				    cairo_fill_rule_t	fill_rule,
-
 
103
				    cairo_antialias_t	antialias);
-
 
104
cairo_private cairo_status_t
-
 
105
_cairo_tor22_scan_converter_add_polygon (void		*converter,
-
 
106
					 const cairo_polygon_t *polygon);
-
 
107
 
-
 
108
cairo_private cairo_scan_converter_t *
-
 
109
_cairo_mono_scan_converter_create (int			xmin,
-
 
110
				   int			ymin,
-
 
111
				   int			xmax,
-
 
112
				   int			ymax,
104
				  cairo_fill_rule_t	fill_rule);
113
				   cairo_fill_rule_t	fill_rule);
-
 
114
cairo_private cairo_status_t
-
 
115
_cairo_mono_scan_converter_add_polygon (void		*converter,
-
 
116
					const cairo_polygon_t *polygon);
-
 
117
 
-
 
118
cairo_private cairo_scan_converter_t *
-
 
119
_cairo_clip_tor_scan_converter_create (cairo_clip_t *clip,
-
 
120
				       cairo_polygon_t *polygon,
-
 
121
				       cairo_fill_rule_t fill_rule,
-
 
122
				       cairo_antialias_t antialias);
Line 105... Line 123...
105
 
123
 
106
typedef struct _cairo_rectangular_scan_converter {
124
typedef struct _cairo_rectangular_scan_converter {
Line 107... Line 125...
107
    cairo_scan_converter_t base;
125
    cairo_scan_converter_t base;
108
 
-
 
Line 109... Line 126...
109
    int xmin, xmax;
126
 
110
    int ymin, ymax;
127
    cairo_box_t extents;
111
 
128
 
112
    struct _cairo_rectangular_scan_converter_chunk {
129
    struct _cairo_rectangular_scan_converter_chunk {