Selaa lähdekoodia

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.

(cherry picked from commit 184377b493cd382485914624b30574cfd39216ba)
Camilla Löwy 4 vuotta sitten
vanhempi
commit
07c29d1c1c
2 muutettua tiedostoa jossa 4 lisäystä ja 1 poistoa
  1. 1 0
      README.md
  2. 3 1
      src/context.c

+ 1 - 0
README.md

@@ -118,6 +118,7 @@ information on what to include when reporting a bug.
 
 ## Changelog
 
+ - Bugfix: Buffers were swapped at creation on single-buffered windows (#1873)
  - [Win32] Bugfix: `USE_MSVC_RUNTIME_LIBRARY_DLL` had no effect on CMake 3.15 or
    later (#1783,#1796)
  - [Win32] Bugfix: Compilation with LLVM for Windows failed (#1807,#1824,#1874)

+ 3 - 1
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);