diff --git a/src/wgl_context.c b/src/wgl_context.c index b3e0303c..969895b1 100644 --- a/src/wgl_context.c +++ b/src/wgl_context.c @@ -321,10 +321,12 @@ static void swapBuffersWGL(_GLFWwindow* window) { if (IsWindowsVistaOrGreater()) { - BOOL enabled; + // DWM Composition is always enabled on Win8+ + BOOL enabled = IsWindows8OrGreater(); // HACK: Use DwmFlush when desktop composition is enabled - if (SUCCEEDED(DwmIsCompositionEnabled(&enabled)) && enabled) + if (enabled || + (SUCCEEDED(DwmIsCompositionEnabled(&enabled)) && enabled)) { int count = abs(window->context.wgl.interval); while (count--) @@ -346,11 +348,13 @@ static void swapIntervalWGL(int interval) { if (IsWindowsVistaOrGreater()) { - BOOL enabled; + // DWM Composition is always enabled on Win8+ + BOOL enabled = IsWindows8OrGreater(); // HACK: Disable WGL swap interval when desktop composition is enabled to // avoid interfering with DWM vsync - if (SUCCEEDED(DwmIsCompositionEnabled(&enabled)) && enabled) + if (enabled || + (SUCCEEDED(DwmIsCompositionEnabled(&enabled)) && enabled)) interval = 0; } }