diff --git a/src/cairo-gl-surface.c b/src/cairo-gl-surface.c index 889e41deb..69fcc8ca5 100644 --- a/src/cairo-gl-surface.c +++ b/src/cairo-gl-surface.c @@ -2011,9 +2011,6 @@ _cairo_gl_surface_composite (cairo_operator_t op, int num_vertices, i; cairo_gl_composite_setup_t setup; - if (! _cairo_gl_operator_is_supported (op)) - return UNSUPPORTED ("unsupported operator"); - if (mask && mask->has_component_alpha) { /* Try two-pass component alpha support, or bail. */ return _cairo_gl_surface_composite_component_alpha(op, @@ -2031,6 +2028,9 @@ _cairo_gl_surface_composite (cairo_operator_t op, clip_region); } + if (! _cairo_gl_operator_is_supported (op)) + return UNSUPPORTED ("unsupported operator"); + memset (&setup, 0, sizeof (setup)); status = _cairo_gl_context_acquire (dst->base.device, &ctx);