From 184377b493cd382485914624b30574cfd39216ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Camilla=20L=C3=B6wy?= Date: Thu, 13 May 2021 21:41:51 +0200 Subject: [PATCH] Skip initial buffer swap when single-buffered This skips the buffer swap after the initial glClear performed during window creation, if the window is single-buffered. This call confused apitrace into thinking the window was double-buffered. Fixes #1873. --- README.md | 1 + src/context.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8f81dc67..b5b4f7ea 100644 --- a/README.md +++ b/README.md @@ -140,6 +140,7 @@ information on what to include when reporting a bug. - Bugfix: Built-in mappings failed because some OEMs re-used VID/PID (#1583) - Bugfix: Some extension loader headers did not prevent default OpenGL header inclusion (#1695) + - Bugfix: Buffers were swapped at creation on single-buffered windows (#1873) - [Win32] Added the `GLFW_WIN32_KEYBOARD_MENU` window hint for enabling access to the window menu - [Win32] Added a version info resource to the GLFW DLL diff --git a/src/context.c b/src/context.c index 48311e5f..12a06e0b 100644 --- a/src/context.c +++ b/src/context.c @@ -570,7 +570,9 @@ GLFWbool _glfwRefreshContextAttribs(_GLFWwindow* window, PFNGLCLEARPROC glClear = (PFNGLCLEARPROC) window->context.getProcAddress("glClear"); glClear(GL_COLOR_BUFFER_BIT); - window->context.swapBuffers(window); + + if (window->doublebuffer) + window->context.swapBuffers(window); } glfwMakeContextCurrent((GLFWwindow*) previous);