diff options
| author | ChrisDill <[email protected]> | 2018-09-30 15:20:02 +0100 |
|---|---|---|
| committer | ChrisDill <[email protected]> | 2018-09-30 15:20:02 +0100 |
| commit | 67dc50ef0077b194fa51014880e531b126d0b059 (patch) | |
| tree | 6e33ae383afb2c0166dd404904a9a553959c13d6 /src/core.c | |
| parent | 6b84b76b70be35b471ef31afc0f0dc4e16cfe383 (diff) | |
| download | raylib-67dc50ef0077b194fa51014880e531b126d0b059.tar.gz raylib-67dc50ef0077b194fa51014880e531b126d0b059.zip | |
Changed monitor functions to use a index
- Using same idea as SetWindowMonitor to take in a index with 0 being the primary monitor.
Diffstat (limited to 'src/core.c')
| -rw-r--r-- | src/core.c | 93 |
1 files changed, 59 insertions, 34 deletions
@@ -783,64 +783,89 @@ int GetMonitorCount(void) } // Get primary monitor width -int GetMonitorWidth(void) +int GetMonitorWidth(int monitor) { #if defined(PLATFORM_DESKTOP) - GLFWmonitor *monitor = glfwGetPrimaryMonitor(); - const GLFWvidmode * mode = glfwGetVideoMode(monitor); - return mode->width; -#else - return GetScreenWidth(); + int monitorCount; + GLFWmonitor** monitors = glfwGetMonitors(&monitorCount); + + if ((monitor >= 0) && (monitor < monitorCount)) + { + const GLFWvidmode *mode = glfwGetVideoMode(monitors[monitor]); + return mode->width; + } + else TraceLog(LOG_WARNING, "Selected monitor not found"); #endif + return 0; } -// Get primary monitor height -int GetMonitorHeight(void) -{ +// Get primary monitor width +int GetMonitorHeight(int monitor) +{ #if defined(PLATFORM_DESKTOP) - GLFWmonitor *monitor = glfwGetPrimaryMonitor(); - const GLFWvidmode * mode = glfwGetVideoMode(monitor); - return mode->height; -#else - return GetScreenHeight(); + int monitorCount; + GLFWmonitor** monitors = glfwGetMonitors(&monitorCount); + + if ((monitor >= 0) && (monitor < monitorCount)) + { + const GLFWvidmode *mode = glfwGetVideoMode(monitors[monitor]); + return mode->height; + } + else TraceLog(LOG_WARNING, "Selected monitor not found"); #endif + return 0; } // Get primary montior physical width in millimetres -int GetMonitorPhysicalWidth(void) +int GetMonitorPhysicalWidth(int monitor) { #if defined(PLATFORM_DESKTOP) - int physicalWidth; - GLFWmonitor *monitor = glfwGetPrimaryMonitor(); - glfwGetMonitorPhysicalSize(monitor, &physicalWidth, NULL); - return physicalWidth; -#else - return 0; + int monitorCount; + GLFWmonitor** monitors = glfwGetMonitors(&monitorCount); + + if ((monitor >= 0) && (monitor < monitorCount)) + { + int physicalWidth; + glfwGetMonitorPhysicalSize(monitors[monitor], &physicalWidth, NULL); + return physicalWidth; + } + else TraceLog(LOG_WARNING, "Selected monitor not found"); #endif + return 0; } // Get primary monitor physical height in millimetres -int GetMonitorPhysicalHeight(void) +int GetMonitorPhysicalHeight(int monitor) { -#if defined(PLATFORM_DESKTOP) - int physicalHeight; - GLFWmonitor *monitor = glfwGetPrimaryMonitor(); - glfwGetMonitorPhysicalSize(monitor, NULL, &physicalHeight); - return physicalHeight; -#else - return 0; +#if defined(PLATFORM_DESKTOP) + int monitorCount; + GLFWmonitor** monitors = glfwGetMonitors(&monitorCount); + + if ((monitor >= 0) && (monitor < monitorCount)) + { + int physicalHeight; + glfwGetMonitorPhysicalSize(monitors[monitor], NULL, &physicalHeight); + return physicalHeight; + } + else TraceLog(LOG_WARNING, "Selected monitor not found"); #endif + return 0; } // Get the human-readable, UTF-8 encoded name of the primary monitor -const char *GetMonitorName(void) +const char *GetMonitorName(int monitor) { #if defined(PLATFORM_DESKTOP) - GLFWmonitor *monitor = glfwGetPrimaryMonitor(); - return glfwGetMonitorName(monitor); -#else - return ""; + int monitorCount; + GLFWmonitor** monitors = glfwGetMonitors(&monitorCount); + + if ((monitor >= 0) && (monitor < monitorCount)) + { + return glfwGetMonitorName(monitors[monitor]); + } + else TraceLog(LOG_WARNING, "Selected monitor not found"); #endif + return ""; } // Show mouse cursor |
