wait-events glfwWaitEventsTimeout further bugfixes

This commit is contained in:
Doug Binks 2025-11-21 18:20:01 +00:00
parent 4c2c30e951
commit d1d118de3e
2 changed files with 7 additions and 3 deletions

View File

@ -2182,12 +2182,17 @@ void _glfwWaitEventsWin32(void)
void _glfwWaitEventsTimeoutWin32(double timeout) void _glfwWaitEventsTimeoutWin32(double timeout)
{ {
DWORD ret; DWORD ret;
double timeStart, timeEnd, timeWait;
timeStart = glfwGetTime();
timeWait = timeout;
do do
{ {
ret = MsgWaitForMultipleObjects(0, NULL, FALSE, (DWORD) (timeout * 1e3), QS_ALLINPUT); ret = MsgWaitForMultipleObjects(0, NULL, FALSE, (DWORD) (timeWait * 1e3), QS_ALLINPUT);
_glfwPollEventsWin32(); _glfwPollEventsWin32();
} while (_glfw.newEventsRcvd == GLFW_FALSE && ret != WAIT_TIMEOUT); timeEnd = glfwGetTime();
timeWait = timeout - (timeEnd - timeStart);
} while (_glfw.newEventsRcvd == GLFW_FALSE && timeWait > 0.0 );
} }
void _glfwPostEmptyEventWin32(void) void _glfwPostEmptyEventWin32(void)

View File

@ -1210,7 +1210,6 @@ GLFWAPI void glfwWaitEventsTimeout(double timeout)
} }
_glfw.newEventsRcvd = GLFW_FALSE; _glfw.newEventsRcvd = GLFW_FALSE;
_glfw.platform.waitEvents();
_glfw.platform.waitEventsTimeout(timeout); _glfw.platform.waitEventsTimeout(timeout);
} }