summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Lutz <michi@icosahedron.de>2021-01-07 22:09:43 +0100
committerMichael Lutz <michi@icosahedron.de>2021-02-14 11:50:18 +0100
commite5c325364285b1e6e93afa2a0a79b1ec437f238e (patch)
tree8e2b58ad6cb1ff9b6bff8bb8f69308d72ff5d5b2
parent0fc763bc5597e04ee528a34ca2730f780d25fb5e (diff)
downloadopenttd-e5c325364285b1e6e93afa2a0a79b1ec437f238e.tar.xz
Add: [OSX] Setting to disable HiDPI graphics rendering.
-rw-r--r--src/table/misc_settings.ini10
-rw-r--r--src/video/cocoa/cocoa_wnd.mm6
2 files changed, 14 insertions, 2 deletions
diff --git a/src/table/misc_settings.ini b/src/table/misc_settings.ini
index d46ebe9bb..edc779caf 100644
--- a/src/table/misc_settings.ini
+++ b/src/table/misc_settings.ini
@@ -9,6 +9,10 @@ extern std::string _config_language_file;
static const char *_support8bppmodes = "no|system|hardware";
+#ifdef WITH_COCOA
+extern bool _allow_hidpi_window;
+#endif
+
static const SettingDescGlobVarList _misc_settings[] = {
[post-amble]
};
@@ -317,5 +321,11 @@ min = ZOOM_LVL_MIN
max = ZOOM_LVL_OUT_4X
cat = SC_BASIC
+[SDTG_BOOL]
+ifdef = WITH_COCOA
+name = ""allow_hidpi""
+var = _allow_hidpi_window
+def = true
+
[SDTG_END]
diff --git a/src/video/cocoa/cocoa_wnd.mm b/src/video/cocoa/cocoa_wnd.mm
index cd194f712..afe2cece6 100644
--- a/src/video/cocoa/cocoa_wnd.mm
+++ b/src/video/cocoa/cocoa_wnd.mm
@@ -46,6 +46,8 @@
* Read http://developer.apple.com/releasenotes/Cocoa/Objective-C++.html for more information.
*/
+bool _allow_hidpi_window = true; // Referenced from table/misc_settings.ini
+
@interface OTTDMain : NSObject <NSApplicationDelegate>
@end
@@ -417,13 +419,13 @@ void CocoaDialog(const char *title, const char *message, const char *buttonLabel
float _current_magnification;
NSUInteger _current_mods;
bool _emulated_down;
- bool _use_hidpi;
+ bool _use_hidpi; ///< Render content in native resolution?
}
- (instancetype)initWithFrame:(NSRect)frameRect
{
if (self = [ super initWithFrame:frameRect ]) {
- self->_use_hidpi = [ self respondsToSelector:@selector(convertRectToBacking:) ] && [ self respondsToSelector:@selector(convertRectFromBacking:) ];
+ self->_use_hidpi = _allow_hidpi_window && [ self respondsToSelector:@selector(convertRectToBacking:) ] && [ self respondsToSelector:@selector(convertRectFromBacking:) ];
}
return self;
}