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 36... | Line 36... | ||
36 | 36 | ||
37 | #ifndef CAIRO_COMPOSITE_RECTANGLES_PRIVATE_H |
37 | #ifndef CAIRO_COMPOSITE_RECTANGLES_PRIVATE_H |
Line 38... | Line 38... | ||
38 | #define CAIRO_COMPOSITE_RECTANGLES_PRIVATE_H |
38 | #define CAIRO_COMPOSITE_RECTANGLES_PRIVATE_H |
- | 39 | ||
- | 40 | #include "cairo-types-private.h" |
|
Line 39... | Line 41... | ||
39 | 41 | #include "cairo-error-private.h" |
|
Line 40... | Line 42... | ||
40 | #include "cairo-types-private.h" |
42 | #include "cairo-pattern-private.h" |
41 | 43 | ||
Line 49... | Line 51... | ||
49 | * the operation may require. Whether or not the operation is actually bounded |
51 | * the operation may require. Whether or not the operation is actually bounded |
50 | * is tracked in the is_bounded boolean. |
52 | * is tracked in the is_bounded boolean. |
51 | * |
53 | * |
52 | */ |
54 | */ |
53 | struct _cairo_composite_rectangles { |
55 | struct _cairo_composite_rectangles { |
- | 56 | cairo_surface_t *surface; |
|
- | 57 | cairo_operator_t op; |
|
- | 58 | ||
54 | cairo_rectangle_int_t source; |
59 | cairo_rectangle_int_t source; |
55 | cairo_rectangle_int_t mask; |
60 | cairo_rectangle_int_t mask; |
56 | cairo_rectangle_int_t bounded; /* dst */ |
61 | cairo_rectangle_int_t destination; |
- | 62 | ||
- | 63 | cairo_rectangle_int_t bounded; /* source? IN mask? IN unbounded */ |
|
57 | cairo_rectangle_int_t unbounded; /* clip */ |
64 | cairo_rectangle_int_t unbounded; /* destination IN clip */ |
58 | uint32_t is_bounded; |
65 | uint32_t is_bounded; |
- | 66 | ||
- | 67 | cairo_rectangle_int_t source_sample_area; |
|
- | 68 | cairo_rectangle_int_t mask_sample_area; |
|
- | 69 | ||
- | 70 | cairo_pattern_union_t source_pattern; |
|
- | 71 | cairo_pattern_union_t mask_pattern; |
|
- | 72 | const cairo_pattern_t *original_source_pattern; |
|
- | 73 | const cairo_pattern_t *original_mask_pattern; |
|
- | 74 | ||
- | 75 | cairo_clip_t *clip; /* clip will be reduced to the minimal container */ |
|
59 | }; |
76 | }; |
Line 60... | Line 77... | ||
60 | 77 | ||
61 | cairo_private cairo_int_status_t |
78 | cairo_private cairo_int_status_t |
62 | _cairo_composite_rectangles_init_for_paint (cairo_composite_rectangles_t *extents, |
79 | _cairo_composite_rectangles_init_for_paint (cairo_composite_rectangles_t *extents, |
63 | int surface_width, int surface_height, |
80 | cairo_surface_t *surface, |
64 | cairo_operator_t op, |
81 | cairo_operator_t op, |
65 | const cairo_pattern_t *source, |
82 | const cairo_pattern_t *source, |
Line 66... | Line 83... | ||
66 | cairo_clip_t *clip); |
83 | const cairo_clip_t *clip); |
67 | 84 | ||
68 | cairo_private cairo_int_status_t |
85 | cairo_private cairo_int_status_t |
69 | _cairo_composite_rectangles_init_for_mask (cairo_composite_rectangles_t *extents, |
86 | _cairo_composite_rectangles_init_for_mask (cairo_composite_rectangles_t *extents, |
70 | int surface_width, int surface_height, |
87 | cairo_surface_t *surface, |
71 | cairo_operator_t op, |
88 | cairo_operator_t op, |
72 | const cairo_pattern_t *source, |
89 | const cairo_pattern_t *source, |
Line 73... | Line 90... | ||
73 | const cairo_pattern_t *mask, |
90 | const cairo_pattern_t *mask, |
74 | cairo_clip_t *clip); |
91 | const cairo_clip_t *clip); |
75 | 92 | ||
76 | cairo_private cairo_int_status_t |
93 | cairo_private cairo_int_status_t |
77 | _cairo_composite_rectangles_init_for_stroke (cairo_composite_rectangles_t *extents, |
94 | _cairo_composite_rectangles_init_for_stroke (cairo_composite_rectangles_t *extents, |
78 | int surface_width, int surface_height, |
95 | cairo_surface_t *surface, |
79 | cairo_operator_t op, |
96 | cairo_operator_t op, |
80 | const cairo_pattern_t *source, |
97 | const cairo_pattern_t *source, |
81 | cairo_path_fixed_t *path, |
98 | const cairo_path_fixed_t *path, |
Line 82... | Line 99... | ||
82 | const cairo_stroke_style_t *style, |
99 | const cairo_stroke_style_t *style, |
83 | const cairo_matrix_t *ctm, |
100 | const cairo_matrix_t *ctm, |
84 | cairo_clip_t *clip); |
101 | const cairo_clip_t *clip); |
85 | 102 | ||
86 | cairo_private cairo_int_status_t |
103 | cairo_private cairo_int_status_t |
87 | _cairo_composite_rectangles_init_for_fill (cairo_composite_rectangles_t *extents, |
104 | _cairo_composite_rectangles_init_for_fill (cairo_composite_rectangles_t *extents, |
88 | int surface_width, int surface_height, |
105 | cairo_surface_t *surface, |
- | 106 | cairo_operator_t op, |
|
- | 107 | const cairo_pattern_t *source, |
|
- | 108 | const cairo_path_fixed_t *path, |
|
- | 109 | const cairo_clip_t *clip); |
|
- | 110 | ||
- | 111 | cairo_private cairo_int_status_t |
|
- | 112 | _cairo_composite_rectangles_init_for_boxes (cairo_composite_rectangles_t *extents, |
|
- | 113 | cairo_surface_t *surface, |
|
- | 114 | cairo_operator_t op, |
|
- | 115 | const cairo_pattern_t *source, |
|
- | 116 | const cairo_boxes_t *boxes, |
|
- | 117 | const cairo_clip_t *clip); |
|
- | 118 | ||
- | 119 | cairo_private cairo_int_status_t |
|
- | 120 | _cairo_composite_rectangles_init_for_polygon (cairo_composite_rectangles_t *extents, |
|
- | 121 | cairo_surface_t *surface, |
|
Line 89... | Line 122... | ||
89 | cairo_operator_t op, |
122 | cairo_operator_t op, |
90 | const cairo_pattern_t *source, |
123 | const cairo_pattern_t *source, |
91 | cairo_path_fixed_t *path, |
124 | const cairo_polygon_t *polygon, |
92 | cairo_clip_t *clip); |
125 | const cairo_clip_t *clip); |
93 | 126 | ||
94 | cairo_private cairo_int_status_t |
127 | cairo_private cairo_int_status_t |
95 | _cairo_composite_rectangles_init_for_glyphs (cairo_composite_rectangles_t *extents, |
128 | _cairo_composite_rectangles_init_for_glyphs (cairo_composite_rectangles_t *extents, |
96 | int surface_width, int surface_height, |
129 | cairo_surface_t *surface, |
97 | cairo_operator_t op, |
130 | cairo_operator_t op, |
98 | const cairo_pattern_t *source, |
131 | const cairo_pattern_t *source, |
Line -... | Line 132... | ||
- | 132 | cairo_scaled_font_t *scaled_font, |
|
- | 133 | cairo_glyph_t *glyphs, |
|
- | 134 | int num_glyphs, |
|
- | 135 | const cairo_clip_t *clip, |
|
- | 136 | cairo_bool_t *overlap); |
|
- | 137 | ||
- | 138 | cairo_private cairo_int_status_t |
|
- | 139 | _cairo_composite_rectangles_intersect_source_extents (cairo_composite_rectangles_t *extents, |
|
- | 140 | const cairo_box_t *box); |
|
- | 141 | ||
- | 142 | cairo_private cairo_int_status_t |
|
- | 143 | _cairo_composite_rectangles_intersect_mask_extents (cairo_composite_rectangles_t *extents, |
|
- | 144 | const cairo_box_t *box); |
|
- | 145 | ||
- | 146 | cairo_private cairo_bool_t |
|
- | 147 | _cairo_composite_rectangles_can_reduce_clip (cairo_composite_rectangles_t *composite, |
|
- | 148 | cairo_clip_t *clip); |
|
- | 149 | ||
- | 150 | cairo_private cairo_int_status_t |
|
- | 151 | _cairo_composite_rectangles_add_to_damage (cairo_composite_rectangles_t *composite, |
|
- | 152 | cairo_boxes_t *damage); |
|
99 | cairo_scaled_font_t *scaled_font, |
153 |