[mutter] compositor: Don't use deprecated Cogl-1.0 API



commit 7f6a77232faa0560080e03834b8cec7aeb505be7
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Tue Feb 19 19:34:47 2013 -0500

    compositor: Don't use deprecated Cogl-1.0 API
    
    https://bugzilla.gnome.org/show_bug.cgi?id=694224

 src/compositor/cogl-utils.c                  |   43 ++++----
 src/compositor/cogl-utils.h                  |   12 +-
 src/compositor/meta-background.c             |   14 ++--
 src/compositor/meta-shadow-factory-private.h |    2 +-
 src/compositor/meta-shadow-factory.c         |   14 ++--
 src/compositor/meta-shaped-texture.c         |  150 ++++++++++++--------------
 src/compositor/meta-texture-tower.c          |   60 +++++-----
 src/compositor/meta-texture-tower.h          |    4 +-
 src/compositor/meta-window-actor.c           |   14 ++--
 src/meta/meta-shaped-texture.h               |    4 +-
 10 files changed, 155 insertions(+), 162 deletions(-)
---
diff --git a/src/compositor/cogl-utils.c b/src/compositor/cogl-utils.c
index 5dbe3df..0494463 100644
--- a/src/compositor/cogl-utils.c
+++ b/src/compositor/cogl-utils.c
@@ -21,6 +21,7 @@
  * 02111-1307, USA.
  */
 
+#include <clutter/clutter.h>
 #include "cogl-utils.h"
 
 /**
@@ -39,7 +40,7 @@
  *
  * Return value: (transfer full): a newly created Cogl texture
  */
-CoglHandle
+CoglTexture *
 meta_create_color_texture_4ub (guint8           red,
                                guint8           green,
                                guint8           blue,
@@ -68,43 +69,45 @@ meta_create_color_texture_4ub (guint8           red,
 /* Based on gnome-shell/src/st/st-private.c:_st_create_texture_material.c */
 
 /**
- * meta_create_texture_material:
+ * meta_create_texture_pipeline:
  * @src_texture: (allow-none): texture to use initially for the layer
  *
- * Creates a material with a single layer. Using a common template
+ * Creates a pipeline with a single layer. Using a common template
  * allows sharing a shader for different uses in Mutter. To share the same
- * shader with all other materials that are just texture plus opacity
+ * shader with all other pipelines that are just texture plus opacity
  * would require Cogl fixes.
  * (See http://bugzilla.clutter-project.org/show_bug.cgi?id=2425)
  *
- * Return value: (transfer full): a newly created Cogl material
+ * Return value: (transfer full): a newly created #CoglPipeline
  */
-CoglHandle
-meta_create_texture_material (CoglHandle src_texture)
+CoglPipeline *
+meta_create_texture_pipeline (CoglTexture *src_texture)
 {
-  static CoglHandle texture_material_template = COGL_INVALID_HANDLE;
-  CoglHandle material;
+  static CoglPipeline *texture_pipeline_template = NULL;
+  CoglPipeline *pipeline;
 
-  /* We use a material that has a dummy texture as a base for all
-     texture materials. The idea is that only the Cogl texture object
+  /* We use a pipeline that has a dummy texture as a base for all
+     texture pipelines. The idea is that only the Cogl texture object
      would be different in the children so it is likely that Cogl will
      be able to share GL programs between all the textures. */
-  if (G_UNLIKELY (texture_material_template == COGL_INVALID_HANDLE))
+  if (G_UNLIKELY (texture_pipeline_template == NULL))
     {
-      CoglHandle dummy_texture;
+      CoglTexture *dummy_texture;
+      CoglContext *ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
 
       dummy_texture = meta_create_color_texture_4ub (0xff, 0xff, 0xff, 0xff,
                                                      COGL_TEXTURE_NONE);
 
-      texture_material_template = cogl_material_new ();
-      cogl_material_set_layer (texture_material_template, 0, dummy_texture);
-      cogl_handle_unref (dummy_texture);
+
+      texture_pipeline_template = cogl_pipeline_new (ctx);
+      cogl_pipeline_set_layer_texture (texture_pipeline_template, 0, dummy_texture);
+      cogl_object_unref (dummy_texture);
     }
 
-  material = cogl_material_copy (texture_material_template);
+  pipeline = cogl_pipeline_copy (texture_pipeline_template);
 
-  if (src_texture != COGL_INVALID_HANDLE)
-    cogl_material_set_layer (material, 0, src_texture);
+  if (src_texture != NULL)
+    cogl_pipeline_set_layer_texture (pipeline, 0, src_texture);
 
-  return material;
+  return pipeline;
 }
diff --git a/src/compositor/cogl-utils.h b/src/compositor/cogl-utils.h
index 8d6742e..fb9b4c2 100644
--- a/src/compositor/cogl-utils.h
+++ b/src/compositor/cogl-utils.h
@@ -25,11 +25,11 @@
 
 #include <cogl/cogl.h>
 
-CoglHandle meta_create_color_texture_4ub (guint8           red,
-                                          guint8           green,
-                                          guint8           blue,
-                                          guint8           alpha,
-                                          CoglTextureFlags flags);
-CoglHandle meta_create_texture_material  (CoglHandle src_texture);
+CoglTexture * meta_create_color_texture_4ub (guint8           red,
+                                             guint8           green,
+                                             guint8           blue,
+                                             guint8           alpha,
+                                             CoglTextureFlags flags);
+CoglPipeline * meta_create_texture_pipeline (CoglTexture *texture);
 
 #endif /* __META_COGL_UTILS_H__ */
diff --git a/src/compositor/meta-background.c b/src/compositor/meta-background.c
index 9a95fc0..78b2489 100644
--- a/src/compositor/meta-background.c
+++ b/src/compositor/meta-background.c
@@ -462,7 +462,7 @@ static void
 ensure_pipeline (MetaBackground *self)
 {
   if (self->priv->pipeline == NULL)
-    self->priv->pipeline = COGL_PIPELINE (meta_create_texture_material (NULL));
+    self->priv->pipeline = COGL_PIPELINE (meta_create_texture_pipeline (NULL));
 }
 
 static void
@@ -761,7 +761,7 @@ unset_texture (MetaBackground *self)
 
   g_clear_pointer (&priv->texture,
                    (GDestroyNotify)
-                   cogl_handle_unref);
+                   cogl_object_unref);
 }
 
 static void
