diff --git a/glfw/cocoa_monitor.m b/glfw/cocoa_monitor.m index da1fe925d..a70726f73 100644 --- a/glfw/cocoa_monitor.m +++ b/glfw/cocoa_monitor.m @@ -245,11 +245,8 @@ bool refreshMonitorScreen(_GLFWmonitor* monitor) void _glfwClearDisplayLinks() { [_glfw.ns.displayLinks.lock lock]; for (size_t i = 0; i < _glfw.ns.displayLinks.count; i++) { - if (_glfw.ns.displayLinks.entries[i].displayLinkStarted) { - CVDisplayLinkStop(_glfw.ns.displayLinks.entries[i].displayLink); - _glfw.ns.displayLinks.entries[i].displayLinkStarted = false; - } if (_glfw.ns.displayLinks.entries[i].displayLink) { + CVDisplayLinkStop(_glfw.ns.displayLinks.entries[i].displayLink); CVDisplayLinkRelease(_glfw.ns.displayLinks.entries[i].displayLink); _glfw.ns.displayLinks.entries[i].displayLink = nil; } diff --git a/glfw/cocoa_platform.h b/glfw/cocoa_platform.h index 09ab98531..ce081afbf 100644 --- a/glfw/cocoa_platform.h +++ b/glfw/cocoa_platform.h @@ -144,7 +144,6 @@ typedef struct _GLFWDisplayLinkNS { CVDisplayLinkRef displayLink; CGDirectDisplayID displayID; - bool displayLinkStarted; bool renderFrameRequested; } _GLFWDisplayLinkNS; diff --git a/glfw/cocoa_window.m b/glfw/cocoa_window.m index ac563b505..5c4b91965 100644 --- a/glfw/cocoa_window.m +++ b/glfw/cocoa_window.m @@ -78,9 +78,8 @@ requestRenderFrame(_GLFWwindow *w, GLFWcocoarenderframefun callback) { _GLFWDisplayLinkNS *dl = &_glfw.ns.displayLinks.entries[i]; if (dl->displayID == displayID) { dl->renderFrameRequested = true; - if (!dl->displayLinkStarted) { + if (!CVDisplayLinkIsRunning(dl->displayLink)) { CVDisplayLinkStart(dl->displayLink); - dl->displayLinkStarted = true; } break; }