[cairo] How can I fin out out the current clip region of cairo
M Joonas Pihlaja
jpihlaja at cc.helsinki.fi
Thu Feb 25 14:08:10 PST 2010
On Thu, 25 Feb 2010, silverburgh wrote:
> Hi,
>
> >From cairo documentation
> http://www.cairographics.org/manual/cairo-context.html#cairo-clip, it
> said:
>
> The current clip region affects all drawing operations by effectively
> masking out any changes to the surface that are outside the current
> clip region.
>
> Can you please tell me how can I print out the current cairo clip
> region to screen/file for debugging purpose?
You can get the clip region as a list of rectangles using
cairo_copy_clip_rectangle_list(). If the clip isn't possible to
represent as rectangles that won't do you any good though.
An alternative way to debug the clip might be to paint with solid
white to a temporary surface something like this and seeing where the
paint lands:
cairo_pattern_t *clip_pattern;
cairo_surface_t *clip_surface;
cairo_push_group (cr);
cairo_set_source_rgb (cr, 1, 1, 1);
cairo_paint (cr);
clip_pattern = cairo_pop_target (cr);
cairo_pattern_get_surface (clip_pattern, &clip_surface);
cairo_surface_write_to_png (clip_surface, "clip.png");
cairo_pattern_destroy (clip_pattern);
Hope that helps,
Joonas
More information about the cairo
mailing list