@@ -852,7 +852,7 @@ meta_background_load_still_frame (MetaBackground *self)
   MetaBackgroundPrivate *priv = self->priv;
   MetaDisplay *display = meta_screen_get_display (priv->screen);
   Pixmap still_frame;
-  CoglHandle texture;
+  CoglTexture *texture;
   CoglContext *context = clutter_backend_get_cogl_context (clutter_get_default_backend ());
   GError *error = NULL;
 
@@ -865,7 +865,7 @@ meta_background_load_still_frame (MetaBackground *self)
   XSync (meta_display_get_xdisplay (display), False);
 
   meta_error_trap_push (display);
-  texture = cogl_texture_pixmap_x11_new (context, still_frame, FALSE, &error);
+  texture = COGL_TEXTURE (cogl_texture_pixmap_x11_new (context, still_frame, FALSE, &error));
   meta_error_trap_pop (display);
 
   if (error != NULL)
@@ -876,7 +876,7 @@ meta_background_load_still_frame (MetaBackground *self)
       return;
     }
 
-  set_texture (self, COGL_TEXTURE (texture));
+  set_texture (self, texture);
 }
 
 /**
@@ -897,7 +897,7 @@ meta_background_load_gradient (MetaBackground             *self,
                                ClutterColor               *second_color)
 {
   MetaBackgroundPrivate *priv = self->priv;
-  CoglHandle texture;
+  CoglTexture *texture;
   guint width, height;
   uint8_t pixels[8];
 
@@ -954,7 +954,7 @@ meta_background_load_color (MetaBackground *self,
                             ClutterColor   *color)
 {
   MetaBackgroundPrivate *priv = self->priv;
-  CoglHandle    texture;
+  CoglTexture  *texture;
   ClutterActor *stage = meta_get_stage_for_screen (priv->screen);
   ClutterColor  stage_color;
 
diff --git a/src/compositor/meta-shadow-factory-private.h b/src/compositor/meta-shadow-factory-private.h
index e6b033e..c4a1bbd 100644
--- a/src/compositor/meta-shadow-factory-private.h
+++ b/src/compositor/meta-shadow-factory-private.h
@@ -40,7 +40,7 @@ typedef struct _MetaShadow MetaShadow;
 
 MetaShadow *meta_shadow_ref         (MetaShadow            *shadow);
 void        meta_shadow_unref       (MetaShadow            *shadow);
-CoglHandle  meta_shadow_get_texture (MetaShadow            *shadow);
+CoglTexture*meta_shadow_get_texture (MetaShadow            *shadow);
 void        meta_shadow_paint       (MetaShadow            *shadow,
                                      int                    window_x,
                                      int                    window_y,
diff --git a/src/compositor/meta-shadow-factory.c b/src/compositor/meta-shadow-factory.c
index 40b461d..e36bf20 100644
--- a/src/compositor/meta-shadow-factory.c
+++ b/src/compositor/meta-shadow-factory.c
@@ -65,8 +65,8 @@ struct _MetaShadow
 
   MetaShadowFactory *factory;
   MetaShadowCacheKey key;
-  CoglHandle texture;
-  CoglHandle material;
+  CoglTexture *texture;
+  CoglPipeline *pipeline;
 
   /* The outer order is the distance the shadow extends outside the window
    * shape; the inner border is the unscaled portion inside the window
@@ -175,8 +175,8 @@ meta_shadow_unref (MetaShadow *shadow)
         }
 
       meta_window_shape_unref (shadow->key.shape);
-      cogl_handle_unref (shadow->texture);
-      cogl_handle_unref (shadow->material);
+      cogl_object_unref (shadow->texture);
+      cogl_object_unref (shadow->pipeline);
 
       g_slice_free (MetaShadow, shadow);
     }
@@ -218,10 +218,10 @@ meta_shadow_paint (MetaShadow     *shadow,
   int dest_y[4];
   int n_x, n_y;
 
-  cogl_material_set_color4ub (shadow->material,
+  cogl_pipeline_set_color4ub (shadow->pipeline,
                               opacity, opacity, opacity, opacity);
 
-  cogl_set_source (shadow->material);
+  cogl_set_source (shadow->pipeline);
 
   if (shadow->scale_width)
     {
@@ -801,7 +801,7 @@ make_shadow (MetaShadow     *shadow,
   cairo_region_destroy (column_convolve_region);
   g_free (buffer);
 
-  shadow->material = meta_create_texture_material (shadow->texture);
+  shadow->pipeline = meta_create_texture_pipeline (shadow->texture);
 }
 
 static MetaShadowParams *
diff --git a/src/compositor/meta-shaped-texture.c b/src/compositor/meta-shaped-texture.c
index 0d10f48..e6715b0 100644
--- a/src/compositor/meta-shaped-texture.c
+++ b/src/compositor/meta-shaped-texture.c
@@ -64,10 +64,10 @@ struct _MetaShapedTexturePrivate
 {
   MetaTextureTower *paint_tower;
   Pixmap pixmap;
-  CoglHandle texture;
-  CoglHandle mask_texture;
-  CoglHandle material;
-  CoglHandle material_unshaped;
+  CoglTexturePixmapX11 *texture;
+  CoglTexture *mask_texture;
+  CoglPipeline *pipeline;
+  CoglPipeline *pipeline_unshaped;
 
   cairo_region_t *clip_region;
 
@@ -101,8 +101,8 @@ meta_shaped_texture_init (MetaShapedTexture *self)
   priv = self->priv = META_SHAPED_TEXTURE_GET_PRIVATE (self);
 
   priv->paint_tower = meta_texture_tower_new ();
-  priv->texture = COGL_INVALID_HANDLE;
-  priv->mask_texture = COGL_INVALID_HANDLE;
+  priv->texture = NULL;
+  priv->mask_texture = NULL;
   priv->create_mipmaps = TRUE;
 }
 
@@ -116,23 +116,11 @@ meta_shaped_texture_dispose (GObject *object)
     meta_texture_tower_free (priv->paint_tower);
   priv->paint_tower = NULL;
 
-  if (priv->material != COGL_INVALID_HANDLE)
-    {
-      cogl_handle_unref (priv->material);
-      priv->material = COGL_INVALID_HANDLE;
-    }
-  if (priv->material_unshaped != COGL_INVALID_HANDLE)
-    {
-      cogl_handle_unref (priv->material_unshaped);
-      priv->material_unshaped = COGL_INVALID_HANDLE;
-    }
-  if (priv->texture != COGL_INVALID_HANDLE)
-    {
-      cogl_handle_unref (priv->texture);
-      priv->texture = COGL_INVALID_HANDLE;
-    }
+  g_clear_pointer (&priv->pipeline, cogl_object_unref);
+  g_clear_pointer (&priv->pipeline_unshaped, cogl_object_unref);
+  g_clear_pointer (&priv->texture, cogl_object_unref);
 
-  meta_shaped_texture_set_mask_texture (self, COGL_INVALID_HANDLE);
+  meta_shaped_texture_set_mask_texture (self, NULL);
   meta_shaped_texture_set_clip_region (self, NULL);
 
   G_OBJECT_CLASS (meta_shaped_texture_parent_class)->dispose (object);
@@ -143,14 +131,14 @@ meta_shaped_texture_paint (ClutterActor *actor)
 {
   MetaShapedTexture *stex = (MetaShapedTexture *) actor;
   MetaShapedTexturePrivate *priv = stex->priv;
-  CoglHandle paint_tex;
+  CoglTexture *paint_tex;
   guint tex_width, tex_height;
   ClutterActorBox alloc;
 
-  static CoglHandle material_template = COGL_INVALID_HANDLE;
-  static CoglHandle material_unshaped_template = COGL_INVALID_HANDLE;
+  static CoglPipeline *pipeline_template = NULL;
+  static CoglPipeline *pipeline_unshaped_template = NULL;
 
-  CoglHandle material;
+  CoglPipeline *pipeline;
 
   if (priv->clip_region && cairo_region_is_empty (priv->clip_region))
     return;
@@ -176,9 +164,9 @@ meta_shaped_texture_paint (ClutterActor *actor)
   if (priv->create_mipmaps)
     paint_tex = meta_texture_tower_get_paint_texture (priv->paint_tower);
   else
-    paint_tex = priv->texture;
+    paint_tex = COGL_TEXTURE (priv->texture);
 
-  if (paint_tex == COGL_INVALID_HANDLE)
+  if (paint_tex == NULL)
     return;
 
   tex_width = priv->tex_width;
@@ -187,47 +175,51 @@ meta_shaped_texture_paint (ClutterActor *actor)
   if (tex_width == 0 || tex_height == 0) /* no contents yet */
     return;
 
