summaryrefslogtreecommitdiffhomepage
path: root/src/external/glfw/src/cocoa_monitor.m
diff options
context:
space:
mode:
Diffstat (limited to 'src/external/glfw/src/cocoa_monitor.m')
-rw-r--r--src/external/glfw/src/cocoa_monitor.m83
1 files changed, 36 insertions, 47 deletions
diff --git a/src/external/glfw/src/cocoa_monitor.m b/src/external/glfw/src/cocoa_monitor.m
index e327c628..9ef2cdc9 100644
--- a/src/external/glfw/src/cocoa_monitor.m
+++ b/src/external/glfw/src/cocoa_monitor.m
@@ -1,5 +1,5 @@
//========================================================================
-// GLFW 3.3 macOS - www.glfw.org
+// GLFW 3.4 macOS - www.glfw.org
//------------------------------------------------------------------------
// Copyright (c) 2002-2006 Marcus Geelnard
// Copyright (c) 2006-2019 Camilla Löwy <[email protected]>
@@ -24,6 +24,8 @@
// distribution.
//
//========================================================================
+// It is fine to use C99 in this file because it will not be built with VS
+//========================================================================
#include "internal.h"
@@ -213,7 +215,7 @@ static void endFadeReservation(CGDisplayFadeReservationToken token)
// Finds and caches the NSScreen corresponding to the specified monitor
//
-GLFWbool refreshMonitorScreen(_GLFWmonitor* monitor)
+static GLFWbool refreshMonitorScreen(_GLFWmonitor* monitor)
{
if (monitor->ns.screen)
return GLFW_TRUE;
@@ -245,18 +247,16 @@ GLFWbool refreshMonitorScreen(_GLFWmonitor* monitor)
//
void _glfwPollMonitorsNS(void)
{
- uint32_t i, j, displayCount, disconnectedCount;
- CGDirectDisplayID* displays;
- _GLFWmonitor** disconnected = NULL;
-
+ uint32_t displayCount;
CGGetOnlineDisplayList(0, NULL, &displayCount);
- displays = calloc(displayCount, sizeof(CGDirectDisplayID));
+ CGDirectDisplayID* displays = calloc(displayCount, sizeof(CGDirectDisplayID));
CGGetOnlineDisplayList(displayCount, displays, &displayCount);
- for (i = 0; i < _glfw.monitorCount; i++)
+ for (int i = 0; i < _glfw.monitorCount; i++)
_glfw.monitors[i]->ns.screen = nil;
- disconnectedCount = _glfw.monitorCount;
+ _GLFWmonitor** disconnected = NULL;
+ uint32_t disconnectedCount = _glfw.monitorCount;
if (disconnectedCount)
{
disconnected = calloc(_glfw.monitorCount, sizeof(_GLFWmonitor*));
@@ -265,19 +265,17 @@ void _glfwPollMonitorsNS(void)
_glfw.monitorCount * sizeof(_GLFWmonitor*));
}
- for (i = 0; i < displayCount; i++)
+ for (uint32_t i = 0; i < displayCount; i++)
{
- _GLFWmonitor* monitor;
- const uint32_t unitNumber = CGDisplayUnitNumber(displays[i]);
-
if (CGDisplayIsAsleep(displays[i]))
continue;
- for (j = 0; j < disconnectedCount; j++)
+ // HACK: Compare unit numbers instead of display IDs to work around
+ // display replacement on machines with automatic graphics
+ // switching
+ const uint32_t unitNumber = CGDisplayUnitNumber(displays[i]);
+ for (uint32_t j = 0; j < disconnectedCount; j++)
{
- // HACK: Compare unit numbers instead of display IDs to work around
- // display replacement on machines with automatic graphics
- // switching
if (disconnected[j] && disconnected[j]->ns.unitNumber == unitNumber)
{
disconnected[j] = NULL;
@@ -290,7 +288,7 @@ void _glfwPollMonitorsNS(void)
if (!name)
name = _glfw_strdup("Unknown");
- monitor = _glfwAllocMonitor(name, size.width, size.height);
+ _GLFWmonitor* monitor = _glfwAllocMonitor(name, size.width, size.height);
monitor->ns.displayID = displays[i];
monitor->ns.unitNumber = unitNumber;
@@ -299,7 +297,7 @@ void _glfwPollMonitorsNS(void)
_glfwInputMonitor(monitor, GLFW_CONNECTED, _GLFW_INSERT_LAST);
}
- for (i = 0; i < disconnectedCount; i++)
+ for (uint32_t i = 0; i < disconnectedCount; i++)
{
if (disconnected[i])
_glfwInputMonitor(disconnected[i], GLFW_DISCONNECTED, 0);
@@ -313,24 +311,21 @@ void _glfwPollMonitorsNS(void)
//
void _glfwSetVideoModeNS(_GLFWmonitor* monitor, const GLFWvidmode* desired)
{
- CFArrayRef modes;
- CFIndex count, i;
- CVDisplayLinkRef link;
- CGDisplayModeRef native = NULL;
GLFWvidmode current;
- const GLFWvidmode* best;
-
- best = _glfwChooseVideoMode(monitor, desired);
_glfwPlatformGetVideoMode(monitor, &current);
+
+ const GLFWvidmode* best = _glfwChooseVideoMode(monitor, desired);
if (_glfwCompareVideoModes(&current, best) == 0)
return;
+ CVDisplayLinkRef link;
CVDisplayLinkCreateWithCGDisplay(monitor->ns.displayID, &link);
- modes = CGDisplayCopyAllDisplayModes(monitor->ns.displayID, NULL);
- count = CFArrayGetCount(modes);
+ CFArrayRef modes = CGDisplayCopyAllDisplayModes(monitor->ns.displayID, NULL);
+ const CFIndex count = CFArrayGetCount(modes);
+ CGDisplayModeRef native = NULL;
- for (i = 0; i < count; i++)
+ for (CFIndex i = 0; i < count; i++)
{
CGDisplayModeRef dm = (CGDisplayModeRef) CFArrayGetValueAtIndex(modes, i);
if (!modeIsGood(dm))
@@ -443,26 +438,23 @@ GLFWvidmode* _glfwPlatformGetVideoModes(_GLFWmonitor* monitor, int* count)
{
@autoreleasepool {
- CFArrayRef modes;
- CFIndex found, i, j;
- GLFWvidmode* result;
- CVDisplayLinkRef link;
-
*count = 0;
+ CVDisplayLinkRef link;
CVDisplayLinkCreateWithCGDisplay(monitor->ns.displayID, &link);
- modes = CGDisplayCopyAllDisplayModes(monitor->ns.displayID, NULL);
- found = CFArrayGetCount(modes);
- result = calloc(found, sizeof(GLFWvidmode));
+ CFArrayRef modes = CGDisplayCopyAllDisplayModes(monitor->ns.displayID, NULL);
+ const CFIndex found = CFArrayGetCount(modes);
+ GLFWvidmode* result = calloc(found, sizeof(GLFWvidmode));
- for (i = 0; i < found; i++)
+ for (CFIndex i = 0; i < found; i++)
{
CGDisplayModeRef dm = (CGDisplayModeRef) CFArrayGetValueAtIndex(modes, i);
if (!modeIsGood(dm))
continue;
const GLFWvidmode mode = vidmodeFromCGDisplayMode(dm, link);
+ CFIndex j;
for (j = 0; j < *count; j++)
{
@@ -489,14 +481,12 @@ void _glfwPlatformGetVideoMode(_GLFWmonitor* monitor, GLFWvidmode *mode)
{
@autoreleasepool {
- CGDisplayModeRef displayMode;
CVDisplayLinkRef link;
-
CVDisplayLinkCreateWithCGDisplay(monitor->ns.displayID, &link);
- displayMode = CGDisplayCopyDisplayMode(monitor->ns.displayID);
- *mode = vidmodeFromCGDisplayMode(displayMode, link);
- CGDisplayModeRelease(displayMode);
+ CGDisplayModeRef native = CGDisplayCopyDisplayMode(monitor->ns.displayID);
+ *mode = vidmodeFromCGDisplayMode(native, link);
+ CGDisplayModeRelease(native);
CVDisplayLinkRelease(link);
@@ -507,7 +497,7 @@ GLFWbool _glfwPlatformGetGammaRamp(_GLFWmonitor* monitor, GLFWgammaramp* ramp)
{
@autoreleasepool {
- uint32_t i, size = CGDisplayGammaTableCapacity(monitor->ns.displayID);
+ uint32_t size = CGDisplayGammaTableCapacity(monitor->ns.displayID);
CGGammaValue* values = calloc(size * 3, sizeof(CGGammaValue));
CGGetDisplayTransferByTable(monitor->ns.displayID,
@@ -519,7 +509,7 @@ GLFWbool _glfwPlatformGetGammaRamp(_GLFWmonitor* monitor, GLFWgammaramp* ramp)
_glfwAllocGammaArrays(ramp, size);
- for (i = 0; i < size; i++)
+ for (uint32_t i = 0; i < size; i++)
{
ramp->red[i] = (unsigned short) (values[i] * 65535);
ramp->green[i] = (unsigned short) (values[i + size] * 65535);
@@ -536,10 +526,9 @@ void _glfwPlatformSetGammaRamp(_GLFWmonitor* monitor, const GLFWgammaramp* ramp)
{
@autoreleasepool {
- int i;
CGGammaValue* values = calloc(ramp->size * 3, sizeof(CGGammaValue));
- for (i = 0; i < ramp->size; i++)
+ for (unsigned int i = 0; i < ramp->size; i++)
{
values[i] = ramp->red[i] / 65535.f;
values[i + ramp->size] = ramp->green[i] / 65535.f;