shader-effect: Simplify setting the shader source

Sub-classes of ShaderEffect currently have to get the handle for the
Cogl shader and call cogl_shader_source(); this makes it awkward to
implement a ShaderEffect, and it exposes handles and Cogl API that we
might want to change in the future.

We should provide a ClutterShaderEffect method that allows to (safely)
set the shader source at the right time for sub-classes to use.
This commit is contained in:
Emmanuele Bassi
2010-05-17 12:55:46 +01:00
parent f2caafa127
commit 0e9a1dee6d
5 changed files with 81 additions and 101 deletions

View File

@ -84,17 +84,20 @@ struct _ClutterShaderEffectClass
GType clutter_shader_effect_get_type (void) G_GNUC_CONST;
void clutter_shader_effect_set_uniform (ClutterShaderEffect *effect,
const gchar *name,
GType gtype,
gsize size,
...);
void clutter_shader_effect_set_uniform_value (ClutterShaderEffect *effect,
const gchar *name,
const GValue *value);
gboolean clutter_shader_effect_set_shader_source (ClutterShaderEffect *effect,
const gchar *source);
CoglHandle clutter_shader_effect_get_shader (ClutterShaderEffect *effect);
CoglHandle clutter_shader_effect_get_program (ClutterShaderEffect *effect);
void clutter_shader_effect_set_uniform (ClutterShaderEffect *effect,
const gchar *name,
GType gtype,
gsize size,
...);
void clutter_shader_effect_set_uniform_value (ClutterShaderEffect *effect,
const gchar *name,
const GValue *value);
CoglHandle clutter_shader_effect_get_shader (ClutterShaderEffect *effect);
CoglHandle clutter_shader_effect_get_program (ClutterShaderEffect *effect);
G_END_DECLS