mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-26 13:41:07 +00:00
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
This commit is contained in:
parent
c8deaeabdd
commit
1e001eaa78
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user