[mutter/wayland] shaped-texture: Use non-deprecated cogl APIs



commit 452be05ea0e35690beffb4c42f05ceb4040e0c04
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Tue Aug 27 16:25:40 2013 -0400

    shaped-texture: Use non-deprecated cogl APIs
    
    https://bugzilla.gnome.org/show_bug.cgi?id=707019

 src/compositor/meta-shaped-texture.c |   49 ++++++++++++++++++++-------------
 1 files changed, 30 insertions(+), 19 deletions(-)
---
diff --git a/src/compositor/meta-shaped-texture.c b/src/compositor/meta-shaped-texture.c
index 142a3e9..eb448ba 100644
--- a/src/compositor/meta-shaped-texture.c
+++ b/src/compositor/meta-shaped-texture.c
@@ -221,11 +221,12 @@ meta_shaped_texture_paint (ClutterActor *actor)
 {
   MetaShapedTexture *stex = (MetaShapedTexture *) actor;
   MetaShapedTexturePrivate *priv = stex->priv;
-  CoglTexture *paint_tex;
   guint tex_width, tex_height;
-  ClutterActorBox alloc;
   CoglContext *ctx;
-  CoglPipeline *pipeline;
+  CoglFramebuffer *fb;
+  CoglPipeline *pipeline = NULL;
+  CoglTexture *paint_tex;
+  ClutterActorBox alloc;
 
   if (priv->clip_region && cairo_region_is_empty (priv->clip_region))
     return;
@@ -263,6 +264,7 @@ meta_shaped_texture_paint (ClutterActor *actor)
     return;
 
   ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
+  fb = cogl_get_draw_framebuffer ();
 
   if (priv->mask_texture == NULL)
     {
@@ -279,12 +281,10 @@ meta_shaped_texture_paint (ClutterActor *actor)
   {
     CoglColor color;
     guchar opacity = clutter_actor_get_paint_opacity (actor);
-    cogl_color_set_from_4ub (&color, opacity, opacity, opacity, opacity);
+    cogl_color_init_from_4ub (&color, opacity, opacity, opacity, opacity);
     cogl_pipeline_set_color (pipeline, &color);
   }
 
-  cogl_set_source (pipeline);
-
   clutter_actor_get_allocation_box (actor, &alloc);
 
   if (priv->clip_region)
@@ -327,20 +327,23 @@ meta_shaped_texture_paint (ClutterActor *actor)
               coords[6] = coords[2];
               coords[7] = coords[3];
 
-              cogl_rectangle_with_multitexture_coords (x1, y1, x2, y2,
-                                                       &coords[0], 8);
+              cogl_framebuffer_draw_multitextured_rectangle (fb, pipeline,
+                                                             x1, y1, x2, y2,
+                                                             &coords[0], 8);
             }
 
           goto out;
        }
     }
 
-  cogl_rectangle (0, 0,
-                 alloc.x2 - alloc.x1,
-                 alloc.y2 - alloc.y1);
+  cogl_framebuffer_draw_rectangle (fb, pipeline,
+                                   0, 0,
+                                   alloc.x2 - alloc.x1,
+                                   alloc.y2 - alloc.y1);
 
  out:
-  cogl_object_unref (pipeline);
+  if (pipeline != NULL)
+    cogl_object_unref (pipeline);
 }
 
 static void
@@ -356,13 +359,16 @@ meta_shaped_texture_pick (ClutterActor       *actor,
 
   /* If there is no region then use the regular pick */
   if (priv->input_shape_region == NULL)
-    CLUTTER_ACTOR_CLASS (meta_shaped_texture_parent_class)
-      ->pick (actor, color);
+    CLUTTER_ACTOR_CLASS (meta_shaped_texture_parent_class)->pick (actor, color);
   else
     {
       int n_rects;
       float *rectangles;
       int i;
+      CoglPipeline *pipeline;
+      CoglContext *ctx;
+      CoglFramebuffer *fb;
+      CoglColor cogl_color;
 
       /* Note: We don't bother trying to intersect the pick and clip regions
        * since needing to copy the region, do the intersection, and probably
@@ -391,12 +397,17 @@ meta_shaped_texture_pick (ClutterActor       *actor,
           rectangles[pos + 3] = rect.y + rect.height;
         }
 
-      cogl_set_source_color4ub (color->red,
-                                color->green,
-                                color->blue,
-                                color->alpha);
+      ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
+      fb = cogl_get_draw_framebuffer ();
+
+      cogl_color_init_from_4ub (&cogl_color, color->red, color->green, color->blue, color->alpha);
+
+      pipeline = cogl_pipeline_new (ctx);
+      cogl_pipeline_set_color (pipeline, &cogl_color);
 
-      cogl_rectangles (rectangles, n_rects);
+      cogl_framebuffer_draw_rectangles (fb, pipeline,
+                                        rectangles, n_rects);
+      cogl_object_unref (pipeline);
     }
 }
 


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