From a407bfcbfce302f5056e5d546f709887d04652df Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Fri, 22 Apr 2022 14:35:38 +0200 Subject: [PATCH] GL: register refresh callback instead of rendering last frame in gl_resize --- src/video_display/gl.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/video_display/gl.cpp b/src/video_display/gl.cpp index e1a381a3e..96d9f8467 100644 --- a/src/video_display/gl.cpp +++ b/src/video_display/gl.cpp @@ -1105,7 +1105,8 @@ static void display_gl_print_depth() { LOG(LOG_LEVEL_INFO) << MOD_NAME << "Buffer depth - R: " << bits[0] << "b, G: " << bits[1] << "b, B: " << bits[2] << "b\n"; } -static void display_gl_render_last(struct state_gl *s) { +static void display_gl_render_last(GLFWwindow *win) { + auto *s = (struct state_gl *) glfwGetWindowUserPointer(win); if (!s->current_frame) { return; } @@ -1180,6 +1181,7 @@ static bool display_gl_init_opengl(struct state_gl *s) glfwSetCursorPosCallback(s->window, glfw_mouse_callback); glfwSetWindowCloseCallback(s->window, glfw_close_callback); glfwSetFramebufferSizeCallback(s->window, gl_resize); + glfwSetWindowRefreshCallback(s->window, display_gl_render_last); #if defined HAVE_LINUX || defined WIN32 if (GLenum err = glewInit()) { @@ -1331,7 +1333,6 @@ static void gl_resize(GLFWwindow *win, int width, int height) /* Clear the screen */ glClear(GL_COLOR_BUFFER_BIT); } - display_gl_render_last(s); } static void upload_texture(struct state_gl *s, char *data)