Always try to set vsync. (#1636)
Use the internal monitor function to correctly get the display for windows.
This commit is contained in:
parent
0d096b43c2
commit
3e6f0d7372
16
src/core.c
16
src/core.c
@ -1034,7 +1034,13 @@ void ToggleFullscreen(void)
|
|||||||
// Store previous window position (in case we exit fullscreen)
|
// Store previous window position (in case we exit fullscreen)
|
||||||
glfwGetWindowPos(CORE.Window.handle, &CORE.Window.position.x, &CORE.Window.position.y);
|
glfwGetWindowPos(CORE.Window.handle, &CORE.Window.position.x, &CORE.Window.position.y);
|
||||||
|
|
||||||
GLFWmonitor *monitor = glfwGetWindowMonitor(CORE.Window.handle);
|
int monitorCount = 0;
|
||||||
|
GLFWmonitor** monitors = glfwGetMonitors(&monitorCount);
|
||||||
|
|
||||||
|
int monitorIndex = GetCurrentMonitor();
|
||||||
|
// use GetCurrentMonitor so we correctly get the display the window is on
|
||||||
|
GLFWmonitor* monitor = monitorIndex < monitorCount ? monitors[monitorIndex] : NULL;
|
||||||
|
|
||||||
if (!monitor)
|
if (!monitor)
|
||||||
{
|
{
|
||||||
TRACELOG(LOG_WARNING, "GLFW: Failed to get monitor");
|
TRACELOG(LOG_WARNING, "GLFW: Failed to get monitor");
|
||||||
@ -1048,10 +1054,6 @@ void ToggleFullscreen(void)
|
|||||||
glfwSetWindowSizeCallback(CORE.Window.handle, NULL);
|
glfwSetWindowSizeCallback(CORE.Window.handle, NULL);
|
||||||
glfwSetWindowMonitor(CORE.Window.handle, monitor, 0, 0, CORE.Window.screen.width, CORE.Window.screen.height, GLFW_DONT_CARE);
|
glfwSetWindowMonitor(CORE.Window.handle, monitor, 0, 0, CORE.Window.screen.width, CORE.Window.screen.height, GLFW_DONT_CARE);
|
||||||
glfwSetWindowSizeCallback(CORE.Window.handle, WindowSizeCallback);
|
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);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1060,6 +1062,10 @@ void ToggleFullscreen(void)
|
|||||||
glfwSetWindowSizeCallback(CORE.Window.handle, WindowSizeCallback);
|
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.fullscreen = !CORE.Window.fullscreen; // Toggle fullscreen flag
|
||||||
CORE.Window.flags ^= FLAG_FULLSCREEN_MODE;
|
CORE.Window.flags ^= FLAG_FULLSCREEN_MODE;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user