static void clutter_shader_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ClutterShader *shader; ClutterShaderPrivate *priv; shader = CLUTTER_SHADER(object); priv = shader->priv; switch (prop_id) { case PROP_VERTEX_SOURCE: g_value_set_string (value, priv->vertex_source); break; case PROP_FRAGMENT_SOURCE: g_value_set_string (value, priv->fragment_source); break; case PROP_COMPILED: g_value_set_boolean (value, priv->compiled); break; case PROP_ENABLED: g_value_set_boolean (value, priv->is_enabled); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void clutter_shader_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ClutterShader *shader = CLUTTER_SHADER(object); switch (prop_id) { case PROP_VERTEX_SOURCE: clutter_shader_set_vertex_source (shader, g_value_get_string (value), -1); break; case PROP_FRAGMENT_SOURCE: clutter_shader_set_fragment_source (shader, g_value_get_string (value), -1); break; case PROP_ENABLED: clutter_shader_set_is_enabled (shader, g_value_get_boolean (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void clutter_shader_dispose (GObject *object) { ClutterShader *shader = CLUTTER_SHADER (object); clutter_shader_release_internal (shader); G_OBJECT_CLASS (clutter_shader_parent_class)->finalize (object); }
static void clutter_shader_finalize (GObject *object) { ClutterShader *shader; ClutterShaderPrivate *priv; shader = CLUTTER_SHADER (object); priv = shader->priv; clutter_shaders_list = g_list_remove (clutter_shaders_list, object); g_free (priv->fragment_source); g_free (priv->vertex_source); G_OBJECT_CLASS (clutter_shader_parent_class)->finalize (object); }