mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-21 16:05:02 +02:00
Nano-optimisation: Avoid using a block with GCD
This commit is contained in:
@@ -70,6 +70,8 @@ _glfwClearDisplayLinks(void) {
|
|||||||
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 @@ displayLinkCallback(
|
|||||||
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 @@ _glfwRequestRenderFrame(_GLFWwindow *w) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
Reference in New Issue
Block a user