diff options
author | Henry Song <henry.song@samsung.com> | 2012-05-15 20:32:44 +0200 |
---|---|---|
committer | Martin Robinson <mrobinson@igalia.com> | 2012-12-05 15:56:35 -0800 |
commit | 3bedff0c009e645fff2d6f40976b4483871e73e1 (patch) | |
tree | 130164dbe4002f450ab82a232174e0ad37887046 | |
parent | 18e7234c7e56ca26d7d7a2e29b1da2bb6944bb34 (diff) | |
download | cairo-3bedff0c009e645fff2d6f40976b4483871e73e1.tar.gz |
gl: Properly disable ctx->spans when necessary
When compositing starts, if we are not using the spans compositor, we
should set the spans member of the context to false.
-rw-r--r-- | src/cairo-gl-composite.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/cairo-gl-composite.c b/src/cairo-gl-composite.c index 45fa04297..e222c444b 100644 --- a/src/cairo-gl-composite.c +++ b/src/cairo-gl-composite.c @@ -266,11 +266,18 @@ _cairo_gl_context_setup_operand (cairo_gl_context_t *ctx, static void _cairo_gl_context_setup_spans (cairo_gl_context_t *ctx, + cairo_bool_t spans_enabled, unsigned int vertex_size, unsigned int vertex_offset) { cairo_gl_dispatch_t *dispatch = &ctx->dispatch; + if (! spans_enabled) { + dispatch->DisableVertexAttribArray (CAIRO_GL_COLOR_ATTRIB_INDEX); + ctx->spans = FALSE; + return; + } + dispatch->VertexAttribPointer (CAIRO_GL_COLOR_ATTRIB_INDEX, 4, GL_UNSIGNED_BYTE, GL_TRUE, vertex_size, ctx->vb + vertex_offset); @@ -681,10 +688,9 @@ _cairo_gl_composite_begin_multisample (cairo_gl_composite_t *setup, _cairo_gl_context_setup_operand (ctx, CAIRO_GL_TEX_SOURCE, &setup->src, vertex_size, dst_size); _cairo_gl_context_setup_operand (ctx, CAIRO_GL_TEX_MASK, &setup->mask, vertex_size, dst_size + src_size); - if (setup->spans) - _cairo_gl_context_setup_spans (ctx, vertex_size, dst_size + src_size + mask_size); - else - ctx->dispatch.DisableVertexAttribArray (CAIRO_GL_COLOR_ATTRIB_INDEX); + + _cairo_gl_context_setup_spans (ctx, setup->spans, vertex_size, + dst_size + src_size + mask_size); _cairo_gl_set_operator (ctx, setup->op, component_alpha); |