diff options
author | Henry Song <henry.song@samsung.com> | 2012-05-02 21:54:55 +0200 |
---|---|---|
committer | Martin Robinson <mrobinson@igalia.com> | 2013-01-15 15:09:03 -0800 |
commit | 769ea3b2c757adc9f8f348fdc93bb46f35c2f6b8 (patch) | |
tree | 950f6438b488a489ba1a2d563651966e4d7d3f48 /src | |
parent | d01a502710296c9b15755f445f6fdda289a2df0b (diff) |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/cairo-gl-operand.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cairo-gl-operand.c b/src/cairo-gl-operand.c index ee6c08e6..47d01046 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; |