diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -43,6 +43,7 @@ #import /* for MAXPATHLEN */ #import /* gettimeofday */ +#include /** * Important notice regarding all modifications!!!!!!! @@ -229,6 +230,30 @@ void VideoDriver_Cocoa::EditBoxLostFocus } /** + * Get refresh rates of all connected monitors. + */ +std::vector VideoDriver_Cocoa::GetListOfMonitorRefreshRates() +{ + std::vector rates{}; + + if (MacOSVersionIsAtLeast(10, 6, 0)) { + std::array displays; + + uint32_t count = 0; + CGGetActiveDisplayList(displays.size(), displays.data(), &count); + + for (uint32_t i = 0; i < count; i++) { + CGDisplayModeRef mode = CGDisplayCopyDisplayMode(displays[i]); + int rate = (int)CGDisplayModeGetRefreshRate(mode); + if (rate > 0) rates.push_back(rate); + CGDisplayModeRelease(mode); + } + } + + return rates; +} + +/** * Get the resolution of the main screen. */ Dimension VideoDriver_Cocoa::GetScreenSize() const