Created
March 8, 2021 19:02
-
-
Save michicc/bef02e3dbfd678efae3a141ecb31ec94 to your computer and use it in GitHub Desktop.
OSX refresh rate
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/video/cocoa/cocoa_v.h b/src/video/cocoa/cocoa_v.h | |
index 371e4b5bc..3d3db5454 100644 | |
--- a/src/video/cocoa/cocoa_v.h | |
+++ b/src/video/cocoa/cocoa_v.h | |
@@ -47,6 +47,8 @@ public: | |
void EditBoxLostFocus() override; | |
+ std::vector<int> GetListOfMonitorRefreshRates() override; | |
+ | |
/* --- The following methods should be private, but can't be due to Obj-C limitations. --- */ | |
void MainLoopReal(); | |
diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm | |
index 8d1fd4447..3f1dadbaf 100644 | |
--- a/src/video/cocoa/cocoa_v.mm | |
+++ b/src/video/cocoa/cocoa_v.mm | |
@@ -228,6 +228,24 @@ void VideoDriver_Cocoa::EditBoxLostFocus() | |
HandleTextInput(nullptr, true); | |
} | |
+/** | |
+ * Get refresh rate of the current screen. | |
+ */ | |
+std::vector<int> VideoDriver_Cocoa::GetListOfMonitorRefreshRates() | |
+{ | |
+ std::vector<int> rates{}; | |
+ | |
+ NSNumber *scr = [ [ [ this->window screen ] deviceDescription ] objectForKey:@"NSScreenNumber" ]; | |
+ if (scr != nil && MacOSVersionIsAtLeast(10, 6, 0)) { | |
+ CGDisplayModeRef mode = CGDisplayCopyDisplayMode((CGDirectDisplayID)[ scr unsignedIntValue ]); | |
+ int rate = (int)CGDisplayModeGetRefreshRate(mode); | |
+ if (rate > 0) rates.push_back(rate); | |
+ CGDisplayModeRelease(mode); | |
+ } | |
+ | |
+ return rates; | |
+} | |
+ | |
/** | |
* Get the resolution of the main screen. | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment