summaryrefslogtreecommitdiff
path: root/platform/osx
diff options
context:
space:
mode:
authorKevin Hartman <kevin@hart.mn>2014-02-18 22:48:38 -0500
committerKevin Hartman <kevin@hart.mn>2014-02-18 22:48:38 -0500
commit3974a5e84d3170f70481f7f68052ad53130d478b (patch)
tree3957b1f3c736e707a73655567c41ce3666d7b996 /platform/osx
parent2bfbf8978189ed8d785d7f707ad573ce2a2bf2a7 (diff)
OSX current_videomode size is now initialized with correct resolution based on backing store. Fixes issue where content does not correctly fit in window on retina displays.
Diffstat (limited to 'platform/osx')
-rw-r--r--platform/osx/os_osx.mm14
1 files changed, 10 insertions, 4 deletions
diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm
index 8dcba61c74..dda3527618 100644
--- a/platform/osx/os_osx.mm
+++ b/platform/osx/os_osx.mm
@@ -845,18 +845,17 @@ void OS_OSX::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi
/*** OSX INITIALIZATION ***/
/*** OSX INITIALIZATION ***/
/*** OSX INITIALIZATION ***/
-
- current_videomode=p_desired;
+
window_delegate = [[GodotWindowDelegate alloc] init];
// Don't use accumulation buffer support; it's not accelerated
// Aux buffers probably aren't accelerated either
- unsigned int styleMask = NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | (current_videomode.resizable?NSResizableWindowMask:0);
+ unsigned int styleMask = NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | (p_desired.resizable?NSResizableWindowMask:0);
window_object = [[GodotWindow alloc]
- initWithContentRect:NSMakeRect(0, 0, current_videomode.width,current_videomode.height)
+ initWithContentRect:NSMakeRect(0, 0, p_desired.width, p_desired.height)
styleMask:styleMask
backing:NSBackingStoreBuffered
defer:NO];
@@ -865,6 +864,13 @@ void OS_OSX::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi
window_view = [[GodotContentView alloc] init];
+ current_videomode = p_desired;
+
+ // Adjust for display density
+ const NSRect fbRect = convertRectToBacking(NSMakeRect(0, 0, p_desired.width, p_desired.height));
+ current_videomode.width = fbRect.size.width;
+ current_videomode.height = fbRect.size.height;
+
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_6) {
[window_view setWantsBestResolutionOpenGLSurface:YES];