summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2010-06-07 16:46:46 +0200
committerBenjamin Otte <otte@redhat.com>2010-06-07 16:46:46 +0200
commit7d8359721b581845260c0442a174e48b061484a7 (patch)
tree13143d52d26ec6cab4cf404dda55b8dde587d46a
parentef8fd1355ea03b8566ef31642b32133d3543e4e8 (diff)
gl: Fix span renderer doing bad stuff for CLEAR and SOURCEgl
SOURCE will fallback now, CLEAR is identical to DEST_OUT with white.
-rw-r--r--src/cairo-gl-surface.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/cairo-gl-surface.c b/src/cairo-gl-surface.c
index 02278fbf..8a2379fe 100644
--- a/src/cairo-gl-surface.c
+++ b/src/cairo-gl-surface.c
@@ -1342,6 +1342,13 @@ _cairo_gl_surface_polygon (cairo_gl_surface_t *dst,
if (! _cairo_surface_check_span_renderer (op, src, &dst->base, antialias))
return UNSUPPORTED ("no span renderer");
+ if (op == CAIRO_OPERATOR_SOURCE)
+ return UNSUPPORTED ("SOURCE compositing doesn't work in GL");
+ if (op == CAIRO_OPERATOR_CLEAR) {
+ op = CAIRO_OPERATOR_DEST_OUT;
+ src = &_cairo_pattern_white.base;
+ }
+
status = _cairo_surface_composite_polygon (&dst->base,
op,
src,