Add a current monitor function for window mode windows. (#1492)
This commit is contained in:
parent
24b6dcf29f
commit
4c8bebc0d7
37
src/core.c
37
src/core.c
@ -1458,12 +1458,41 @@ int GetCurrentMonitor(void)
|
|||||||
#if defined(PLATFORM_DESKTOP)
|
#if defined(PLATFORM_DESKTOP)
|
||||||
int monitorCount;
|
int monitorCount;
|
||||||
GLFWmonitor** monitors = glfwGetMonitors(&monitorCount);
|
GLFWmonitor** monitors = glfwGetMonitors(&monitorCount);
|
||||||
|
GLFWmonitor* monitor = NULL;
|
||||||
|
|
||||||
GLFWmonitor* monitor = glfwGetWindowMonitor(CORE.Window.handle);
|
if (monitorCount == 1) // easy out
|
||||||
for (int i = 0; i < monitorCount; i++)
|
return 0;
|
||||||
|
|
||||||
|
if (IsWindowFullscreen())
|
||||||
{
|
{
|
||||||
if (monitors[i] == monitor)
|
monitor = glfwGetWindowMonitor(CORE.Window.handle);
|
||||||
return i;
|
for (int i = 0; i < monitorCount; i++)
|
||||||
|
{
|
||||||
|
if (monitors[i] == monitor)
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int x = 0;
|
||||||
|
int y = 0;
|
||||||
|
|
||||||
|
glfwGetWindowPos(CORE.Window.handle, &x, &y);
|
||||||
|
|
||||||
|
for (int i = 0; i < monitorCount; i++)
|
||||||
|
{
|
||||||
|
int mx = 0;
|
||||||
|
int my = 0;
|
||||||
|
|
||||||
|
int width = 0;
|
||||||
|
int height = 0;
|
||||||
|
|
||||||
|
monitor = monitors[i];
|
||||||
|
glfwGetMonitorWorkarea(monitor, &mx, &my, &width, &height);
|
||||||
|
if (x >= mx && x <= (mx + width) && y >= my && y <= (my + height))
|
||||||
|
return i;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
#else
|
#else
|
||||||
|
Loading…
Reference in New Issue
Block a user