summaryrefslogtreecommitdiff
path: root/src/cairo-gl-shaders.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2010-05-19 20:47:31 +0200
committerBenjamin Otte <otte@redhat.com>2010-05-20 11:02:49 +0200
commitbb7ca71c1af416ca084f03089f5fe762403635dd (patch)
tree2741ab8fa64009ca31fc60eacda364aa930cc52d /src/cairo-gl-shaders.c
parent6c477b4a945a8f8b866bb2f5e125d4a0328d05f4 (diff)
gl: Don't store the shader in the composite_t anymore
Now that we have ctx->current_shader, there's no need to keep it in the composite setup code.
Diffstat (limited to 'src/cairo-gl-shaders.c')
-rw-r--r--src/cairo-gl-shaders.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/cairo-gl-shaders.c b/src/cairo-gl-shaders.c
index 246598c0..d2c19737 100644
--- a/src/cairo-gl-shaders.c
+++ b/src/cairo-gl-shaders.c
@@ -925,17 +925,15 @@ _cairo_gl_set_shader (cairo_gl_context_t *ctx,
}
cairo_status_t
-_cairo_gl_get_shader (cairo_gl_context_t *ctx,
- cairo_gl_operand_type_t source,
- cairo_gl_operand_type_t mask,
- cairo_gl_shader_in_t in,
- cairo_gl_shader_t **out)
+_cairo_gl_set_shader_by_type (cairo_gl_context_t *ctx,
+ cairo_gl_operand_type_t source,
+ cairo_gl_operand_type_t mask,
+ cairo_gl_shader_in_t in)
{
cairo_shader_cache_entry_t lookup, *entry;
char *fs_source;
cairo_status_t status;
- *out = NULL;
if (ctx->shader_impl == NULL)
return CAIRO_STATUS_SUCCESS;
@@ -949,7 +947,7 @@ _cairo_gl_get_shader (cairo_gl_context_t *ctx,
entry = _cairo_cache_lookup (&ctx->shaders, &lookup.base);
if (entry) {
assert (entry->shader.program);
- *out = &entry->shader;
+ _cairo_gl_set_shader (ctx, &entry->shader);
return CAIRO_STATUS_SUCCESS;
}
@@ -992,6 +990,7 @@ _cairo_gl_get_shader (cairo_gl_context_t *ctx,
}
_cairo_gl_set_shader (ctx, &entry->shader);
+
if (source != CAIRO_GL_OPERAND_CONSTANT) {
_cairo_gl_shader_bind_texture (ctx, "source_sampler", 0);
}
@@ -1001,8 +1000,5 @@ _cairo_gl_get_shader (cairo_gl_context_t *ctx,
_cairo_gl_shader_bind_texture (ctx, "mask_sampler", 1);
}
- _cairo_gl_set_shader (ctx, NULL);
-
- *out = &entry->shader;
return CAIRO_STATUS_SUCCESS;
}