diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2024-04-13 05:14:04 +0200 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2024-04-13 05:16:48 +0200 |
commit | 3c8ddcaf264a08102b27ae96a8a8340cb0abc997 (patch) | |
tree | c6a94a25933ae418e0acb5f280568c22e7c5be8d | |
parent | e3ec07a19f01d21738095ba7c4fb09efc8be544e (diff) | |
download | fiv-3c8ddcaf264a08102b27ae96a8a8340cb0abc997.tar.gz fiv-3c8ddcaf264a08102b27ae96a8a8340cb0abc997.tar.xz fiv-3c8ddcaf264a08102b27ae96a8a8340cb0abc997.zip |
Fix high-DPI scaling with OpenGL
We used to render multiple copies (four for a scaling factor of 2).
-rw-r--r-- | fiv-view.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -851,6 +851,10 @@ gl_draw(FivView *self, cairo_t *cr) cliph = allocation.height; } + int scale = gtk_widget_get_scale_factor(GTK_WIDGET(self)); + clipw *= scale; + cliph *= scale; + enum { SRC, DEST }; GLuint textures[2] = {}; glGenTextures(2, textures); @@ -963,7 +967,7 @@ gl_draw(FivView *self, cairo_t *cr) GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(self)); cairo_translate(cr, dx, dy); gdk_cairo_draw_from_gl( - cr, window, textures[DEST], GL_TEXTURE, 1, 0, 0, clipw, cliph); + cr, window, textures[DEST], GL_TEXTURE, scale, 0, 0, clipw, cliph); gdk_gl_context_make_current(self->gl_context); glDeleteBuffers(1, &vertex_buffer); |