[gtk+] wayland: clean up stride calculation when creating shm surface
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] wayland: clean up stride calculation when creating shm surface
- Date: Wed, 20 Jan 2016 19:29:45 +0000 (UTC)
commit 1e001eaa7874bc00cfc3a2c86e8e40b0fe18c4e5
Author: Ray Strode <rstrode redhat com>
Date: Wed Jan 20 11:40:34 2016 -0500
wayland: clean up stride calculation when creating shm surface
Right now, we assume the stride for the image surface needs to
be 4 byte aligned. This is, in fact, true, but it's better to
ask cairo for the alignment requirement directly rather than
assume we know the alignment rules.
This commit changes the code to use cairo_format_stride_for_width
to calculate a suitable rowstride for pixman.
https://bugzilla.gnome.org/show_bug.cgi?id=760897
gdk/wayland/gdkdisplay-wayland.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c
index 2f0c64e..bf3c20c 100644
--- a/gdk/wayland/gdkdisplay-wayland.c
+++ b/gdk/wayland/gdkdisplay-wayland.c
@@ -1005,7 +1005,7 @@ _gdk_wayland_display_create_shm_surface (GdkWaylandDisplay *display,
data->scale = scale;
data->busy = FALSE;
- stride = width * 4;
+ stride = cairo_format_stride_for_width (CAIRO_FORMAT_ARGB32, width*scale);
data->pool = create_shm_pool (display->shm,
width*scale, height*scale,
@@ -1016,11 +1016,11 @@ _gdk_wayland_display_create_shm_surface (GdkWaylandDisplay *display,
CAIRO_FORMAT_ARGB32,
width*scale,
height*scale,
- stride*scale);
+ stride);
data->buffer = wl_shm_pool_create_buffer (data->pool, 0,
width*scale, height*scale,
- stride*scale, WL_SHM_FORMAT_ARGB8888);
+ stride, WL_SHM_FORMAT_ARGB8888);
wl_buffer_add_listener (data->buffer, &buffer_listener, surface);
cairo_surface_set_user_data (surface, &gdk_wayland_cairo_key,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]