From 87458617e0d6094630a255d043c55e085f70c07f Mon Sep 17 00:00:00 2001 From: Cliff Smolinsky <40178962+kliffy542@users.noreply.github.com> Date: Tue, 19 Mar 2019 09:22:59 -0700 Subject: [PATCH] Win32: Bypass composition check on Windows 8+ DWM composition is always enabled on Windows 8 and later, so there's no need to call DwmIsCompositionEnabled on those platforms. Fixes #1452. Closes #1453. --- src/wgl_context.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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; } }