(svn r22921) -Fix: [OSX] Don't allow the old fullscreen mode also not as fallback on OSX 10.7. Also add a few sprinkles of coding style accross cocoa display drivers

This commit is contained in:
planetmaker 2011-09-11 12:52:44 +00:00
parent 40d5419cd2
commit 58f00d786c
2 changed files with 21 additions and 22 deletions

View File

@ -143,7 +143,7 @@ static void setupWindowMenu()
[ menuItem setSubmenu:windowMenu ];
[ [ NSApp mainMenu ] addItem:menuItem ];
if(MacOSVersionIsAtLeast(10, 7, 0)) {
if (MacOSVersionIsAtLeast(10, 7, 0)) {
/* The OS will change the name of this menu item automatically */
[ windowMenu addItemWithTitle:@"Fullscreen" action:@selector(toggleFullScreen:) keyEquivalent:@"^f" ];
}
@ -241,23 +241,20 @@ static CocoaSubdriver *QZ_CreateWindowSubdriver(int width, int height, int bpp)
CocoaSubdriver *ret;
#endif
#ifdef ENABLE_COCOA_QUARTZ
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
#ifdef ENABLE_COCOA_QUARTZ && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4)
/* The reason for the version mismatch is due to the fact that the 10.4 binary needs to work on 10.5 as well. */
if (MacOSVersionIsAtLeast(10, 5, 0)) {
ret = QZ_CreateWindowQuartzSubdriver(width, height, bpp);
if (ret != NULL) return ret;
}
#endif
#endif
#ifdef ENABLE_COCOA_QUICKDRAW
ret = QZ_CreateWindowQuickdrawSubdriver(width, height, bpp);
if (ret != NULL) return ret;
#endif
#ifdef ENABLE_COCOA_QUARTZ
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
#ifdef ENABLE_COCOA_QUARTZ && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4)
/*
* If we get here we are running 10.4 or earlier and either openttd was compiled without the QuickDraw driver
* or it failed to load for some reason. Fall back to Quartz if possible even though that driver is slower.
@ -266,7 +263,6 @@ static CocoaSubdriver *QZ_CreateWindowSubdriver(int width, int height, int bpp)
ret = QZ_CreateWindowQuartzSubdriver(width, height, bpp);
if (ret != NULL) return ret;
}
#endif
#endif
return NULL;
@ -307,11 +303,14 @@ static CocoaSubdriver *QZ_CreateSubdriver(int width, int height, int bpp, bool f
ret = QZ_CreateWindowSubdriver(640, 480, bpp);
if (ret != NULL) return ret;
#ifdef _DEBUG && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7)
/* Try fullscreen too when in debug mode */
DEBUG(driver, 0, "Setting video mode failed, falling back to 640x480 fullscreen mode.");
ret = QZ_CreateFullscreenSubdriver(640, 480, bpp);
if (ret != NULL) return ret;
#ifdef _DEBUG
/* This Fullscreen mode crashes on OSX 10.7 */
if !(MacOSVersionIsAtLeast(10, 7, 0) {
/* Try fullscreen too when in debug mode */
DEBUG(driver, 0, "Setting video mode failed, falling back to 640x480 fullscreen mode.");
ret = QZ_CreateFullscreenSubdriver(640, 480, bpp);
if (ret != NULL) return ret;
}
#endif
return NULL;
@ -681,8 +680,8 @@ void cocoaReleaseAutoreleasePool()
{
NSPoint loc = [ self convertPoint:[ [ self window ] mouseLocationOutsideOfEventStream ] fromView:nil ];
BOOL inside = ([ self hitTest:loc ]==self);
if(inside) [ [ self window] makeFirstResponder:self ];
trackingtag = [ self addTrackingRect:[self visibleRect] owner:self userData:nil assumeInside:inside ];
if (inside) [ [ self window ] makeFirstResponder:self ];
trackingtag = [ self addTrackingRect:[ self visibleRect ] owner:self userData:nil assumeInside:inside ];
}
/**
* Return responsibility for the application window to system
@ -713,7 +712,7 @@ void cocoaReleaseAutoreleasePool()
*/
- (void)viewDidMoveToWindow
{
if([ self window ]) [ self setTrackingRect ];
if ([ self window ]) [ self setTrackingRect ];
}
/**
* Make OpenTTD aware that it has control over the mouse

View File

@ -311,15 +311,15 @@ class FullscreenSubdriver: public CocoaSubdriver {
/* Since CGDisplayBaseAddress and CGDisplayBytesPerRow are no longer available on 10.7,
* disable until a replacement can be found. */
if (MacOSVersionIsAtLeast(10, 7, 0)) {
this->window_buffer = NULL;
this->window_pitch = NULL;
} else {
if (MacOSVersionIsAtLeast(10, 7, 0)) {
this->window_buffer = NULL;
this->window_pitch = NULL;
} else {
#if (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7)
this->window_buffer = CGDisplayBaseAddress(this->display_id);
this->window_pitch = CGDisplayBytesPerRow(this->display_id);
this->window_buffer = CGDisplayBaseAddress(this->display_id);
this->window_pitch = CGDisplayBytesPerRow(this->display_id);
#endif
}
}
this->device_width = CGDisplayPixelsWide(this->display_id);
this->device_height = CGDisplayPixelsHigh(this->display_id);