[rcore] created SetWindowShouldClose

This commit is contained in:
Bruno Cabral 2024-08-25 17:37:52 -07:00
parent 8ea5db3ec4
commit 0aea99507e
9 changed files with 46 additions and 7 deletions

View File

@ -313,6 +313,11 @@ bool WindowShouldClose(void)
else return true;
}
void SetWindowShouldClose(bool shouldClose)
{
CORE.Window.shouldClose = shouldClose;
}
// Toggle fullscreen mode
void ToggleFullscreen(void)
{

View File

@ -142,6 +142,12 @@ bool WindowShouldClose(void)
else return true;
}
void SetWindowShouldClose(bool shouldClose)
{
CORE.Window.shouldClose = shouldClose;
glfwSetWindowShouldClose(platform.handle, shouldClose);
}
// Toggle fullscreen mode
void ToggleFullscreen(void)
{

View File

@ -239,6 +239,12 @@ bool WindowShouldClose(void)
else return true;
}
void SetWindowShouldClose(bool shouldClose)
{
CORE.Window.shouldClose = shouldClose;
RGFW_window_setShouldClose(platform.window);
}
// Toggle fullscreen mode
void ToggleFullscreen(void)
{

View File

@ -244,6 +244,11 @@ bool WindowShouldClose(void)
else return true;
}
void SetWindowShouldClose(bool shouldClose)
{
CORE.Window.shouldClose = shouldClose;
}
// Toggle fullscreen mode
void ToggleFullscreen(void)
{
@ -1063,7 +1068,7 @@ void PollInputEvents(void)
// All input events can be processed after polling
switch (event.type)
{
case SDL_QUIT: CORE.Window.shouldClose = true; break;
case SDL_QUIT: SetWindowShouldClose(true); break;
case SDL_DROPFILE: // Dropped file
{
@ -1150,7 +1155,7 @@ void PollInputEvents(void)
// TODO: Put exitKey verification outside the switch?
if (CORE.Input.Keyboard.currentKeyState[CORE.Input.Keyboard.exitKey])
{
CORE.Window.shouldClose = true;
SetWindowShouldClose(true);
}
} break;

View File

@ -206,7 +206,7 @@ static const short linuxToRaylibMap[KEYMAP_SIZE] = {
[BTN_TL] = GAMEPAD_BUTTON_LEFT_TRIGGER_1,
[BTN_TL2] = GAMEPAD_BUTTON_LEFT_TRIGGER_2,
[BTN_TR] = GAMEPAD_BUTTON_RIGHT_TRIGGER_1,
[BTN_TR2] GAMEPAD_BUTTON_RIGHT_TRIGGER_2,
[BTN_TR2] = GAMEPAD_BUTTON_RIGHT_TRIGGER_2,
[BTN_SELECT] = GAMEPAD_BUTTON_MIDDLE_LEFT,
[BTN_MODE] = GAMEPAD_BUTTON_MIDDLE,
[BTN_START] = GAMEPAD_BUTTON_MIDDLE_RIGHT,
@ -253,6 +253,11 @@ bool WindowShouldClose(void)
else return true;
}
void SetWindowShouldClose(bool shouldClose)
{
CORE.Window.shouldClose = shouldClose;
}
// Toggle fullscreen mode
void ToggleFullscreen(void)
{
@ -668,7 +673,7 @@ void PollInputEvents(void)
#endif
// Check exit key
if (CORE.Input.Keyboard.currentKeyState[CORE.Input.Keyboard.exitKey] == 1) CORE.Window.shouldClose = true;
if (CORE.Input.Keyboard.currentKeyState[CORE.Input.Keyboard.exitKey] == 1) SetWindowShouldClose(true);
// Register previous mouse position
if (platform.cursorRelative) CORE.Input.Mouse.currentPosition = (Vector2){ 0.0f, 0.0f };
@ -1139,7 +1144,7 @@ void ClosePlatform(void)
platform.device = EGL_NO_DISPLAY;
}
CORE.Window.shouldClose = true; // Added to force threads to exit when the close window is called
SetWindowShouldClose(true); // Added to force threads to exit when the close window is called
// Close the evdev devices

View File

@ -90,6 +90,12 @@ bool WindowShouldClose(void)
else return true;
}
void SetWindowShouldClose(bool shouldClose)
{
CORE.Window.shouldClose = shouldClose;
TRACELOG(LOG_WARNING, "SetWindowShouldClose() not available on target platform");
}
// Toggle fullscreen mode
void ToggleFullscreen(void)
{

View File

@ -160,6 +160,11 @@ bool WindowShouldClose(void)
return false;
}
void SetWindowShouldClose(bool shouldClose)
{
TRACELOG(LOG_WARNING, "SetWindowShouldClose() has no effect on Web");
}
// Toggle fullscreen mode
void ToggleFullscreen(void)
{

View File

@ -958,6 +958,7 @@ extern "C" { // Prevents name mangling of functions
RLAPI void InitWindow(int width, int height, const char *title); // Initialize window and OpenGL context
RLAPI void CloseWindow(void); // Close window and unload OpenGL context
RLAPI bool WindowShouldClose(void); // Check if application should close (KEY_ESCAPE pressed or windows close icon clicked)
RLAPI void SetWindowShouldClose(bool); // Set "Window Should Close" state
RLAPI bool IsWindowReady(void); // Check if window has been initialized successfully
RLAPI bool IsWindowFullscreen(void); // Check if window is currently fullscreen
RLAPI bool IsWindowHidden(void); // Check if window is currently hidden (only PLATFORM_DESKTOP)

View File

@ -678,7 +678,7 @@ void InitWindow(int width, int height, const char *title)
#endif
CORE.Time.frameCounter = 0;
CORE.Window.shouldClose = false;
SetWindowShouldClose(false);
// Initialize random seed
SetRandomSeed((unsigned int)time(NULL));
@ -2736,7 +2736,7 @@ void PlayAutomationEvent(AutomationEvent event)
case INPUT_GESTURE: GESTURES.current = event.params[0]; break; // param[0]: gesture (enum Gesture) -> rgestures.h: GESTURES.current
#endif
// Window event
case WINDOW_CLOSE: CORE.Window.shouldClose = true; break;
case WINDOW_CLOSE: SetWindowShouldClose(true); break;
case WINDOW_MAXIMIZE: MaximizeWindow(); break;
case WINDOW_MINIMIZE: MinimizeWindow(); break;
case WINDOW_RESIZE: SetWindowSize(event.params[0], event.params[1]); break;