[mutter] MetaShapedTexture: Use a proper stride, calculated by cairo
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] MetaShapedTexture: Use a proper stride, calculated by cairo
- Date: Fri, 26 Aug 2011 17:07:02 +0000 (UTC)
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]