[gnome-shell] st-private: Update shadow APIs for Cogl deprecations



commit 1c1f63a7d7a5f0be5a796679d029a6b0c600b838
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Fri Feb 20 17:09:20 2015 -0800

    st-private: Update shadow APIs for Cogl deprecations

 src/st/st-icon.c               |   58 ++++------------
 src/st/st-label.c              |   38 +++--------
 src/st/st-private.c            |  144 ++++++++++++++++++++++------------------
 src/st/st-private.h            |   12 ++--
 src/st/st-shadow.c             |   20 +++---
 src/st/st-theme-node-drawing.c |   20 +++---
 6 files changed, 129 insertions(+), 163 deletions(-)
---
diff --git a/src/st/st-icon.c b/src/st/st-icon.c
index 289b086..f6659d7 100644
--- a/src/st/st-icon.c
+++ b/src/st/st-icon.c
@@ -57,7 +57,7 @@ struct _StIconPrivate
   gint          theme_icon_size; /* icon size from theme node */
   gint          icon_size;       /* icon size we are using */
 
-  CoglHandle    shadow_material;
+  CoglPipeline *shadow_pipeline;
   float         shadow_width;
   float         shadow_height;
   StShadow     *shadow_spec;
@@ -142,23 +142,9 @@ st_icon_dispose (GObject *gobject)
       priv->pending_texture = NULL;
     }
 
-  if (priv->gicon)
-    {
-      g_object_unref (priv->gicon);
-      priv->gicon = NULL;
-    }
-
-  if (priv->shadow_material)
-    {
-      cogl_handle_unref (priv->shadow_material);
-      priv->shadow_material = COGL_INVALID_HANDLE;
-    }
-
-  if (priv->shadow_spec)
-    {
-      st_shadow_unref (priv->shadow_spec);
-      priv->shadow_spec = NULL;
-    }
+  g_clear_object (&priv->gicon);
+  g_clear_pointer (&priv->shadow_pipeline, cogl_object_unref);
+  g_clear_pointer (&priv->shadow_spec, st_shadow_unref);
 
   G_OBJECT_CLASS (st_icon_parent_class)->dispose (gobject);
 }
@@ -172,7 +158,7 @@ st_icon_paint (ClutterActor *actor)
 
   if (priv->icon_texture)
     {
-      if (priv->shadow_material)
+      if (priv->shadow_pipeline)
         {
           ClutterActorBox allocation;
           float width, height;
@@ -181,7 +167,7 @@ st_icon_paint (ClutterActor *actor)
           clutter_actor_box_get_size (&allocation, &width, &height);
 
           _st_paint_shadow_with_opacity (priv->shadow_spec,
-                                         priv->shadow_material,
+                                         priv->shadow_pipeline,
                                          &allocation,
                                          clutter_actor_get_paint_opacity (priv->icon_texture));
         }
@@ -197,17 +183,8 @@ st_icon_style_changed (StWidget *widget)
   StThemeNode *theme_node = st_widget_get_theme_node (widget);
   StIconPrivate *priv = self->priv;
 
-  if (priv->shadow_spec)
-    {
-      st_shadow_unref (priv->shadow_spec);
-      priv->shadow_spec = NULL;
-    }
-
-  if (priv->shadow_material)
-    {
-      cogl_handle_unref (priv->shadow_material);
-      priv->shadow_material = COGL_INVALID_HANDLE;
-    }
+  g_clear_pointer (&priv->shadow_pipeline, cogl_object_unref);
+  g_clear_pointer (&priv->shadow_spec, st_shadow_unref);
 
   priv->shadow_spec = st_theme_node_get_shadow (theme_node, "icon-shadow");
 
@@ -277,33 +254,26 @@ st_icon_init (StIcon *self)
   self->priv->icon_size = DEFAULT_ICON_SIZE;
   self->priv->prop_icon_size = -1;
 
-  self->priv->shadow_material = COGL_INVALID_HANDLE;
+  self->priv->shadow_pipeline = NULL;
   self->priv->shadow_width = -1;
   self->priv->shadow_height = -1;
 }
 
 static void
