Skip to content

Commit

Permalink
Optimize FLAG_WINDOW_ALWAYS_RUN and GetFrameTime() reset for PLATFORM…
Browse files Browse the repository at this point in the history
…_DESKTOP_GLFW
  • Loading branch information
asdqwe committed Dec 27, 2024
1 parent 565be7d commit 49a1da6
Showing 1 changed file with 6 additions and 10 deletions.
16 changes: 6 additions & 10 deletions src/platforms/rcore_desktop_glfw.c
Original file line number Diff line number Diff line change
Expand Up @@ -1248,12 +1248,13 @@ void PollInputEvents(void)

CORE.Window.resizedLastFrame = false;

if (CORE.Window.eventWaiting) glfwWaitEvents(); // Wait for in input events before continue (drawing is paused)
if ((CORE.Window.eventWaiting) || (IsWindowState(FLAG_WINDOW_MINIMIZED) && !IsWindowState(FLAG_WINDOW_ALWAYS_RUN)))
{
glfwWaitEvents(); // Wait for in input events before continue (drawing is paused)
CORE.Time.previous = GetTime();
}
else glfwPollEvents(); // Poll input events: keyboard/mouse/window events (callbacks) -> Update keys state

// While window minimized, stop loop execution
while (IsWindowState(FLAG_WINDOW_MINIMIZED) && !IsWindowState(FLAG_WINDOW_ALWAYS_RUN)) glfwWaitEvents();

CORE.Window.shouldClose = glfwWindowShouldClose(platform.handle);

// Reset close status for next frame
Expand Down Expand Up @@ -1739,12 +1740,7 @@ static void WindowContentScaleCallback(GLFWwindow *window, float scalex, float s
static void WindowIconifyCallback(GLFWwindow *window, int iconified)
{
if (iconified) CORE.Window.flags |= FLAG_WINDOW_MINIMIZED; // The window was iconified
else
{
CORE.Window.flags &= ~FLAG_WINDOW_MINIMIZED; // The window was restored

if ((CORE.Window.flags & FLAG_WINDOW_ALWAYS_RUN) == 0) CORE.Time.previous = GetTime();
}
else CORE.Window.flags &= ~FLAG_WINDOW_MINIMIZED; // The window was restored
}

// GLFW3 WindowMaximize Callback, runs when window is maximized/restored
Expand Down

0 comments on commit 49a1da6

Please sign in to comment.