60 cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 100, 20);
61 const double xy[] = { 10.5, 10.5, 90.5, 10.5 };
66 assert_int_equal(
_pixel(s, 50, 10), 0xff0000ffu);
68 assert_int_equal(
_alpha(s, 50, 11), 255);
70 const int edge =
_alpha(s, 50, 12);
71 assert_in_range(edge, 100, 155);
73 assert_int_equal(
_alpha(s, 50, 13), 0);
76 assert_int_equal(
_alpha(s, 9, 10), 255);
77 assert_in_range(
_alpha(s, 8, 10), 100, 155);
78 assert_int_equal(
_alpha(s, 7, 10), 0);
80 cairo_rectangle_int_t touched;
82 assert_true(touched.x <= 8 && touched.x + touched.width >= 93);
83 assert_true(touched.y <= 8 && touched.y + touched.height >= 13);
84 cairo_surface_destroy(s);
122 cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 100, 20);
123 const double xy[] = { 10.5, 10.5, 90.5, 10.5 };
128 assert_int_equal(
_pixel(s, 50, 10), 0xff00ff00u);
130 assert_int_equal(
_pixel(s, 50, 12), 0xffff0000u);
131 cairo_surface_destroy(s);
137 cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_RGB24, 100, 20);
138 cairo_t *cr = cairo_create(s);
139 cairo_move_to(cr, 10, 10);
140 cairo_line_to(cr, 90, 10);
144 assert_true(cairo_has_current_point(cr));
145 cairo_path_t *path = cairo_copy_path(cr);
146 assert_true(path->num_data > 0);
147 cairo_path_destroy(path);
149 cairo_surface_destroy(s);
157 cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 100, 100);
158 cairo_t *cr = cairo_create(s);
159 cairo_rectangle(cr, 20, 20, 60, 60);
161 cairo_push_group(cr);
162 cairo_move_to(cr, 30, 50);
163 cairo_line_to(cr, 70, 50);
166 assert_false(cairo_has_current_point(cr));
167 cairo_pop_group_to_source(cr);
171 assert_int_equal(
_alpha(s, 50, 50), 255);
172 assert_int_equal(
_alpha(s, 50, 45), 0);
173 assert_int_equal(
_alpha(s, 10, 50), 0);
174 assert_int_equal(
_alpha(s, 30, 50), 255);
175 cairo_surface_destroy(s);
181 cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 120, 60);
182 cairo_t *cr = cairo_create(s);
183 cairo_scale(cr, 2.0, 2.0);
184 cairo_move_to(cr, 10.25, 10.25);
185 cairo_line_to(cr, 40.25, 10.25);
189 assert_int_equal(
_alpha(s, 50, 20), 255);
190 assert_int_equal(
_alpha(s, 50, 21), 255);
191 assert_int_equal(
_alpha(s, 50, 23), 0);
192 assert_int_equal(
_alpha(s, 50, 10), 0);
193 cairo_surface_destroy(s);
203 cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 120, 60);
204 cairo_surface_set_device_scale(s, 2.0, 2.0);
205 cairo_t *cr = cairo_create(s);
206 cairo_move_to(cr, 10.25, 10.25);
207 cairo_line_to(cr, 40.25, 10.25);
211 assert_int_equal(
_alpha(s, 50, 20), 255);
212 assert_int_equal(
_alpha(s, 50, 21), 255);
213 assert_int_equal(
_alpha(s, 50, 23), 0);
214 assert_int_equal(
_alpha(s, 50, 10), 0);
215 assert_int_equal(
_alpha(s, 25, 10), 0);
216 assert_int_equal(
_alpha(s, 79, 20), 255);
217 assert_int_equal(
_alpha(s, 86, 20), 0);
218 cairo_surface_destroy(s);
221 s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 120, 120);
222 cairo_surface_set_device_scale(s, 2.0, 2.0);
223 cr = cairo_create(s);
224 cairo_rectangle(cr, 10, 10, 40, 40);
226 cairo_push_group(cr);
227 cairo_move_to(cr, 15, 30);
228 cairo_line_to(cr, 45, 30);
230 cairo_pop_group_to_source(cr);
233 assert_int_equal(
_alpha(s, 60, 60), 255);
234 assert_int_equal(
_alpha(s, 60, 30), 0);
235 assert_int_equal(
_alpha(s, 10, 60), 0);
236 cairo_surface_destroy(s);