[mutter] MetaShapedTexture: Use a proper stride, calculated by cairo



commit f83568fc4e2d9bd5edf737ec3006c30fa75eebd7
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Mon Jul 11 12:58:09 2011 -0400

    MetaShapedTexture: Use a proper stride, calculated by cairo
    
    This will help us when painting directly on to the mask texture with
    cairo, which is needed for rounded corner AA.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=628195

 src/compositor/meta-shaped-texture.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)
---
diff --git a/src/compositor/meta-shaped-texture.c b/src/compositor/meta-shaped-texture.c
index 58a04a7..b2979ae 100644
--- a/src/compositor/meta-shaped-texture.c
+++ b/src/compositor/meta-shaped-texture.c
@@ -198,10 +198,13 @@ meta_shaped_texture_ensure_mask (MetaShapedTexture *stex)
       guchar *mask_data;
       int i;
       int n_rects;
+      int stride;
       GLenum paint_gl_target;
 
+      stride = cairo_format_stride_for_width (CAIRO_FORMAT_A8, tex_width);
+
       /* Create data for an empty image */
-      mask_data = g_malloc0 (tex_width * tex_height);
+      mask_data = g_malloc0 (stride * tex_height);
 
       n_rects = cairo_region_num_rectangles (priv->shape_region);
 
@@ -222,9 +225,9 @@ meta_shaped_texture_ensure_mask (MetaShapedTexture *stex)
           y2 = CLAMP (y2, y1, (gint) tex_height);
 
           /* Fill the rectangle */
-          for (p = mask_data + y1 * tex_width + x1;
+          for (p = mask_data + y1 * stride + x1;
                y1 < y2;
-               y1++, p += tex_width)
+               y1++, p += stride)
             memset (p, 255, x2 - x1);
         }
 
@@ -243,7 +246,7 @@ meta_shaped_texture_ensure_mask (MetaShapedTexture *stex)
                                           /* internal cogl format */
                                           COGL_PIXEL_FORMAT_A_8,
                                           /* rowstride */
-                                          tex_width,
+                                          stride,
                                           mask_data);
         }
       else
@@ -252,7 +255,7 @@ meta_shaped_texture_ensure_mask (MetaShapedTexture *stex)
                                                          COGL_TEXTURE_NONE,
                                                          COGL_PIXEL_FORMAT_A_8,
                                                          COGL_PIXEL_FORMAT_ANY,
-                                                         tex_width,
+                                                         stride,
                                                          mask_data);
 
       g_free (mask_data);



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