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.
This commit is contained in:
Cliff Smolinsky 2019-03-19 09:22:59 -07:00 committed by Camilla Löwy
parent 297999c9e1
commit 87458617e0

View File

@ -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;
}
}