-st_icon_update_shadow_material (StIcon *icon)
+st_icon_update_shadow_pipeline (StIcon *icon)
 {
   StIconPrivate *priv = icon->priv;
 
-  if (priv->shadow_material)
-    {
-      cogl_handle_unref (priv->shadow_material);
-      priv->shadow_material = COGL_INVALID_HANDLE;
-    }
+  g_clear_pointer (&priv->shadow_pipeline, cogl_object_unref);
 
   if (priv->shadow_spec)
    {
-     CoglHandle material;
      gint width, height;
 
      clutter_texture_get_base_size (CLUTTER_TEXTURE (priv->icon_texture),
                                     &width, &height);
 
-     material = _st_create_shadow_material_from_actor (priv->shadow_spec,
-                                                       priv->icon_texture);
-     priv->shadow_material = material;
+     priv->shadow_pipeline = _st_create_shadow_pipeline_from_actor (priv->shadow_spec, priv->icon_texture);
      priv->shadow_width = width;
      priv->shadow_height = height;
    }
@@ -313,7 +283,7 @@ static void
 on_pixbuf_changed (ClutterTexture *texture,
                    StIcon         *icon)
 {
-  st_icon_update_shadow_material (icon);
+  st_icon_update_shadow_pipeline (icon);
 }
 
 static void
@@ -338,7 +308,7 @@ st_icon_finish_update (StIcon *icon)
       /* Remove the temporary ref we added */
       g_object_unref (priv->icon_texture);
 
-      st_icon_update_shadow_material (icon);
+      st_icon_update_shadow_pipeline (icon);
 
       /* "pixbuf-change" is actually a misnomer for "texture-changed" */
       g_signal_connect_object (priv->icon_texture, "pixbuf-change",
diff --git a/src/st/st-label.c b/src/st/st-label.c
index 9833b83..53c2a1d 100644
--- a/src/st/st-label.c
+++ b/src/st/st-label.c
@@ -60,7 +60,7 @@ struct _StLabelPrivate
 {
   ClutterActor *label;
 
-  CoglHandle    text_shadow_material;
+  CoglPipeline *text_shadow_pipeline;
   float         shadow_width;
   float         shadow_height;
 };
@@ -118,11 +118,7 @@ st_label_style_changed (StWidget *self)
 {
   StLabelPrivate *priv = ST_LABEL(self)->priv;
 
-  if (priv->text_shadow_material != COGL_INVALID_HANDLE)
-    {
-      cogl_handle_unref (priv->text_shadow_material);
-      priv->text_shadow_material = COGL_INVALID_HANDLE;
-    }
+  g_clear_pointer (&priv->text_shadow_pipeline, cogl_object_unref);
 
   _st_set_text_from_style ((ClutterText *)priv->label, st_widget_get_theme_node (self));
 
@@ -192,11 +188,7 @@ st_label_dispose (GObject   *object)
       priv->label = NULL;
     }
 
-  if (priv->text_shadow_material != COGL_INVALID_HANDLE)
-    {
-      cogl_handle_unref (priv->text_shadow_material);
-      priv->text_shadow_material = COGL_INVALID_HANDLE;
-    }
+  g_clear_pointer (&priv->text_shadow_pipeline, cogl_object_unref);
 
   G_OBJECT_CLASS (st_label_parent_class)->dispose (object);
 }
@@ -218,26 +210,20 @@ st_label_paint (ClutterActor *actor)
       clutter_actor_get_allocation_box (priv->label, &allocation);
       clutter_actor_box_get_size (&allocation, &width, &height);
 
-      if (priv->text_shadow_material == COGL_INVALID_HANDLE ||
+      if (priv->text_shadow_pipeline == NULL ||
           width != priv->shadow_width ||
           height != priv->shadow_height)
         {
-          CoglHandle material;
-
-          if (priv->text_shadow_material != COGL_INVALID_HANDLE)
-            cogl_handle_unref (priv->text_shadow_material);
-
-          material = _st_create_shadow_material_from_actor (shadow_spec,
-                                                            priv->label);
+          g_clear_pointer (&priv->text_shadow_pipeline, cogl_object_unref);
 
           priv->shadow_width = width;
           priv->shadow_height = height;
-          priv->text_shadow_material = material;
+          priv->text_shadow_pipeline = _st_create_shadow_pipeline_from_actor (shadow_spec, priv->label);
         }
 
-      if (priv->text_shadow_material != COGL_INVALID_HANDLE)
+      if (priv->text_shadow_pipeline != NULL)
         _st_paint_shadow_with_opacity (shadow_spec,
-                                       priv->text_shadow_material,
+                                       priv->text_shadow_pipeline,
                                        &allocation,
                                        clutter_actor_get_paint_opacity (priv->label));
     }
@@ -292,7 +278,7 @@ st_label_init (StLabel *label)
   label->priv->label = g_object_new (CLUTTER_TYPE_TEXT,
                                      "ellipsize", PANGO_ELLIPSIZE_END,
                                      NULL);
-  label->priv->text_shadow_material = COGL_INVALID_HANDLE;
+  label->priv->text_shadow_pipeline = NULL;
   label->priv->shadow_width = -1.;
   label->priv->shadow_height = -1.;
 
@@ -357,11 +343,7 @@ st_label_set_text (StLabel     *label,
   if (clutter_text_get_editable (ctext) ||
       g_strcmp0 (clutter_text_get_text (ctext), text) != 0)
     {
-      if (priv->text_shadow_material != COGL_INVALID_HANDLE)
-        {
-          cogl_handle_unref (priv->text_shadow_material);
-          priv->text_shadow_material = COGL_INVALID_HANDLE;
-        }
+      g_clear_pointer (&priv->text_shadow_pipeline, cogl_object_unref);
 
       clutter_text_set_text (ctext, text);
 
diff --git a/src/st/st-private.c b/src/st/st-private.c
index 6ba4295..4096d15 100644
--- a/src/st/st-private.c
+++ b/src/st/st-private.c
@@ -162,18 +162,20 @@ _st_set_text_from_style (ClutterText *text,
 }
 
 /**
- * _st_create_texture_material:
- * @src_texture: The CoglTexture for the material
+ * _st_create_texture_pipeline:
+ * @src_texture: The CoglTexture for the pipeline
  *
- * Creates a simple material which contains the given texture as a
+ * Creates a simple pipeline which contains the given texture as a
  * single layer.
  */
-CoglHandle
-_st_create_texture_material (CoglHandle src_texture)
+CoglPipeline *
+_st_create_texture_pipeline (CoglTexture *src_texture)
 {
   static CoglPipeline *texture_pipeline_template = NULL;
   CoglPipeline *pipeline;
 
+  g_return_val_if_fail (src_texture != NULL, NULL);
+
   /* The only state used in the pipeline that would affect the shader
      generation is the texture type on the layer. Therefore we create
      a template pipeline which sets this state and all texture
@@ -339,24 +341,23 @@ blur_pixels (guchar  *pixels_in,
   return pixels_out;
 }
 
-CoglHandle
-_st_create_shadow_material (StShadow   *shadow_spec,
-                            CoglHandle  src_texture)
+CoglPipeline *
+_st_create_shadow_pipeline (StShadow    *shadow_spec,
+                            CoglTexture *src_texture)
 {
   ClutterBackend *backend = clutter_get_default_backend ();
   CoglContext *ctx = clutter_backend_get_cogl_context (backend);
 
-  static CoglHandle shadow_material_template = COGL_INVALID_HANDLE;
+  static CoglPipeline *shadow_pipeline_template = NULL;
 
-  CoglHandle  material;
-  CoglHandle  texture;
-  guchar     *pixels_in, *pixels_out;
-  gint        width_in, height_in, rowstride_in;
-  gint        width_out, height_out, rowstride_out;
+  CoglPipeline *pipeline;
+  CoglTexture *texture;
+  guchar *pixels_in, *pixels_out;
+  gint width_in, height_in, rowstride_in;
+  gint width_out, height_out, rowstride_out;
 
-  g_return_val_if_fail (shadow_spec != NULL, COGL_INVALID_HANDLE);
-  g_return_val_if_fail (src_texture != COGL_INVALID_HANDLE,
-                        COGL_INVALID_HANDLE);
+  g_return_val_if_fail (shadow_spec != NULL, NULL);
+  g_return_val_if_fail (src_texture != NULL, NULL);
 
   width_in  = cogl_texture_get_width  (src_texture);
   height_in = cogl_texture_get_height (src_texture);
@@ -380,84 +381,99 @@ _st_create_shadow_material (StShadow   *shadow_spec,
 
   g_free (pixels_out);
 
-  if (G_UNLIKELY (shadow_material_template == COGL_INVALID_HANDLE))
+  if (G_UNLIKELY (shadow_pipeline_template == NULL))
     {
-      shadow_material_template = cogl_material_new ();
+      CoglContext *ctx =
+        clutter_backend_get_cogl_context (clutter_get_default_backend ());
+
+      shadow_pipeline_template = cogl_pipeline_new (ctx);
 
-      /* We set up the material to blend the shadow texture with the combine
+      /* We set up the pipeline to blend the shadow texture with the combine
        * constant, but defer setting the latter until painting, so that we can
        * take the actor's overall opacity into account. */
-      cogl_material_set_layer_combine (shadow_material_template, 0,
+      cogl_pipeline_set_layer_combine (shadow_pipeline_template, 0,
                                        "RGBA = MODULATE (CONSTANT, TEXTURE[A])",
                                        NULL);
     }
 
-  material = cogl_material_copy (shadow_material_template);
-
-  cogl_material_set_layer (material, 0, texture);
-
-  cogl_handle_unref (texture);
-
-  return material;
+  pipeline = cogl_pipeline_copy (shadow_pipeline_template);
+  cogl_pipeline_set_layer_texture (pipeline, 0, texture);
+  cogl_object_unref (texture);
+  return pipeline;
 }
 
-CoglHandle
-_st_create_shadow_material_from_actor (StShadow     *shadow_spec,
+CoglPipeline *
+_st_create_shadow_pipeline_from_actor (StShadow     *shadow_spec,
                                        ClutterActor *actor)
 {
-  CoglHandle shadow_material = COGL_INVALID_HANDLE;
+  CoglPipeline *shadow_pipeline = NULL;
 
   if (CLUTTER_IS_TEXTURE (actor))
     {
-      CoglHandle texture;
+      CoglTexture *texture;
 
       texture = clutter_texture_get_cogl_texture (CLUTTER_TEXTURE (actor));
-      shadow_material = _st_create_shadow_material (shadow_spec, texture);
+      shadow_pipeline = _st_create_shadow_pipeline (shadow_spec, texture);
     }
   else
     {
-      CoglHandle buffer, offscreen;
+      CoglTexture *buffer;
+      CoglOffscreen *offscreen;
+      CoglFramebuffer *fb;
       ClutterActorBox box;
       CoglColor clear_color;
       float width, height;
+      CoglError *catch_error = NULL;
 
       clutter_actor_get_allocation_box (actor, &box);
       clutter_actor_box_get_size (&box, &width, &height);
 
       if (width == 0 || height == 0)
-        return COGL_INVALID_HANDLE;
+        return NULL;
 
       buffer = cogl_texture_new_with_size (width,
                                            height,
                                            COGL_TEXTURE_NO_SLICING,
                                            COGL_PIXEL_FORMAT_ANY);
 
-      if (buffer == COGL_INVALID_HANDLE)
-        return COGL_INVALID_HANDLE;
+      if (buffer == NULL)
+        return NULL;
 
-      offscreen = cogl_offscreen_new_to_texture (buffer);
+      offscreen = cogl_offscreen_new_with_texture (buffer);
+      fb = COGL_FRAMEBUFFER (offscreen);
 
-      if (offscreen == COGL_INVALID_HANDLE)
+      if (!cogl_framebuffer_allocate (fb, &catch_error))
         {
-          cogl_handle_unref (buffer);
-          return COGL_INVALID_HANDLE;
+          cogl_error_free (catch_error);
+          cogl_object_unref (buffer);
+          return NULL;
         }
 
-      cogl_color_set_from_4ub (&clear_color, 0, 0, 0, 0);
-      cogl_push_framebuffer (offscreen);
-      cogl_clear (&clear_color, COGL_BUFFER_BIT_COLOR);
-      cogl_translate (-box.x1, -box.y1, 0);
-      cogl_ortho (0, width, height, 0, 0, 1.0);
+      cogl_color_init_from_4ub (&clear_color, 0, 0, 0, 0);
+
+      /* XXX: There's no way to render a ClutterActor to an offscreen
+       * as it uses the implicit API. */
+      G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
+      cogl_push_framebuffer (fb);
+      G_GNUC_END_IGNORE_DEPRECATIONS;
+
+      cogl_framebuffer_clear (fb, COGL_BUFFER_BIT_COLOR, &clear_color);
+      cogl_framebuffer_translate (fb, -box.x1, -box.y1, 0);
+      cogl_framebuffer_orthographic (fb, 0, width, height, 0, 0, 1.0);
       clutter_actor_paint (actor);
+
+      G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
       cogl_pop_framebuffer ();
-      cogl_handle_unref (offscreen);
+      G_GNUC_END_IGNORE_DEPRECATIONS;
+
+      cogl_object_unref (fb);
 
-      shadow_material = _st_create_shadow_material (shadow_spec, buffer);
+      shadow_pipeline = _st_create_shadow_pipeline (shadow_spec, buffer);
 
-      cogl_handle_unref (buffer);
+      cogl_object_unref (buffer);
     }
 
-  return shadow_material;
+  return shadow_pipeline;
 }
 
 /**
@@ -605,29 +621,27 @@ _st_create_shadow_cairo_pattern (StShadow        *shadow_spec,
 
 void
 _st_paint_shadow_with_opacity (StShadow        *shadow_spec,
-                               CoglHandle       shadow_material,
+                               CoglPipeline    *shadow_pipeline,
                                ClutterActorBox *box,
                                guint8           paint_opacity)
 {
+  CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
   ClutterActorBox shadow_box;
-  CoglColor       color;
+  CoglColor color;
 
   g_return_if_fail (shadow_spec != NULL);
-  g_return_if_fail (shadow_material != COGL_INVALID_HANDLE);
+  g_return_if_fail (shadow_pipeline != NULL);
 
   st_shadow_get_box (shadow_spec, box, &shadow_box);
 
-  cogl_color_set_from_4ub (&color,
-                           shadow_spec->color.red   * paint_opacity / 255,
-                           shadow_spec->color.green * paint_opacity / 255,
-                           shadow_spec->color.blue  * paint_opacity / 255,
-                           shadow_spec->color.alpha * paint_opacity / 255);
+  cogl_color_init_from_4ub (&color,
+                            shadow_spec->color.red   * paint_opacity / 255,
+                            shadow_spec->color.green * paint_opacity / 255,
+                            shadow_spec->color.blue  * paint_opacity / 255,
+                            shadow_spec->color.alpha * paint_opacity / 255);
   cogl_color_premultiply (&color);
-
-  cogl_material_set_layer_combine_constant (shadow_material, 0, &color);
-
-  cogl_set_source (shadow_material);
-  cogl_rectangle_with_texture_coords (shadow_box.x1, shadow_box.y1,
-                                      shadow_box.x2, shadow_box.y2,
-                                      0, 0, 1, 1);
+  cogl_pipeline_set_layer_combine_constant (shadow_pipeline, 0, &color);
+  cogl_framebuffer_draw_rectangle (fb, shadow_pipeline,
+                                   shadow_box.x1, shadow_box.y1,
+                                   shadow_box.x2, shadow_box.y2);
 }
diff --git a/src/st/st-private.h b/src/st/st-private.h
index 05fa634..3bd934d 100644
--- a/src/st/st-private.h
+++ b/src/st/st-private.h
@@ -59,18 +59,18 @@ void _st_actor_get_preferred_height (ClutterActor *actor,
 void _st_set_text_from_style (ClutterText *text,
                               StThemeNode *theme_node);
 
-CoglHandle _st_create_texture_material (CoglHandle src_texture);
+CoglPipeline * _st_create_texture_pipeline (CoglTexture *src_texture);
 
 /* Helper for widgets which need to draw additional shadows */
-CoglHandle _st_create_shadow_material (StShadow   *shadow_spec,
-                                       CoglHandle  src_texture);
-CoglHandle _st_create_shadow_material_from_actor (StShadow     *shadow_spec,
-                                                  ClutterActor *actor);
+CoglPipeline * _st_create_shadow_pipeline (StShadow    *shadow_spec,
+                                           CoglTexture *src_texture);
+CoglPipeline * _st_create_shadow_pipeline_from_actor (StShadow     *shadow_spec,
+                                                      ClutterActor *actor);
 cairo_pattern_t *_st_create_shadow_cairo_pattern (StShadow        *shadow_spec,
                                                   cairo_pattern_t *src_pattern);
 
 void _st_paint_shadow_with_opacity (StShadow        *shadow_spec,
-                                    CoglHandle       shadow_material,
+                                    CoglPipeline    *shadow_pipeline,
                                     ClutterActorBox *box,
                                     guint8           paint_opacity);
 
diff --git a/src/st/st-shadow.c b/src/st/st-shadow.c
index 4a2ff00..49e411c 100644
--- a/src/st/st-shadow.c
+++ b/src/st/st-shadow.c
@@ -190,7 +190,7 @@ st_shadow_get_box (StShadow              *shadow,
 
 struct _StShadowHelper {
   StShadow     *shadow;
-  CoglMaterial *material;
+  CoglPipeline *pipeline;
 
   gfloat        width;
   gfloat        height;
@@ -224,14 +224,14 @@ st_shadow_helper_update (StShadowHelper *helper,
 
   clutter_actor_get_size (source, &width, &height);
 
-  if (helper->material == NULL ||
+  if (helper->pipeline == NULL ||
       helper->width != width ||
       helper->height != height)
     {
-      if (helper->material)
-        cogl_object_unref (helper->material);
+      if (helper->pipeline)
+        cogl_object_unref (helper->pipeline);
 
-      helper->material = _st_create_shadow_material_from_actor (helper->shadow, source);
+      helper->pipeline = _st_create_shadow_pipeline_from_actor (helper->shadow, source);
       helper->width = width;
       helper->height = height;
     }
@@ -250,8 +250,8 @@ st_shadow_helper_copy (StShadowHelper *helper)
 
   copy = g_slice_new (StShadowHelper);
   *copy = *helper;
-  if (copy->material)
-    cogl_object_ref (copy->material);
+  if (copy->pipeline)
+    cogl_object_ref (copy->pipeline);
   st_shadow_ref (copy->shadow);
 
   return copy;
@@ -266,8 +266,8 @@ st_shadow_helper_copy (StShadowHelper *helper)
 void
 st_shadow_helper_free (StShadowHelper *helper)
 {
-  if (helper->material)
-    cogl_object_unref (helper->material);
+  if (helper->pipeline)
+    cogl_object_unref (helper->pipeline);
   st_shadow_unref (helper->shadow);
 
   g_slice_free (StShadowHelper, helper);
@@ -293,7 +293,7 @@ st_shadow_helper_paint (StShadowHelper  *helper,
   clutter_actor_box_get_size (actor_box, &width, &height);
 
   _st_paint_shadow_with_opacity (helper->shadow,
-                                 helper->material,
+                                 helper->pipeline,
                                  &allocation,
                                  paint_opacity);
 }
diff --git a/src/st/st-theme-node-drawing.c b/src/st/st-theme-node-drawing.c
index 667e7e0..9fe2131 100644
--- a/src/st/st-theme-node-drawing.c
+++ b/src/st/st-theme-node-drawing.c
@@ -390,7 +390,7 @@ st_theme_node_lookup_corner (StThemeNode    *node,
 
   key = corner_to_string (&corner);
   texture = st_texture_cache_load (cache, key, ST_TEXTURE_CACHE_POLICY_NONE, load_corner, &corner, NULL);
-  material = _st_create_texture_material (texture);
+  material = _st_create_texture_pipeline (texture);
   cogl_handle_unref (texture);
 
   g_free (key);
@@ -1314,7 +1314,7 @@ st_theme_node_load_border_image (StThemeNode *node)
       if (node->border_slices_texture == COGL_INVALID_HANDLE)
         goto out;
 
-      node->border_slices_material = _st_create_texture_material (node->border_slices_texture);
+      node->border_slices_material = _st_create_texture_pipeline (node->border_slices_texture);
     }
 
  out:
@@ -1364,14 +1364,14 @@ st_theme_node_load_background_image (StThemeNode *node)
       if (node->background_texture == COGL_INVALID_HANDLE)
         goto out;
 
-      node->background_material = _st_create_texture_material (node->background_texture);
+      node->background_material = _st_create_texture_pipeline (node->background_texture);
 
       if (node->background_repeat)
         cogl_material_set_layer_wrap_mode (node->background_material, 0, COGL_MATERIAL_WRAP_MODE_REPEAT);
 
       if (background_image_shadow_spec)
         {
-          node->background_shadow_material = _st_create_shadow_material (background_image_shadow_spec,
+          node->background_shadow_material = _st_create_shadow_pipeline (background_image_shadow_spec,
                                                                          node->background_texture);
         }
     }
@@ -1474,17 +1474,17 @@ st_theme_node_render_resources (StThemeNodePaintState *state,
     state->prerendered_texture = st_theme_node_prerender_background (node, width, height);
 
   if (state->prerendered_texture)
-    state->prerendered_material = _st_create_texture_material (state->prerendered_texture);
+    state->prerendered_material = _st_create_texture_pipeline (state->prerendered_texture);
   else
     state->prerendered_material = COGL_INVALID_HANDLE;
 
   if (box_shadow_spec && !has_inset_box_shadow)
     {
       if (st_theme_node_load_border_image (node))
-        state->box_shadow_material = _st_create_shadow_material (box_shadow_spec,
+        state->box_shadow_material = _st_create_shadow_pipeline (box_shadow_spec,
                                                                  node->border_slices_texture);
       else if (state->prerendered_texture != COGL_INVALID_HANDLE)
-        state->box_shadow_material = _st_create_shadow_material (box_shadow_spec,
+        state->box_shadow_material = _st_create_shadow_pipeline (box_shadow_spec,
                                                                  state->prerendered_texture);
       else if (node->background_color.alpha > 0 || has_border)
         st_theme_node_prerender_shadow (state);
@@ -1546,7 +1546,7 @@ st_theme_node_update_resources (StThemeNodePaintState *state,
   if (had_prerendered_texture)
     {
       state->prerendered_texture = st_theme_node_prerender_background (node, width, height);
-      state->prerendered_material = _st_create_texture_material (state->prerendered_texture);
+      state->prerendered_material = _st_create_texture_pipeline (state->prerendered_texture);
     }
   else
     {
@@ -1559,7 +1559,7 @@ st_theme_node_update_resources (StThemeNodePaintState *state,
     }
 
   if (had_box_shadow)
-    state->box_shadow_material = _st_create_shadow_material (box_shadow_spec,
+    state->box_shadow_material = _st_create_shadow_pipeline (box_shadow_spec,
                                                              state->prerendered_texture);
 }
 
@@ -2188,7 +2188,7 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
       cogl_pop_framebuffer ();
       cogl_handle_unref (offscreen);
 
-      state->box_shadow_material = _st_create_shadow_material (st_theme_node_get_box_shadow (node),
+      state->box_shadow_material = _st_create_shadow_pipeline (st_theme_node_get_box_shadow (node),
                                                                buffer);
     }
   cogl_handle_unref (buffer);


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