diff options
Diffstat (limited to 'src/cairo-gl-spans-compositor.c')
-rw-r--r-- | src/cairo-gl-spans-compositor.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/cairo-gl-spans-compositor.c b/src/cairo-gl-spans-compositor.c index c5d97aa7..4317ccd0 100644 --- a/src/cairo-gl-spans-compositor.c +++ b/src/cairo-gl-spans-compositor.c @@ -431,6 +431,13 @@ _cairo_gl_span_renderer_init (cairo_abstract_span_renderer_t *_r, cairo_operator_t op = composite->op; cairo_int_status_t status; + if (op == CAIRO_OPERATOR_SOURCE) { + if (! _cairo_pattern_is_opaque (&composite->source_pattern.base, + &composite->source_sample_area)) + return CAIRO_INT_STATUS_UNSUPPORTED; + op = CAIRO_OPERATOR_OVER; + } + /* XXX earlier! */ if (op == CAIRO_OPERATOR_CLEAR) { source = &_cairo_pattern_white.base; |