*/
void
pixman_edge_init (pixman_edge_t *e,
- int n,
- pixman_fixed_t y_start,
- pixman_fixed_t x_top,
- pixman_fixed_t y_top,
- pixman_fixed_t x_bot,
- pixman_fixed_t y_bot)
+ int n,
+ pixman_fixed_t y_start,
+ pixman_fixed_t x_top,
+ pixman_fixed_t y_top,
+ pixman_fixed_t x_bot,
+ pixman_fixed_t y_bot)
{
pixman_fixed_t dx, dy;
pixman_line_fixed_edge_init (pixman_edge_t *e,
int n,
pixman_fixed_t y,
- pixman_line_fixed_t *line,
+ const pixman_line_fixed_t *line,
int x_off,
int y_off)
{
pixman_fixed_t x_off_fixed = pixman_int_to_fixed(x_off);
pixman_fixed_t y_off_fixed = pixman_int_to_fixed(y_off);
- pixman_point_fixed_t *top, *bot;
+ const pixman_point_fixed_t *top, *bot;
if (line->p1.y <= line->p2.y)
{
return image;
}
-void
+pixman_bool_t
pixman_image_set_clip_region (pixman_image_t *image,
pixman_region16_t *region)
{
if (region)
{
- pixman_region_copy (&common->clip_region, region);
+ return pixman_region_copy (&common->clip_region, region);
}
else
{
pixman_region_fini (&common->clip_region);
pixman_region_init (&common->clip_region);
+
+ return TRUE;
}
}
return PIXMAN_FORMAT_DEPTH (image->bits.format);
}
+
+pixman_bool_t
+pixman_image_fill_rectangles (pixman_op_t op,
+ pixman_image_t *dest,
+ pixman_color_t *color,
+ int n_rects,
+ const pixman_rectangle16_t *rects)
+{
+ pixman_image_t *solid = pixman_image_create_solid_fill (color);
+ int i;
+
+ if (!solid)
+ return FALSE;
+
+ for (i = 0; i < n_rects; ++i)
+ {
+ const pixman_rectangle16_t *rect = &(rects[i]);
+
+ pixman_image_composite (op, solid, NULL, dest,
+ 0, 0, 0, 0,
+ rect->x, rect->y,
+ rect->width, rect->height);
+ }
+
+ pixman_image_unref (solid);
+
+ return TRUE;
+}
void
pixman_rasterize_trapezoid (pixman_image_t * image,
- pixman_trapezoid_t *trap,
+ const pixman_trapezoid_t *trap,
int x_off,
int y_off)
{
/* Set properties */
-void pixman_image_set_clip_region (pixman_image_t *image,
+pixman_bool_t pixman_image_set_clip_region (pixman_image_t *image,
pixman_region16_t *region);
void pixman_image_set_has_client_clip (pixman_image_t *image,
pixman_bool_t clien_clip);
int pixman_image_get_height (pixman_image_t *image);
int pixman_image_get_stride (pixman_image_t *image);
int pixman_image_get_depth (pixman_image_t *image);
+pixman_bool_t pixman_image_fill_rectangles (pixman_op_t op,
+ pixman_image_t *image,
+ pixman_color_t *color,
+ int n_rects,
+ const pixman_rectangle16_t *rects);
/* Composite */
pixman_bool_t pixman_compute_composite_region (pixman_region16_t * pRegion,
void pixman_line_fixed_edge_init (pixman_edge_t *e,
int bpp,
pixman_fixed_t y,
- pixman_line_fixed_t *line,
+ const pixman_line_fixed_t *line,
int x_off,
int y_off);
void pixman_rasterize_edges (pixman_image_t *image,
pixman_trap_t *traps);
void pixman_add_trapezoids (pixman_image_t *image,
int16_t x_off,
- int y_off,
- int ntraps,
- const pixman_trapezoid_t *traps);
+ int y_off,
+ int ntraps,
+ const pixman_trapezoid_t *traps);
void pixman_rasterize_trapezoid (pixman_image_t *image,
- pixman_trapezoid_t *trap,
+ const pixman_trapezoid_t *trap,
int x_off,
int y_off);