mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-09 06:08:02 +02:00
[script] Wrap snapshot.
Use the snapshot of our target surface if available.
This commit is contained in:
parent
fee647c985
commit
8f8b91d904
3 changed files with 25 additions and 4 deletions
|
|
@ -761,9 +761,10 @@ _emit_solid_pattern (cairo_script_surface_t *surface,
|
|||
! CAIRO_COLOR_IS_OPAQUE (&solid->color))
|
||||
{
|
||||
if (! (solid->content & CAIRO_CONTENT_COLOR) ||
|
||||
(solid->color.red_short == 0 &&
|
||||
solid->color.green_short == 0 &&
|
||||
solid->color.blue_short == 0))
|
||||
! (surface->base.content & CAIRO_CONTENT_COLOR) ||
|
||||
((solid->color.red_short == 0 || solid->color.red_short == 0xffff) &&
|
||||
(solid->color.green_short == 0 || solid->color.green_short == 0xffff) &&
|
||||
(solid->color.blue_short == 0 || solid->color.blue_short == 0xffff) ))
|
||||
{
|
||||
_cairo_output_stream_printf (surface->ctx->stream,
|
||||
"%f a",
|
||||
|
|
@ -2206,6 +2207,17 @@ _cairo_script_surface_fill (void *abstract_surface,
|
|||
return CAIRO_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static cairo_surface_t *
|
||||
_cairo_script_surface_snapshot (void *abstract_surface)
|
||||
{
|
||||
cairo_script_surface_t *surface = abstract_surface;
|
||||
|
||||
if (_cairo_surface_wrapper_is_active (&surface->wrapper))
|
||||
return _cairo_surface_wrapper_snapshot (&surface->wrapper);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static cairo_bool_t
|
||||
_cairo_script_surface_has_show_text_glyphs (void *abstract_surface)
|
||||
{
|
||||
|
|
@ -3058,7 +3070,7 @@ _cairo_script_surface_backend = {
|
|||
_cairo_script_surface_fill,
|
||||
NULL,
|
||||
|
||||
NULL, /* _cairo_script_surface_snapshot, */
|
||||
_cairo_script_surface_snapshot,
|
||||
|
||||
NULL, /* is_similar */
|
||||
/* XXX need fill-stroke for passthrough */
|
||||
|
|
|
|||
|
|
@ -142,6 +142,9 @@ cairo_private cairo_bool_t
|
|||
_cairo_surface_wrapper_get_extents (cairo_surface_wrapper_t *wrapper,
|
||||
cairo_rectangle_int_t *extents);
|
||||
|
||||
cairo_private cairo_surface_t *
|
||||
_cairo_surface_wrapper_snapshot (cairo_surface_wrapper_t *wrapper);
|
||||
|
||||
cairo_private cairo_bool_t
|
||||
_cairo_surface_wrapper_has_show_text_glyphs (cairo_surface_wrapper_t *wrapper);
|
||||
|
||||
|
|
|
|||
|
|
@ -429,6 +429,12 @@ _cairo_surface_wrapper_get_extents (cairo_surface_wrapper_t *wrapper,
|
|||
return _cairo_surface_get_extents (wrapper->target, extents);
|
||||
}
|
||||
|
||||
cairo_surface_t *
|
||||
_cairo_surface_wrapper_snapshot (cairo_surface_wrapper_t *wrapper)
|
||||
{
|
||||
return _cairo_surface_snapshot (wrapper->target);
|
||||
}
|
||||
|
||||
cairo_bool_t
|
||||
_cairo_surface_wrapper_has_show_text_glyphs (cairo_surface_wrapper_t *wrapper)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue