[mutter/wip/nielsdg/clutter-remove-deprecated: 2/6] clutter: remove deprecated ClutterShader



commit 19137361d7076cd87d7267bcbbb94d6d2386d245
Author: Niels De Graef <nielsdegraef gmail com>
Date:   Wed Nov 14 08:32:42 2018 +0100

    clutter: remove deprecated ClutterShader

 clutter/clutter/Makefile.am                        |   2 -
 clutter/clutter/clutter-actor.c                    |  19 -
 clutter/clutter/clutter-deprecated.h               |   1 -
 clutter/clutter/clutter-types.h                    |   1 -
 .../clutter/deprecated/clutter-actor-deprecated.c  | 308 -------
 clutter/clutter/deprecated/clutter-shader.c        | 907 ---------------------
 clutter/clutter/deprecated/clutter-shader.h        | 182 -----
 clutter/clutter/deprecated/clutter-texture.c       |  20 -
 clutter/clutter/meson.build                        |   2 -
 po/POTFILES.skip                                   |   1 -
 10 files changed, 1443 deletions(-)
---
diff --git a/clutter/clutter/Makefile.am b/clutter/clutter/Makefile.am
index 2b43a170d..b9a84804c 100644
--- a/clutter/clutter/Makefile.am
+++ b/clutter/clutter/Makefile.am
@@ -276,7 +276,6 @@ deprecated_h = \
        deprecated/clutter-keysyms.h                    \
        deprecated/clutter-main.h                       \
        deprecated/clutter-rectangle.h          \
-       deprecated/clutter-shader.h                     \
        deprecated/clutter-stage-manager.h              \
        deprecated/clutter-stage.h                      \
        deprecated/clutter-state.h                      \
@@ -305,7 +304,6 @@ deprecated_c = \
        deprecated/clutter-input-device-deprecated.c    \
        deprecated/clutter-layout-manager-deprecated.c \
        deprecated/clutter-rectangle.c          \
-       deprecated/clutter-shader.c                     \
        deprecated/clutter-state.c                      \
        deprecated/clutter-table-layout.c               \
        deprecated/clutter-texture.c                    \
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
index 3580ac1fd..083e104bb 100644
--- a/clutter/clutter/clutter-actor.c
+++ b/clutter/clutter/clutter-actor.c
@@ -1108,7 +1108,6 @@ static void clutter_actor_pop_in_cloned_branch (ClutterActor *self,
   { _transform; }                                                      \
   cogl_matrix_translate ((m), -_tx, -_ty, -_tz);        } G_STMT_END
 
-static GQuark quark_shader_data = 0;
 static GQuark quark_actor_layout_info = 0;
 static GQuark quark_actor_transform_info = 0;
 static GQuark quark_actor_animation_info = 0;
@@ -3522,12 +3521,6 @@ _clutter_actor_update_last_paint_volume (ClutterActor *self)
   priv->last_paint_volume_valid = TRUE;
 }
 
-static inline gboolean
-actor_has_shader_data (ClutterActor *self)
-{
-  return g_object_get_qdata (G_OBJECT (self), quark_shader_data) != NULL;
-}
-
 guint32
 _clutter_actor_get_pick_id (ClutterActor *self)
 {
@@ -3769,7 +3762,6 @@ clutter_actor_paint (ClutterActor *self)
   ClutterActorPrivate *priv;
   ClutterPickMode pick_mode;
   gboolean clip_set = FALSE;
-  gboolean shader_applied = FALSE;
   ClutterStage *stage;
 
   g_return_if_fail (CLUTTER_IS_ACTOR (self));
@@ -3940,13 +3932,6 @@ clutter_actor_paint (ClutterActor *self)
 
   if (priv->effects == NULL)
     {
-      if (pick_mode == CLUTTER_PICK_NONE &&
-          actor_has_shader_data (self))
-        {
-          _clutter_actor_shader_pre_paint (self, FALSE);
-          shader_applied = TRUE;
-        }
-
       priv->next_effect_to_paint = NULL;
     }
   else
@@ -3955,9 +3940,6 @@ clutter_actor_paint (ClutterActor *self)
 
   clutter_actor_continue_paint (self);
 
-  if (shader_applied)
-    _clutter_actor_shader_post_paint (self);
-
   if (G_UNLIKELY (clutter_paint_debug_flags & CLUTTER_DEBUG_PAINT_VOLUMES &&
                   pick_mode == CLUTTER_PICK_NONE))
     _clutter_actor_draw_paint_volume (self);
@@ -6297,7 +6279,6 @@ clutter_actor_class_init (ClutterActorClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-  quark_shader_data = g_quark_from_static_string ("-clutter-actor-shader-data");
   quark_actor_layout_info = g_quark_from_static_string ("-clutter-actor-layout-info");
   quark_actor_transform_info = g_quark_from_static_string ("-clutter-actor-transform-info");
   quark_actor_animation_info = g_quark_from_static_string ("-clutter-actor-animation-info");
diff --git a/clutter/clutter/clutter-deprecated.h b/clutter/clutter/clutter-deprecated.h
index 222091b79..31ae126fe 100644
--- a/clutter/clutter/clutter-deprecated.h
+++ b/clutter/clutter/clutter-deprecated.h
@@ -25,7 +25,6 @@
 #include "deprecated/clutter-keysyms.h"
 #include "deprecated/clutter-main.h"
 #include "deprecated/clutter-rectangle.h"
-#include "deprecated/clutter-shader.h"
 #include "deprecated/clutter-stage-manager.h"
 #include "deprecated/clutter-stage.h"
 #include "deprecated/clutter-state.h"
diff --git a/clutter/clutter/clutter-types.h b/clutter/clutter/clutter-types.h
index 12544565b..1d4d3f9a3 100644
--- a/clutter/clutter/clutter-types.h
+++ b/clutter/clutter/clutter-types.h
@@ -116,7 +116,6 @@ typedef struct _ClutterEventSequence            ClutterEventSequence;
 
 typedef struct _ClutterFog                      ClutterFog; /* deprecated */
 typedef struct _ClutterBehaviour                ClutterBehaviour; /* deprecated */
-typedef struct _ClutterShader                   ClutterShader; /* deprecated */
 
 /**
  * ClutterPaintVolume:
diff --git a/clutter/clutter/deprecated/clutter-actor-deprecated.c 
b/clutter/clutter/deprecated/clutter-actor-deprecated.c
index 7e56c65a6..554fe7d41 100644
--- a/clutter/clutter/deprecated/clutter-actor-deprecated.c
+++ b/clutter/clutter/deprecated/clutter-actor-deprecated.c
@@ -7,314 +7,6 @@
 
 #include "clutter-actor-private.h"
 #include "clutter-private.h"
-#include "clutter-shader.h"
-
-typedef struct _ShaderData ShaderData;
-
-struct _ShaderData
-{
-  ClutterShader *shader;
-
-  /* back pointer to the actor */
-  ClutterActor *actor;
-
-  /* list of values that should be set on the shader
-   * before each paint cycle
-   */
-  GHashTable *value_hash;
-};
-
-static void
-shader_value_free (gpointer data)
-{
-  GValue *var = data;
-  g_value_unset (var);
-  g_slice_free (GValue, var);
-}
-
-static void
-destroy_shader_data (gpointer data)
-{
-  ShaderData *shader_data = data;
-
-  if (shader_data == NULL)
-    return;
-
-  if (shader_data->shader != NULL)
-    {
-      g_object_unref (shader_data->shader);
-      shader_data->shader = NULL;
-    }
-
-  if (shader_data->value_hash != NULL)
-    {
-      g_hash_table_destroy (shader_data->value_hash);
-      shader_data->value_hash = NULL;
-    }
-
-  g_slice_free (ShaderData, shader_data);
-}
-
-/**
- * clutter_actor_get_shader:
- * @self: a #ClutterActor
- *
- * Queries the currently set #ClutterShader on @self.
- *
- * Return value: (transfer none): The currently set #ClutterShader
- *   or %NULL if no shader is set.
- *
- * Since: 0.6
- *
- * Deprecated: 1.8: Use clutter_actor_get_effect() instead.
- */
-ClutterShader *
-clutter_actor_get_shader (ClutterActor *self)
-{
-  ShaderData *shader_data;
-
-  g_return_val_if_fail (CLUTTER_IS_ACTOR (self), NULL);
-
-  shader_data = g_object_get_data (G_OBJECT (self), "-clutter-actor-shader-data");
-  if (shader_data != NULL)
-    return shader_data->shader;
-
-  return NULL;
-}
-
-/**
- * clutter_actor_set_shader:
- * @self: a #ClutterActor
- * @shader: (allow-none): a #ClutterShader or %NULL to unset the shader.
- *
- * Sets the #ClutterShader to be used when rendering @self.
- *
- * If @shader is %NULL this function will unset any currently set shader
- * for the actor.
- *
- * Any #ClutterEffect applied to @self will take the precedence
- * over the #ClutterShader set using this function.
- *
- * Return value: %TRUE if the shader was successfully applied
- *   or removed
- *
- * Since: 0.6
- *
- * Deprecated: 1.8: Use #ClutterShaderEffect and
- *   clutter_actor_add_effect() instead.
- */
-gboolean
-clutter_actor_set_shader (ClutterActor  *self,
-                          ClutterShader *shader)
-{
-  ShaderData *shader_data;
-
-  g_return_val_if_fail (CLUTTER_IS_ACTOR (self), FALSE);
-  g_return_val_if_fail (shader == NULL || CLUTTER_IS_SHADER (shader), FALSE);
-
-  if (shader != NULL)
-    g_object_ref (shader);
-  else
-    {
-      /* if shader passed in is NULL we destroy the shader */
-      g_object_set_data (G_OBJECT (self), "-clutter-actor-shader-data", NULL);
-      return TRUE;
-    }
-
-  shader_data = g_object_get_data (G_OBJECT (self), "-clutter-actor-shader-data");
-  if (shader_data == NULL)
-    {
-      shader_data = g_slice_new (ShaderData);
-      shader_data->actor = self;
-      shader_data->shader = NULL;
-      shader_data->value_hash =
-        g_hash_table_new_full (g_str_hash, g_str_equal,
-                               g_free,
-                               shader_value_free);
-
-      g_object_set_data_full (G_OBJECT (self), "-clutter-actor-shader-data",
-                              shader_data,
-                              destroy_shader_data);
-    }
-
-  if (shader_data->shader != NULL)
-    g_object_unref (shader_data->shader);
-
-  shader_data->shader = shader;
-
-  clutter_actor_queue_redraw (self);
-
-  return TRUE;
-}
-
-static void
-set_each_param (gpointer key,
-                gpointer value,
-                gpointer user_data)
-{
-  ClutterShader *shader = user_data;
-  const gchar *uniform = key;
-  GValue *var = value;
-
-  clutter_shader_set_uniform (shader, uniform, var);
-}
-
-void
-_clutter_actor_shader_pre_paint (ClutterActor *actor,
-                                 gboolean      repeat)
-{
-  ShaderData *shader_data;
-  ClutterShader *shader;
-
-  shader_data = g_object_get_data (G_OBJECT (actor), "-clutter-actor-shader-data");
-  if (shader_data == NULL)
-    return;
-
-  shader = shader_data->shader;
-  if (shader != NULL)
-    {
-      clutter_shader_set_is_enabled (shader, TRUE);
-
-      g_hash_table_foreach (shader_data->value_hash, set_each_param, shader);
-
-      if (!repeat)
-        _clutter_context_push_shader_stack (actor);
-    }
-}
-
-void
-_clutter_actor_shader_post_paint (ClutterActor *actor)
-{
-  ShaderData *shader_data;
-  ClutterShader *shader;
-
-  shader_data = g_object_get_data (G_OBJECT (actor), "-clutter-actor-shader-data");
-  if (G_LIKELY (shader_data == NULL))
-    return;
-
-  shader = shader_data->shader;
-  if (shader != NULL)
-    {
-      ClutterActor *head;
-
-      clutter_shader_set_is_enabled (shader, FALSE);
-
-      /* remove the actor from the shaders stack; if there is another
-       * actor inside it, then call pre-paint again to set its shader
-       * but this time with the second argument being TRUE, indicating
-       * that we are re-applying an existing shader and thus should it
-       * not be prepended to the stack
-       */
-      head = _clutter_context_pop_shader_stack (actor);
-      if (head != NULL)
-        _clutter_actor_shader_pre_paint (head, TRUE);
-    }
-}
-
-static inline void
-clutter_actor_set_shader_param_internal (ClutterActor *self,
-                                         const gchar  *param,
-                                         const GValue *value)
-{
-  ShaderData *shader_data;
-  GValue *var;
-
-  shader_data = g_object_get_data (G_OBJECT (self), "-clutter-actor-shader-data");
-  if (shader_data == NULL)
-    return;
-
-  var = g_slice_new0 (GValue);
-  g_value_init (var, G_VALUE_TYPE (value));
-  g_value_copy (value, var);
-  g_hash_table_insert (shader_data->value_hash, g_strdup (param), var);
-
-  clutter_actor_queue_redraw (self);
-}
-
-/**
- * clutter_actor_set_shader_param:
- * @self: a #ClutterActor
- * @param: the name of the parameter
- * @value: the value of the parameter
- *
- * Sets the value for a named parameter of the shader applied
- * to @actor.
- *
- * Since: 1.0
- *
- * Deprecated: 1.8: Use clutter_shader_effect_set_uniform_value() instead
- */
-void
-clutter_actor_set_shader_param (ClutterActor *self,
-                                const gchar  *param,
-                                const GValue *value)
-{
-  g_return_if_fail (CLUTTER_IS_ACTOR (self));
-  g_return_if_fail (param != NULL);
-  g_return_if_fail (CLUTTER_VALUE_HOLDS_SHADER_FLOAT (value) ||
-                    CLUTTER_VALUE_HOLDS_SHADER_INT (value) ||
-                    CLUTTER_VALUE_HOLDS_SHADER_MATRIX (value) ||
-                    G_VALUE_HOLDS_FLOAT (value) ||
-                    G_VALUE_HOLDS_INT (value));
-
-  clutter_actor_set_shader_param_internal (self, param, value);
-}
-
-/**
- * clutter_actor_set_shader_param_float:
- * @self: a #ClutterActor
- * @param: the name of the parameter
- * @value: the value of the parameter
- *
- * Sets the value for a named float parameter of the shader applied
- * to @actor.
- *
- * Since: 0.8
- *
- * Deprecated: 1.8: Use clutter_shader_effect_set_uniform() instead
- */
-void
-clutter_actor_set_shader_param_float (ClutterActor *self,
-                                      const gchar  *param,
-                                      gfloat        value)
-{
-  GValue var = { 0, };
-
-  g_value_init (&var, G_TYPE_FLOAT);
-  g_value_set_float (&var, value);
-
-  clutter_actor_set_shader_param_internal (self, param, &var);
-
-  g_value_unset (&var);
-}
-
-/**
- * clutter_actor_set_shader_param_int:
- * @self: a #ClutterActor
- * @param: the name of the parameter
- * @value: the value of the parameter
- *
- * Sets the value for a named int parameter of the shader applied to
- * @actor.
- *
- * Since: 0.8
- *
- * Deprecated: 1.8: Use clutter_shader_effect_set_uniform() instead
- */
-void
-clutter_actor_set_shader_param_int (ClutterActor *self,
-                                    const gchar  *param,
-                                    gint          value)
-{
-  GValue var = { 0, };
-
-  g_value_init (&var, G_TYPE_INT);
-  g_value_set_int (&var, value);
-
-  clutter_actor_set_shader_param_internal (self, param, &var);
-
-  g_value_unset (&var);
-}
 
 /**
  * clutter_actor_set_geometry:
diff --git a/clutter/clutter/deprecated/clutter-texture.c b/clutter/clutter/deprecated/clutter-texture.c
index 2b40e80fe..4996a9e93 100644
--- a/clutter/clutter/deprecated/clutter-texture.c
+++ b/clutter/clutter/deprecated/clutter-texture.c
@@ -45,9 +45,6 @@
 
 #include "clutter-build-config.h"
 
-/* sadly, we are still using ClutterShader internally */
-#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
-
 #include <cogl/cogl.h>
 
 #include "clutter-texture.h"
@@ -64,7 +61,6 @@
 #include "clutter-stage-private.h"
 #include "clutter-backend.h"
 
-#include "deprecated/clutter-shader.h"
 #include "deprecated/clutter-texture.h"
 #include "deprecated/clutter-util.h"
 
@@ -480,22 +476,10 @@ update_fbo (ClutterActor *self)
 {
   ClutterTexture        *texture = CLUTTER_TEXTURE (self);
   ClutterTexturePrivate *priv = texture->priv;
-  ClutterActor          *head;
-  ClutterShader         *shader = NULL;
   ClutterActor          *stage = NULL;
   CoglMatrix             projection;
   CoglColor              transparent_col;
 
-  head = _clutter_context_peek_shader_stack ();
-  if (head != NULL)
-    shader = clutter_actor_get_shader (head);
-
-  /* Temporarily turn off the shader on the top of the context's
-   * shader stack, to restore the GL pipeline to it's natural state.
-   */
-  if (shader != NULL)
-    clutter_shader_set_is_enabled (shader, FALSE);
-
   /* Redirect drawing to the fbo */
   cogl_push_framebuffer (priv->fbo_handle);
 
@@ -554,10 +538,6 @@ update_fbo (ClutterActor *self)
 
   /* Restore drawing to the previous framebuffer */
   cogl_pop_framebuffer ();
-
-  /* If there is a shader on top of the shader stack, turn it back on. */
-  if (shader != NULL)
-    clutter_shader_set_is_enabled (shader, TRUE);
 }
 
 static void
diff --git a/clutter/clutter/meson.build b/clutter/clutter/meson.build
index b1a90f32e..7d4b3bf20 100644
--- a/clutter/clutter/meson.build
+++ b/clutter/clutter/meson.build
@@ -236,7 +236,6 @@ clutter_deprecated_headers = [
   'deprecated/clutter-keysyms.h',
   'deprecated/clutter-main.h',
   'deprecated/clutter-rectangle.h',
-  'deprecated/clutter-shader.h',
   'deprecated/clutter-stage-manager.h',
   'deprecated/clutter-stage.h',
   'deprecated/clutter-state.h',
@@ -264,7 +263,6 @@ clutter_deprecated_sources = [
   'deprecated/clutter-input-device-deprecated.c',
   'deprecated/clutter-layout-manager-deprecated.c',
   'deprecated/clutter-rectangle.c',
-  'deprecated/clutter-shader.c',
   'deprecated/clutter-state.c',
   'deprecated/clutter-table-layout.c',
   'deprecated/clutter-texture.c',
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index 5d69910f7..f9ebb7245 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -67,7 +67,6 @@ clutter/clutter/deprecated/clutter-behaviour-scale.c
 clutter/clutter/deprecated/clutter-box.c
 clutter/clutter/deprecated/clutter-cairo-texture.c
 clutter/clutter/deprecated/clutter-rectangle.c
-clutter/clutter/deprecated/clutter-shader.c
 clutter/clutter/deprecated/clutter-state.c
 clutter/clutter/deprecated/clutter-table-layout.c
 clutter/clutter/deprecated/clutter-texture.c


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]