[gtk: 1/3] wayland/glcontext: Fix damage region on HiDPI
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk: 1/3] wayland/glcontext: Fix damage region on HiDPI
- Date: Tue, 3 Dec 2019 16:06:01 +0000 (UTC)
commit d6a6313493f658912eb64349d924dc95f6a1aa19
Author: Jonas Ådahl <jadahl gmail com>
Date: Tue Dec 3 16:32:59 2019 +0100
wayland/glcontext: Fix damage region on HiDPI
The passed regions are in surface coordinates, but
eglSwapBuffersWithDamage() is in buffer coordinates.
gdk/wayland/gdkglcontext-wayland.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
---
diff --git a/gdk/wayland/gdkglcontext-wayland.c b/gdk/wayland/gdkglcontext-wayland.c
index 40df428a38..c6b2116b26 100644
--- a/gdk/wayland/gdkglcontext-wayland.c
+++ b/gdk/wayland/gdkglcontext-wayland.c
@@ -244,14 +244,15 @@ gdk_wayland_gl_context_end_frame (GdkDrawContext *draw_context,
EGLint *rects = g_new (EGLint, n_rects * 4);
cairo_rectangle_int_t rect;
int surface_height = gdk_surface_get_height (surface);
+ int scale = gdk_surface_get_scale_factor (surface);
for (i = 0, j = 0; i < n_rects; i++)
{
cairo_region_get_rectangle (painted, i, &rect);
- rects[j++] = rect.x;
- rects[j++] = surface_height - rect.height - rect.y;
- rects[j++] = rect.width;
- rects[j++] = rect.height;
+ rects[j++] = rect.x * scale;
+ rects[j++] = (surface_height - rect.height - rect.y) * scale;
+ rects[j++] = rect.width * scale;
+ rects[j++] = rect.height * scale;
}
eglSwapBuffersWithDamageEXT (display_wayland->egl_display, egl_surface, rects, n_rects);
g_free (rects);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]