Nano-optimisation: Avoid using a block with GCD
This commit is contained in:
parent
6a6b0b47a3
commit
33b9d858ad
2 changed files with 6 additions and 6 deletions
|
|
@ -70,6 +70,8 @@
|
||||||
displayLinks.count = 0;
|
displayLinks.count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void _glfwDispatchRenderFrame(void *);
|
||||||
|
|
||||||
static CVReturn
|
static CVReturn
|
||||||
displayLinkCallback(
|
displayLinkCallback(
|
||||||
CVDisplayLinkRef displayLink UNUSED,
|
CVDisplayLinkRef displayLink UNUSED,
|
||||||
|
|
@ -84,9 +86,7 @@
|
||||||
CGDirectDisplayID displayID = entry->displayID;
|
CGDirectDisplayID displayID = entry->displayID;
|
||||||
if (should_dispatch) entry->pending_dispatch = true;
|
if (should_dispatch) entry->pending_dispatch = true;
|
||||||
os_unfair_lock_unlock(lock);
|
os_unfair_lock_unlock(lock);
|
||||||
if (should_dispatch) dispatch_async(dispatch_get_main_queue(), ^{
|
if (should_dispatch) dispatch_async_f(dispatch_get_main_queue(), (void*)(uintptr_t)displayID, _glfwDispatchRenderFrame);
|
||||||
_glfwDispatchRenderFrame(displayID);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
return kCVReturnSuccess;
|
return kCVReturnSuccess;
|
||||||
}
|
}
|
||||||
|
|
@ -241,8 +241,9 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
_glfwDispatchRenderFrame(CGDirectDisplayID displayID) {
|
_glfwDispatchRenderFrame(void *passed_in_data) {
|
||||||
|
CGDirectDisplayID displayID = (uintptr_t)passed_in_data;
|
||||||
_GLFWwindow *w = _glfw.windowListHead;
|
_GLFWwindow *w = _glfw.windowListHead;
|
||||||
while (w) {
|
while (w) {
|
||||||
if (w->ns.renderFrameRequested && displayID == displayIDForWindow(w)) {
|
if (w->ns.renderFrameRequested && displayID == displayIDForWindow(w)) {
|
||||||
|
|
|
||||||
1
glfw/cocoa_platform.h
vendored
1
glfw/cocoa_platform.h
vendored
|
|
@ -245,7 +245,6 @@ void* _glfwLoadLocalVulkanLoaderNS(void);
|
||||||
void _glfwClearDisplayLinks(void);
|
void _glfwClearDisplayLinks(void);
|
||||||
void _glfwRestartDisplayLinks(void);
|
void _glfwRestartDisplayLinks(void);
|
||||||
unsigned _glfwCreateDisplayLink(CGDirectDisplayID);
|
unsigned _glfwCreateDisplayLink(CGDirectDisplayID);
|
||||||
void _glfwDispatchRenderFrame(CGDirectDisplayID);
|
|
||||||
void _glfwRequestRenderFrame(_GLFWwindow *w);
|
void _glfwRequestRenderFrame(_GLFWwindow *w);
|
||||||
|
|
||||||
// event loop
|
// event loop
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue