[cairo-commit] src/cairo-gl-operand.c

Martin Robinson mrobinson at kemper.freedesktop.org
Tue Jan 15 15:48:57 PST 2013


 src/cairo-gl-operand.c |    3 +++
 1 file changed, 3 insertions(+)

New commits:
commit 769ea3b2c757adc9f8f348fdc93bb46f35c2f6b8
Author: Henry Song <henry.song at samsung.com>
Date:   Wed May 2 21:54:55 2012 +0200

    gl: Support for non-texture sources and masks
    
    If a GL surface is not a texture and is used as source or mask,
    fall back to using an image surface as an intermediary.
    
    Fixes subsurface-image-repeat, subsurface-modify-child,
    subsurface-modify-parent, subsurface-outside-target, subsurface-pad,
    subsurface-reflect, subsurface-repeat, and subsurface-scale.

diff --git a/src/cairo-gl-operand.c b/src/cairo-gl-operand.c
index ee6c08e..47d0104 100644
--- a/src/cairo-gl-operand.c
+++ b/src/cairo-gl-operand.c
@@ -269,6 +269,9 @@ _cairo_gl_surface_operand_init (cairo_gl_operand_t *operand,
     if (surface->base.device && surface->base.device != dst->base.device)
 	return CAIRO_INT_STATUS_UNSUPPORTED;
 
+    if (! _cairo_gl_surface_is_texture (surface))
+	return CAIRO_INT_STATUS_UNSUPPORTED;
+
     status = _resolve_multisampling (surface);
     if (unlikely (status))
 	return status;


More information about the cairo-commit mailing list