-  if (priv->mask_texture == COGL_INVALID_HANDLE)
+  if (priv->mask_texture == NULL)
     {
       /* Use a single-layer texture if we don't have a mask. */
 
-      if (priv->material_unshaped == COGL_INVALID_HANDLE) 
+      if (priv->pipeline_unshaped == NULL)
         {
-          if (G_UNLIKELY (material_unshaped_template == COGL_INVALID_HANDLE))
-            material_unshaped_template = cogl_material_new ();
+          if (G_UNLIKELY (pipeline_unshaped_template == NULL))
+            {
+              CoglContext *ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
+              pipeline_unshaped_template = cogl_pipeline_new (ctx);
+            }
 
-          priv->material_unshaped = cogl_material_copy (material_unshaped_template);
+          priv->pipeline_unshaped = cogl_pipeline_copy (pipeline_unshaped_template);
         }
-        material = priv->material_unshaped;
+        pipeline = priv->pipeline_unshaped;
     }
   else
     {
-      if (priv->material == COGL_INVALID_HANDLE)
+      if (priv->pipeline == NULL)
        {
-          if (G_UNLIKELY (material_template == COGL_INVALID_HANDLE))
+          if (G_UNLIKELY (pipeline_template == NULL))
            {
-             material_template =  cogl_material_new ();
-             cogl_material_set_layer_combine (material_template, 1,
+              CoglContext *ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
+             pipeline_template =  cogl_pipeline_new (ctx);
+             cogl_pipeline_set_layer_combine (pipeline_template, 1,
                                           "RGBA = MODULATE (PREVIOUS, TEXTURE[A])",
                                           NULL);
            }
-         priv->material = cogl_material_copy (material_template);
+         priv->pipeline = cogl_pipeline_copy (pipeline_template);
        }
-      material = priv->material;
+      pipeline = priv->pipeline;
 
-      cogl_material_set_layer (material, 1, priv->mask_texture);
+      cogl_pipeline_set_layer_texture (pipeline, 1, priv->mask_texture);
     }
 
-  cogl_material_set_layer (material, 0, paint_tex);
+  cogl_pipeline_set_layer_texture (pipeline, 0, paint_tex);
 
   {
     CoglColor color;
     guchar opacity = clutter_actor_get_paint_opacity (actor);
     cogl_color_set_from_4ub (&color, opacity, opacity, opacity, opacity);
-    cogl_material_set_color (material, &color);
+    cogl_pipeline_set_color (pipeline, &color);
   }
 
-  cogl_set_source (material);
+  cogl_set_source (pipeline);
 
   clutter_actor_get_allocation_box (actor, &alloc);
 
@@ -292,18 +284,18 @@ meta_shaped_texture_pick (ClutterActor       *actor,
   MetaShapedTexturePrivate *priv = stex->priv;
 
   /* If there is no region then use the regular pick */
-  if (priv->mask_texture == COGL_INVALID_HANDLE)
+  if (priv->mask_texture == NULL)
     CLUTTER_ACTOR_CLASS (meta_shaped_texture_parent_class)
       ->pick (actor, color);
   else if (clutter_actor_should_pick_paint (actor))
     {
-      CoglHandle paint_tex;
+      CoglTexture *paint_tex;
       ClutterActorBox alloc;
       guint tex_width, tex_height;
 
-      paint_tex = priv->texture;
+      paint_tex = COGL_TEXTURE (priv->texture);
 
-      if (paint_tex == COGL_INVALID_HANDLE)
+      if (paint_tex == NULL)
         return;
 
       tex_width = cogl_texture_get_width (paint_tex);
@@ -393,17 +385,17 @@ meta_shaped_texture_set_create_mipmaps (MetaShapedTexture *stex,
 
   if (create_mipmaps != priv->create_mipmaps)
     {
-      CoglHandle base_texture;
+      CoglTexture *base_texture;
       priv->create_mipmaps = create_mipmaps;
       base_texture = create_mipmaps ?
-        priv->texture : COGL_INVALID_HANDLE;
+        COGL_TEXTURE (priv->texture) : NULL;
       meta_texture_tower_set_base_texture (priv->paint_tower, base_texture);
     }
 }
 
 void
 meta_shaped_texture_set_mask_texture (MetaShapedTexture *stex,
-                                      CoglHandle         mask_texture)
+                                      CoglTexture       *mask_texture)
 {
   MetaShapedTexturePrivate *priv;
 
@@ -411,16 +403,12 @@ meta_shaped_texture_set_mask_texture (MetaShapedTexture *stex,
 
   priv = stex->priv;
 
-  if (priv->mask_texture != COGL_INVALID_HANDLE)
-    {
-      cogl_handle_unref (priv->mask_texture);
-      priv->mask_texture = COGL_INVALID_HANDLE;
-    }
+  g_clear_pointer (&priv->mask_texture, cogl_object_unref);
 
-  if (mask_texture != COGL_INVALID_HANDLE)
+  if (mask_texture != NULL)
     {
       priv->mask_texture = mask_texture;
-      cogl_handle_ref (priv->mask_texture);
+      cogl_object_ref (priv->mask_texture);
     }
 
   clutter_actor_queue_redraw (CLUTTER_ACTOR (stex));
@@ -438,10 +426,11 @@ meta_shaped_texture_update_area (MetaShapedTexture *stex,
 
   priv = stex->priv;
 
-  if (priv->texture == COGL_INVALID_HANDLE)
+  if (priv->texture == NULL)
     return;
 
-  cogl_texture_pixmap_x11_update_area (priv->texture, x, y, width, height);
+  cogl_texture_pixmap_x11_update_area (priv->texture,
+                                       x, y, width, height);
 
   meta_texture_tower_update_area (priv->paint_tower, x, y, width, height);
 
@@ -449,8 +438,8 @@ meta_shaped_texture_update_area (MetaShapedTexture *stex,
 }
 
 static void
-set_cogl_texture (MetaShapedTexture *stex,
-                  CoglHandle         cogl_tex)
+set_cogl_texture (MetaShapedTexture    *stex,
+                  CoglTexturePixmapX11 *cogl_tex)
 {
   MetaShapedTexturePrivate *priv;
   guint width, height;
@@ -459,21 +448,21 @@ set_cogl_texture (MetaShapedTexture *stex,
 
   priv = stex->priv;
 
-  if (priv->texture != COGL_INVALID_HANDLE)
-    cogl_handle_unref (priv->texture);
+  if (priv->texture != NULL)
+    cogl_object_unref (priv->texture);
 
   priv->texture = cogl_tex;
 
-  if (priv->material != COGL_INVALID_HANDLE)
-    cogl_material_set_layer (priv->material, 0, cogl_tex);
+  if (priv->pipeline != NULL)
+    cogl_pipeline_set_layer_texture (priv->pipeline, 0, COGL_TEXTURE (cogl_tex));
 
-  if (priv->material_unshaped != COGL_INVALID_HANDLE)
-    cogl_material_set_layer (priv->material_unshaped, 0, cogl_tex);
+  if (priv->pipeline_unshaped != NULL)
+    cogl_pipeline_set_layer_texture (priv->pipeline_unshaped, 0, COGL_TEXTURE (cogl_tex));
 
-  if (cogl_tex != COGL_INVALID_HANDLE)
+  if (cogl_tex != NULL)
     {
-      width = cogl_texture_get_width (cogl_tex);
-      height = cogl_texture_get_height (cogl_tex);
+      width = cogl_texture_get_width (COGL_TEXTURE (cogl_tex));
+      height = cogl_texture_get_height (COGL_TEXTURE (cogl_tex));
 
       if (width != priv->tex_width ||
           height != priv->tex_height)
@@ -486,7 +475,7 @@ set_cogl_texture (MetaShapedTexture *stex,
     }
   else
     {
-      /* size changed to 0 going to an invalid handle */
+      /* size changed to 0 going to an inavlid texture */
       priv->tex_width = 0;
       priv->tex_height = 0;
       clutter_actor_queue_relayout (CLUTTER_ACTOR (stex));
@@ -522,10 +511,11 @@ meta_shaped_texture_set_pixmap (MetaShapedTexture *stex,
       set_cogl_texture (stex, cogl_texture_pixmap_x11_new (ctx, pixmap, FALSE, NULL));
     }
   else
-    set_cogl_texture (stex, COGL_INVALID_HANDLE);
+    set_cogl_texture (stex, NULL);
 
   if (priv->create_mipmaps)
-    meta_texture_tower_set_base_texture (priv->paint_tower, priv->texture);
+    meta_texture_tower_set_base_texture (priv->paint_tower,
+                                         COGL_TEXTURE (priv->texture));
 }
 
 /**
@@ -534,11 +524,11 @@ meta_shaped_texture_set_pixmap (MetaShapedTexture *stex,
  *
  * Returns: (transfer none): the unshaped texture
  */
-CoglHandle
+CoglTexture *
 meta_shaped_texture_get_texture (MetaShapedTexture *stex)
 {
-  g_return_val_if_fail (META_IS_SHAPED_TEXTURE (stex), COGL_INVALID_HANDLE);
-  return stex->priv->texture;
+  g_return_val_if_fail (META_IS_SHAPED_TEXTURE (stex), NULL);
+  return COGL_TEXTURE (stex->priv->texture);
 }
 
 /**
@@ -595,13 +585,13 @@ cairo_surface_t *
 meta_shaped_texture_get_image (MetaShapedTexture     *stex,
                                cairo_rectangle_int_t *clip)
 {
-  CoglHandle texture, mask_texture;
+  CoglTexture *texture, *mask_texture;
   cairo_rectangle_int_t texture_rect = { 0, 0, 0, 0 };
   cairo_surface_t *surface;
 
   g_return_val_if_fail (META_IS_SHAPED_TEXTURE (stex), NULL);
 
-  texture = stex->priv->texture;
+  texture = COGL_TEXTURE (stex->priv->texture);
 
   if (texture == NULL)
     return NULL;
@@ -638,7 +628,7 @@ meta_shaped_texture_get_image (MetaShapedTexture     *stex,
     cogl_object_unref (texture);
 
   mask_texture = stex->priv->mask_texture;
-  if (mask_texture != COGL_INVALID_HANDLE)
+  if (mask_texture != NULL)
     {
       cairo_t *cr;
       cairo_surface_t *mask_surface;
diff --git a/src/compositor/meta-texture-tower.c b/src/compositor/meta-texture-tower.c
index 57e4d14..9afed60 100644
--- a/src/compositor/meta-texture-tower.c
+++ b/src/compositor/meta-texture-tower.c
@@ -59,8 +59,8 @@ typedef struct
 struct _MetaTextureTower
 {
   int n_levels;
-  CoglHandle textures[MAX_TEXTURE_LEVELS];
-  CoglHandle fbos[MAX_TEXTURE_LEVELS];
+  CoglTexture *textures[MAX_TEXTURE_LEVELS];
+  CoglOffscreen *fbos[MAX_TEXTURE_LEVELS];
   Box invalid[MAX_TEXTURE_LEVELS];
 };
 
@@ -93,7 +93,7 @@ meta_texture_tower_free (MetaTextureTower *tower)
 {
   g_return_if_fail (tower != NULL);
 
-  meta_texture_tower_set_base_texture (tower, COGL_INVALID_HANDLE);
+  meta_texture_tower_set_base_texture (tower, NULL);
 
   g_slice_free (MetaTextureTower, tower);
 }
@@ -110,7 +110,7 @@ meta_texture_tower_free (MetaTextureTower *tower)
  */
 void
 meta_texture_tower_set_base_texture (MetaTextureTower *tower,
-                                     CoglHandle        texture)
+                                     CoglTexture      *texture)
 {
   int i;
 
@@ -119,33 +119,33 @@ meta_texture_tower_set_base_texture (MetaTextureTower *tower,
   if (texture == tower->textures[0])
     return;
 
-  if (tower->textures[0] != COGL_INVALID_HANDLE)
+  if (tower->textures[0] != NULL)
     {
       for (i = 1; i < tower->n_levels; i++)
         {
-          if (tower->textures[i] != COGL_INVALID_HANDLE)
+          if (tower->textures[i] != NULL)
             {
-              cogl_handle_unref (tower->textures[i]);
-              tower->textures[i] = COGL_INVALID_HANDLE;
+              cogl_object_unref (tower->textures[i]);
+              tower->textures[i] = NULL;
             }
 
-          if (tower->fbos[i] != COGL_INVALID_HANDLE)
+          if (tower->fbos[i] != NULL)
             {
-              cogl_handle_unref (tower->fbos[i]);
-              tower->fbos[i] = COGL_INVALID_HANDLE;
+              cogl_object_unref (tower->fbos[i]);
+              tower->fbos[i] = NULL;
             }
         }
 
-      cogl_handle_unref (tower->textures[0]);
+      cogl_object_unref (tower->textures[0]);
     }
 
   tower->textures[0] = texture;
 
-  if (tower->textures[0] != COGL_INVALID_HANDLE)
+  if (tower->textures[0] != NULL)
     {
       int width, height;
 
-      cogl_handle_ref (tower->textures[0]);
+      cogl_object_ref (tower->textures[0]);
 
       width = cogl_texture_get_width (tower->textures[0]);
       height = cogl_texture_get_height (tower->textures[0]);
@@ -186,7 +186,7 @@ meta_texture_tower_update_area (MetaTextureTower *tower,
 
   g_return_if_fail (tower != NULL);
 
-  if (tower->textures[0] == COGL_INVALID_HANDLE)
+  if (tower->textures[0] == NULL)
     return;
 
   texture_width = cogl_texture_get_width (tower->textures[0]);
@@ -387,22 +387,22 @@ static gboolean
 texture_tower_revalidate_fbo (MetaTextureTower *tower,
                               int               level)
 {
-  CoglHandle source_texture = tower->textures[level - 1];
+  CoglTexture *source_texture = tower->textures[level - 1];
   int source_texture_width = cogl_texture_get_width (source_texture);
   int source_texture_height = cogl_texture_get_height (source_texture);
-  CoglHandle dest_texture = tower->textures[level];
+  CoglTexture *dest_texture = tower->textures[level];
   int dest_texture_width = cogl_texture_get_width (dest_texture);
   int dest_texture_height = cogl_texture_get_height (dest_texture);
   Box *invalid = &tower->invalid[level];
   CoglMatrix modelview;
 
-  if (tower->fbos[level] == COGL_INVALID_HANDLE)
+  if (tower->fbos[level] == NULL)
     tower->fbos[level] = cogl_offscreen_new_to_texture (dest_texture);
 
-  if (tower->fbos[level] == COGL_INVALID_HANDLE)
+  if (tower->fbos[level] == NULL)
     return FALSE;
 
-  cogl_push_framebuffer (tower->fbos[level]);
+  cogl_push_framebuffer (COGL_FRAMEBUFFER (tower->fbos[level]));
 
   cogl_ortho (0, dest_texture_width, dest_texture_height, 0, -1., 1.);
 
@@ -460,12 +460,12 @@ static void
 texture_tower_revalidate_client (MetaTextureTower *tower,
                                  int               level)
 {
-  CoglHandle source_texture = tower->textures[level - 1];
+  CoglTexture *source_texture = tower->textures[level - 1];
   int source_texture_width = cogl_texture_get_width (source_texture);
   int source_texture_height = cogl_texture_get_height (source_texture);
   guint source_rowstride;
   guchar *source_data;
-  CoglHandle dest_texture = tower->textures[level];
+  CoglTexture *dest_texture = tower->textures[level];
   int dest_texture_width = cogl_texture_get_width (dest_texture);
   int dest_texture_height = cogl_texture_get_height (dest_texture);
   int dest_x = tower->invalid[level].x1;
@@ -575,28 +575,28 @@ texture_tower_revalidate (MetaTextureTower *tower,
  * rectangle (0, 0, 200, 200).
  *
  * Return value: the COGL texture handle to use for painting, or
- *  %COGL_INVALID_HANDLE if no base texture has yet been set.
+ *  %NULL if no base texture has yet been set.
  */
-CoglHandle
+CoglTexture *
 meta_texture_tower_get_paint_texture (MetaTextureTower *tower)
 {
   int texture_width, texture_height;
   int level;
 
-  g_return_val_if_fail (tower != NULL, COGL_INVALID_HANDLE);
+  g_return_val_if_fail (tower != NULL, NULL);
 
-  if (tower->textures[0] == COGL_INVALID_HANDLE)
-    return COGL_INVALID_HANDLE;
+  if (tower->textures[0] == NULL)
+    return NULL;
 
   texture_width = cogl_texture_get_width (tower->textures[0]);
   texture_height = cogl_texture_get_height (tower->textures[0]);
 
   level = get_paint_level(texture_width, texture_height);
   if (level < 0) /* singular paint matrix, scaled to nothing */
-    return COGL_INVALID_HANDLE;
+    return NULL;
   level = MIN (level, tower->n_levels - 1);
 
-  if (tower->textures[level] == COGL_INVALID_HANDLE ||
+  if (tower->textures[level] == NULL ||
       (tower->invalid[level].x2 != tower->invalid[level].x1 &&
        tower->invalid[level].y2 != tower->invalid[level].y1))
     {
@@ -608,7 +608,7 @@ meta_texture_tower_get_paint_texture (MetaTextureTower *tower)
          texture_width = MAX (1, texture_width / 2);
          texture_height = MAX (1, texture_height / 2);
 
-         if (tower->textures[i] == COGL_INVALID_HANDLE)
+         if (tower->textures[i] == NULL)
            texture_tower_create_texture (tower, i, texture_width, texture_height);
        }
 
diff --git a/src/compositor/meta-texture-tower.h b/src/compositor/meta-texture-tower.h
index be11a3b..e135d80 100644
--- a/src/compositor/meta-texture-tower.h
+++ b/src/compositor/meta-texture-tower.h
@@ -56,13 +56,13 @@ typedef struct _MetaTextureTower MetaTextureTower;
 MetaTextureTower *meta_texture_tower_new               (void);
 void              meta_texture_tower_free              (MetaTextureTower *tower);
 void              meta_texture_tower_set_base_texture  (MetaTextureTower *tower,
-                                                        CoglHandle        texture);
+                                                        CoglTexture      *texture);
 void              meta_texture_tower_update_area       (MetaTextureTower *tower,
                                                         int               x,
                                                         int               y,
                                                         int               width,
                                                         int               height);
-CoglHandle        meta_texture_tower_get_paint_texture (MetaTextureTower *tower);
+CoglTexture      *meta_texture_tower_get_paint_texture (MetaTextureTower *tower);
 
 G_BEGIN_DECLS
 
diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
index 34a72ef..1c57d73 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -917,7 +917,7 @@ static void
 meta_window_actor_damage_all (MetaWindowActor *self)
 {
   MetaWindowActorPrivate *priv = self->priv;
-  CoglHandle texture;
+  CoglTexture *texture;
 
   if (!priv->needs_damage_all)
     return;
@@ -1778,7 +1778,7 @@ check_needs_pixmap (MetaWindowActor *self)
 
   if (priv->back_pixmap == None)
     {
-      CoglHandle texture;
+      CoglTexture *texture;
 
       meta_error_trap_push (display);
 
@@ -1816,7 +1816,7 @@ check_needs_pixmap (MetaWindowActor *self)
        * do it here.
        * See: http://bugzilla.clutter-project.org/show_bug.cgi?id=2236
        */
-      if (G_UNLIKELY (!cogl_texture_pixmap_x11_is_using_tfp_extension (texture)))
+      if (G_UNLIKELY (!cogl_texture_pixmap_x11_is_using_tfp_extension (COGL_TEXTURE_PIXMAP_X11 (texture))))
         g_warning ("NOTE: Not using GLX TFP!\n");
 
       /* ::size-changed is supposed to refer to meta_window_get_outer_rect().
@@ -2090,13 +2090,13 @@ build_and_scan_frame_mask (MetaWindowActor       *self,
   MetaWindowActorPrivate *priv = self->priv;
   guchar *mask_data;
   guint tex_width, tex_height;
-  CoglHandle paint_tex, mask_texture;
+  CoglTexture *paint_tex, *mask_texture;
   int stride;
   cairo_t *cr;
   cairo_surface_t *surface;
 
   paint_tex = meta_shaped_texture_get_texture (META_SHAPED_TEXTURE (priv->actor));
-  if (paint_tex == COGL_INVALID_HANDLE)
+  if (paint_tex == NULL)
     return;
 
   tex_width = cogl_texture_get_width (paint_tex);
@@ -2165,7 +2165,7 @@ build_and_scan_frame_mask (MetaWindowActor       *self,
 
   meta_shaped_texture_set_mask_texture (META_SHAPED_TEXTURE (priv->actor),
                                         mask_texture);
-  cogl_handle_unref (mask_texture);
+  cogl_object_unref (mask_texture);
 
   g_free (mask_data);
 }
@@ -2200,7 +2200,7 @@ check_needs_reshape (MetaWindowActor *self)
   client_area.width = priv->window->rect.width;
   client_area.height = priv->window->rect.height;
 
-  meta_shaped_texture_set_mask_texture (META_SHAPED_TEXTURE (priv->actor), COGL_INVALID_HANDLE);
+  meta_shaped_texture_set_mask_texture (META_SHAPED_TEXTURE (priv->actor), NULL);
   g_clear_pointer (&priv->shape_region, cairo_region_destroy);
 
 #ifdef HAVE_SHAPE
diff --git a/src/meta/meta-shaped-texture.h b/src/meta/meta-shaped-texture.h
index ace4396..9f37396 100644
--- a/src/meta/meta-shaped-texture.h
+++ b/src/meta/meta-shaped-texture.h
@@ -70,10 +70,10 @@ void meta_shaped_texture_update_area (MetaShapedTexture *stex,
 void meta_shaped_texture_set_pixmap (MetaShapedTexture *stex,
                                      Pixmap             pixmap);
 
-CoglHandle meta_shaped_texture_get_texture (MetaShapedTexture *stex);
+CoglTexture * meta_shaped_texture_get_texture (MetaShapedTexture *stex);
 
 void meta_shaped_texture_set_mask_texture (MetaShapedTexture *stex,
-                                           CoglHandle         mask_texture);
+                                           CoglTexture       *mask_texture);
 
 /* Assumes ownership of clip_region */
 void meta_shaped_texture_set_clip_region (MetaShapedTexture *stex,


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