summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorRay <[email protected]>2021-03-09 00:07:19 +0100
committerRay <[email protected]>2021-03-09 00:07:19 +0100
commitf0ab4723b939087ee05181202a01a213219590a5 (patch)
treec6b4e01bde7d840831b49fb3dada3ab4f6701038 /src
parentb7f2059dc319c974546e41b61c9f47fbaf1c45c0 (diff)
parentef9f67749a51bcde62b3a46f692d5a0f1d2c1d1f (diff)
downloadraylib-f0ab4723b939087ee05181202a01a213219590a5.tar.gz
raylib-f0ab4723b939087ee05181202a01a213219590a5.zip
Merge branch 'master' of https://github.com/raysan5/raylib
Diffstat (limited to 'src')
-rw-r--r--src/core.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/src/core.c b/src/core.c
index 75b38766..c4b52b87 100644
--- a/src/core.c
+++ b/src/core.c
@@ -1044,31 +1044,31 @@ void ToggleFullscreen(void)
if (!monitor)
{
TRACELOG(LOG_WARNING, "GLFW: Failed to get monitor");
- glfwSetWindowSizeCallback(CORE.Window.handle, NULL);
- glfwSetWindowMonitor(CORE.Window.handle, glfwGetPrimaryMonitor(), 0, 0, CORE.Window.screen.width, CORE.Window.screen.height, GLFW_DONT_CARE);
- glfwSetWindowSizeCallback(CORE.Window.handle, WindowSizeCallback);
+
+ CORE.Window.fullscreen = false; // Toggle fullscreen flag
+ CORE.Window.flags &= ~FLAG_FULLSCREEN_MODE;
+
+ glfwSetWindowMonitor(CORE.Window.handle, NULL, 0, 0, CORE.Window.screen.width, CORE.Window.screen.height, GLFW_DONT_CARE);
return;
}
- const GLFWvidmode *mode = glfwGetVideoMode(monitor);
- glfwSetWindowSizeCallback(CORE.Window.handle, NULL);
+ CORE.Window.fullscreen = true; // Toggle fullscreen flag
+ CORE.Window.flags |= FLAG_FULLSCREEN_MODE;
+
glfwSetWindowMonitor(CORE.Window.handle, monitor, 0, 0, CORE.Window.screen.width, CORE.Window.screen.height, GLFW_DONT_CARE);
- glfwSetWindowSizeCallback(CORE.Window.handle, WindowSizeCallback);
}
else
{
- glfwSetWindowSizeCallback(CORE.Window.handle, NULL);
+ CORE.Window.fullscreen = false; // Toggle fullscreen flag
+ CORE.Window.flags &= ~FLAG_FULLSCREEN_MODE;
+
glfwSetWindowMonitor(CORE.Window.handle, NULL, CORE.Window.position.x, CORE.Window.position.y, CORE.Window.screen.width, CORE.Window.screen.height, GLFW_DONT_CARE);
- glfwSetWindowSizeCallback(CORE.Window.handle, WindowSizeCallback);
}
// Try to enable GPU V-Sync, so frames are limited to screen refresh rate (60Hz -> 60 FPS)
// NOTE: V-Sync can be enabled by graphic driver configuration
if (CORE.Window.flags & FLAG_VSYNC_HINT) glfwSwapInterval(1);
- CORE.Window.fullscreen = !CORE.Window.fullscreen; // Toggle fullscreen flag
- CORE.Window.flags ^= FLAG_FULLSCREEN_MODE;
-
#endif
#if defined(PLATFORM_WEB)
/*
@@ -4619,16 +4619,18 @@ static void ErrorCallback(int error, const char *description)
static void WindowSizeCallback(GLFWwindow *window, int width, int height)
{
SetupViewport(width, height); // Reset viewport and projection matrix for new size
-
+ CORE.Window.currentFbo.width = width;
+ CORE.Window.currentFbo.height = height;
+ CORE.Window.resizedLastFrame = true;
+
+ if(IsWindowFullscreen())
+ return;
+
// Set current screen size
CORE.Window.screen.width = width;
CORE.Window.screen.height = height;
- CORE.Window.currentFbo.width = width;
- CORE.Window.currentFbo.height = height;
-
// NOTE: Postprocessing texture is not scaled to new size
- CORE.Window.resizedLastFrame = true;
}
// GLFW3 WindowIconify Callback, runs when window is minimized/restored