Commit 6c192a88 authored by Ray Strode's avatar Ray Strode Committed by Matthias Clasen

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
parent 385b7ae0
......@@ -1056,7 +1056,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,
......@@ -1067,11 +1067,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,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment