Bypass DwmIsCompositionEnabled checks on Win8+.

DWM composition is always enabled on Win8+, so there's no need to call DwmIsCompositionEnabled on those platforms.
This commit is contained in:
Cliff Smolinsky 2019-03-19 09:22:59 -07:00 committed by GitHub
parent 8055dad7e4
commit 1d8424e207
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -321,10 +321,15 @@ static void swapBuffersWGL(_GLFWwindow* window)
{
if (IsWindowsVistaOrGreater())
{
BOOL enabled;
BOOL enabled = FALSE;
// DWM Composition is always enabled on Win8+
if (IsWindows8OrGreater())
enabled = TRUE;
// 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 +351,16 @@ static void swapIntervalWGL(int interval)
{
if (IsWindowsVistaOrGreater())
{
BOOL enabled;
BOOL enabled = FALSE;
// DWM Composition is always enabled on Win8+
if (IsWindows8OrGreater())
enabled = TRUE;
// 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;
}
}