diff options
-rw-r--r-- | clutter/clutter-blur-effect.c | 14 | ||||
-rw-r--r-- | clutter/clutter-colorize-effect.c | 10 | ||||
-rw-r--r-- | clutter/clutter-desaturate-effect.c | 10 | ||||
-rw-r--r-- | clutter/clutter-shader-effect.c | 31 |
4 files changed, 34 insertions, 31 deletions
diff --git a/clutter/clutter-blur-effect.c b/clutter/clutter-blur-effect.c index 34e9a8099..7ac2622d0 100644 --- a/clutter/clutter-blur-effect.c +++ b/clutter/clutter-blur-effect.c @@ -221,18 +221,18 @@ clutter_blur_effect_paint_target (ClutterOffscreenEffect *effect) if (self->program == COGL_INVALID_HANDLE) goto out; - cogl_program_use (self->program); - if (self->tex_uniform > -1) - cogl_program_uniform_1i (self->tex_uniform, 0); + cogl_program_set_uniform_1i (self->program, self->tex_uniform, 0); if (self->x_step_uniform > -1) - cogl_program_uniform_1f (self->x_step_uniform, self->x_step); + cogl_program_set_uniform_1f (self->program, + self->x_step_uniform, + self->x_step); if (self->y_step_uniform > -1) - cogl_program_uniform_1f (self->y_step_uniform, self->y_step); - - cogl_program_use (COGL_INVALID_HANDLE); + cogl_program_set_uniform_1f (self->program, + self->y_step_uniform, + self->y_step); material = clutter_offscreen_effect_get_target (effect); cogl_material_set_user_program (material, self->program); diff --git a/clutter/clutter-colorize-effect.c b/clutter/clutter-colorize-effect.c index 7168a67cf..bf04941cc 100644 --- a/clutter/clutter-colorize-effect.c +++ b/clutter/clutter-colorize-effect.c @@ -200,10 +200,8 @@ clutter_colorize_effect_paint_target (ClutterOffscreenEffect *effect) if (self->program == COGL_INVALID_HANDLE) goto out; - cogl_program_use (self->program); - if (self->tex_uniform > -1) - cogl_program_uniform_1i (self->tex_uniform, 0); + cogl_program_set_uniform_1i (self->program, self->tex_uniform, 0); if (self->tint_uniform > -1) { @@ -213,11 +211,11 @@ clutter_colorize_effect_paint_target (ClutterOffscreenEffect *effect) self->tint.blue / 255.0 }; - cogl_program_uniform_float (self->tint_uniform, 3, 1, tint); + cogl_program_set_uniform_float (self->program, self->tint_uniform, + 3, 1, + tint); } - cogl_program_use (COGL_INVALID_HANDLE); - material = clutter_offscreen_effect_get_target (effect); cogl_material_set_user_program (material, self->program); diff --git a/clutter/clutter-desaturate-effect.c b/clutter/clutter-desaturate-effect.c index 59be9eae3..6018b1918 100644 --- a/clutter/clutter-desaturate-effect.c +++ b/clutter/clutter-desaturate-effect.c @@ -209,15 +209,13 @@ clutter_desaturate_effect_paint_target (ClutterOffscreenEffect *effect) if (self->program == COGL_INVALID_HANDLE) goto out; - cogl_program_use (self->program); - if (self->tex_uniform > -1) - cogl_program_uniform_1i (self->tex_uniform, 0); + cogl_program_set_uniform_1i (self->program, self->tex_uniform, 0); if (self->factor_uniform > -1) - cogl_program_uniform_1f (self->factor_uniform, self->factor); - - cogl_program_use (COGL_INVALID_HANDLE); + cogl_program_set_uniform_1f (self->program, + self->factor_uniform, + self->factor); material = clutter_offscreen_effect_get_target (effect); cogl_material_set_user_program (material, self->program); diff --git a/clutter/clutter-shader-effect.c b/clutter/clutter-shader-effect.c index fa8b6f564..8b0de595c 100644 --- a/clutter/clutter-shader-effect.c +++ b/clutter/clutter-shader-effect.c @@ -211,13 +211,11 @@ clutter_shader_effect_update_uniforms (ClutterShaderEffect *effect) gpointer key, value; gsize size; - if (priv->uniforms == NULL) + if (priv->program == COGL_INVALID_HANDLE) return; - /* XXX - we need to do this dance here because the cogl_program_uniform* - * family of functions do not take the program as a parameter - */ - cogl_program_use (priv->program); + if (priv->uniforms == NULL) + return; key = value = NULL; g_hash_table_iter_init (&iter, priv->uniforms); @@ -234,41 +232,50 @@ clutter_shader_effect_update_uniforms (ClutterShaderEffect *effect) const GLfloat *floats; floats = clutter_value_get_shader_float (&uniform->value, &size); - cogl_program_uniform_float (uniform->location, size, 1, floats); + cogl_program_set_uniform_float (priv->program, uniform->location, + size, 1, + floats); } else if (CLUTTER_VALUE_HOLDS_SHADER_INT (&uniform->value)) { const GLint *ints; ints = clutter_value_get_shader_int (&uniform->value, &size); - cogl_program_uniform_int (uniform->location, size, 1, ints); + cogl_program_set_uniform_int (priv->program, uniform->location, + size, 1, + ints); } else if (CLUTTER_VALUE_HOLDS_SHADER_MATRIX (&uniform->value)) { const GLfloat *matrix; matrix = clutter_value_get_shader_matrix (&uniform->value, &size); - cogl_program_uniform_matrix (uniform->location, size, 1, FALSE, matrix); + cogl_program_set_uniform_matrix (priv->program, uniform->location, + size, 1, + FALSE, + matrix); } else if (G_VALUE_HOLDS_FLOAT (&uniform->value)) { const GLfloat float_val = g_value_get_float (&uniform->value); - cogl_program_uniform_float (uniform->location, 1, 1, &float_val); + cogl_program_set_uniform_float (priv->program, uniform->location, + 1, 1, + &float_val); } else if (G_VALUE_HOLDS_INT (&uniform->value)) { const GLint int_val = g_value_get_int (&uniform->value); - cogl_program_uniform_int (uniform->location, 1, 1, &int_val); + cogl_program_set_uniform_int (priv->program, uniform->location, + 1, 1, + &int_val); } else g_warning ("Invalid uniform of type '%s' for name '%s'", g_type_name (G_VALUE_TYPE (&uniform->value)), uniform->name); } - - cogl_program_use (COGL_INVALID_HANDLE); } static void |