64 cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 100, 20);
65 const double xy[] = { 10.5, 10.5, 90.5, 10.5 };
70 assert_int_equal(
_pixel(s, 50, 10), 0xff0000ffu);
72 assert_int_equal(
_alpha(s, 50, 11), 255);
74 const int edge =
_alpha(s, 50, 12);
75 assert_in_range(edge, 100, 155);
77 assert_int_equal(
_alpha(s, 50, 13), 0);
80 assert_int_equal(
_alpha(s, 9, 10), 255);
81 assert_in_range(
_alpha(s, 8, 10), 100, 155);
82 assert_int_equal(
_alpha(s, 7, 10), 0);
84 cairo_rectangle_int_t touched;
86 assert_true(touched.x <= 8 && touched.x + touched.width >= 93);
87 assert_true(touched.y <= 8 && touched.y + touched.height >= 13);
88 cairo_surface_destroy(s);
126 cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 100, 20);
127 const double xy[] = { 10.5, 10.5, 90.5, 10.5 };
132 assert_int_equal(
_pixel(s, 50, 10), 0xff00ff00u);
134 assert_int_equal(
_pixel(s, 50, 12), 0xffff0000u);
135 cairo_surface_destroy(s);
141 cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_RGB24, 100, 20);
142 cairo_t *cr = cairo_create(s);
143 cairo_move_to(cr, 10, 10);
144 cairo_line_to(cr, 90, 10);
148 assert_true(cairo_has_current_point(cr));
149 cairo_path_t *path = cairo_copy_path(cr);
150 assert_true(path->num_data > 0);
151 cairo_path_destroy(path);
153 cairo_surface_destroy(s);
161 cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 100, 100);
162 cairo_t *cr = cairo_create(s);
163 cairo_rectangle(cr, 20, 20, 60, 60);
165 cairo_push_group(cr);
166 cairo_move_to(cr, 30, 50);
167 cairo_line_to(cr, 70, 50);
170 assert_false(cairo_has_current_point(cr));
171 cairo_pop_group_to_source(cr);
175 assert_int_equal(
_alpha(s, 50, 50), 255);
176 assert_int_equal(
_alpha(s, 50, 45), 0);
177 assert_int_equal(
_alpha(s, 10, 50), 0);
178 assert_int_equal(
_alpha(s, 30, 50), 255);
179 cairo_surface_destroy(s);
185 cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 120, 60);
186 cairo_t *cr = cairo_create(s);
187 cairo_scale(cr, 2.0, 2.0);
188 cairo_move_to(cr, 10.25, 10.25);
189 cairo_line_to(cr, 40.25, 10.25);
193 assert_int_equal(
_alpha(s, 50, 20), 255);
194 assert_int_equal(
_alpha(s, 50, 21), 255);
195 assert_int_equal(
_alpha(s, 50, 23), 0);
196 assert_int_equal(
_alpha(s, 50, 10), 0);
197 cairo_surface_destroy(s);
207 cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 120, 60);
208 cairo_surface_set_device_scale(s, 2.0, 2.0);
209 cairo_t *cr = cairo_create(s);
210 cairo_move_to(cr, 10.25, 10.25);
211 cairo_line_to(cr, 40.25, 10.25);
215 assert_int_equal(
_alpha(s, 50, 20), 255);
216 assert_int_equal(
_alpha(s, 50, 21), 255);
217 assert_int_equal(
_alpha(s, 50, 23), 0);
218 assert_int_equal(
_alpha(s, 50, 10), 0);
219 assert_int_equal(
_alpha(s, 25, 10), 0);
220 assert_int_equal(
_alpha(s, 79, 20), 255);
221 assert_int_equal(
_alpha(s, 86, 20), 0);
222 cairo_surface_destroy(s);
225 s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 120, 120);
226 cairo_surface_set_device_scale(s, 2.0, 2.0);
227 cr = cairo_create(s);
228 cairo_rectangle(cr, 10, 10, 40, 40);
230 cairo_push_group(cr);
231 cairo_move_to(cr, 15, 30);
232 cairo_line_to(cr, 45, 30);
234 cairo_pop_group_to_source(cr);
237 assert_int_equal(
_alpha(s, 60, 60), 255);
238 assert_int_equal(
_alpha(s, 60, 30), 0);
239 assert_int_equal(
_alpha(s, 10, 60), 0);
240 cairo_surface_destroy(s);