diff options
-rw-r--r-- | src/blitter/factory.hpp | 17 | ||||
-rw-r--r-- | src/video/cocoa/cocoa_v.h | 18 | ||||
-rw-r--r-- | src/video/cocoa/cocoa_v.mm | 167 | ||||
-rw-r--r-- | src/video/cocoa/event.mm | 23 | ||||
-rw-r--r-- | src/video/cocoa/wnd_quartz.mm | 58 |
5 files changed, 41 insertions, 242 deletions
diff --git a/src/blitter/factory.hpp b/src/blitter/factory.hpp index e97fe53de..30a70570b 100644 --- a/src/blitter/factory.hpp +++ b/src/blitter/factory.hpp @@ -16,9 +16,6 @@ #include "../core/string_compare_type.hpp" #include <map> -#if defined(WITH_COCOA) -bool QZ_CanDisplay8bpp(); -#endif /* defined(WITH_COCOA) */ /** * The base factory, keeping track of all blitters. @@ -113,19 +110,11 @@ public: { #if defined(DEDICATED) const char *default_blitter = "null"; +#elif defined(WITH_COCOA) + const char *default_blitter = "32bpp-anim"; #else const char *default_blitter = "8bpp-optimized"; - -#if defined(WITH_COCOA) - /* Some people reported lack of fullscreen support in 8 bpp mode. - * While we prefer 8 bpp since it's faster, we will still have to test for support. */ - if (!QZ_CanDisplay8bpp()) { - /* The main display can't go to 8 bpp fullscreen mode. - * We will have to switch to 32 bpp by default. */ - default_blitter = "32bpp-anim"; - } -#endif /* defined(WITH_COCOA) */ -#endif /* defined(DEDICATED) */ +#endif if (GetBlitters().size() == 0) return nullptr; const char *bname = (StrEmpty(name)) ? default_blitter : name; diff --git a/src/video/cocoa/cocoa_v.h b/src/video/cocoa/cocoa_v.h index ee8c29c85..7286c685b 100644 --- a/src/video/cocoa/cocoa_v.h +++ b/src/video/cocoa/cocoa_v.h @@ -190,10 +190,8 @@ public: extern CocoaSubdriver *_cocoa_subdriver; #ifdef ENABLE_COCOA_QUARTZ -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 CocoaSubdriver *QZ_CreateWindowQuartzSubdriver(int width, int height, int bpp); #endif -#endif void QZ_GameSizeChanged(); @@ -223,16 +221,7 @@ uint QZ_ListModes(OTTD_Point *modes, uint max_modes, CGDirectDisplayID display_i @end /** Subclass of NSView to fix Quartz rendering and mouse awareness */ -@interface OTTD_CocoaView : NSView -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 -# if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 - <NSTextInputClient, NSTextInput> -# else - <NSTextInputClient> -# endif /* MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 */ -#else - <NSTextInput> -#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 */ +@interface OTTD_CocoaView : NSView <NSTextInputClient> { CocoaSubdriver *driver; NSTrackingRectTag trackingtag; @@ -252,10 +241,7 @@ uint QZ_ListModes(OTTD_Point *modes, uint max_modes, CGDirectDisplayID display_i @end /** Delegate for our NSWindow to send ask for quit on close */ -@interface OTTD_CocoaWindowDelegate : NSObject -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 - <NSWindowDelegate> -#endif +@interface OTTD_CocoaWindowDelegate : NSObject <NSWindowDelegate> { CocoaSubdriver *driver; } diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm index 678fc75be..13a9cc9c4 100644 --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -45,10 +45,7 @@ */ -@interface OTTDMain : NSObject -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 - <NSApplicationDelegate> -#endif +@interface OTTDMain : NSObject <NSApplicationDelegate> @end @@ -159,7 +156,9 @@ static void setApplicationMenu() /* Tell the application object that this is now the application menu. * This interesting Objective-C construct is used because not all SDK * versions define this method publicly. */ - [ NSApp performSelector:@selector(setAppleMenu:) withObject:appleMenu ]; + if ([ NSApp respondsToSelector:@selector(setAppleMenu:) ]) { + [ NSApp performSelector:@selector(setAppleMenu:) withObject:appleMenu ]; + } /* Finally give up our references to the objects */ [ appleMenu release ]; @@ -204,13 +203,9 @@ static void setupApplication() /* Ensure the application object is initialised */ [ NSApplication sharedApplication ]; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3 /* Tell the dock about us */ - if (MacOSVersionIsAtLeast(10, 3, 0)) { - OSStatus returnCode = TransformProcessType(&psn, kProcessTransformToForegroundApplication); - if (returnCode != 0) DEBUG(driver, 0, "Could not change to foreground application. Error %d", (int)returnCode); - } -#endif + OSStatus returnCode = TransformProcessType(&psn, kProcessTransformToForegroundApplication); + if (returnCode != 0) DEBUG(driver, 0, "Could not change to foreground application. Error %d", (int)returnCode); /* Disable the system-wide tab feature as we only have one window. */ if ([ NSWindow respondsToSelector:@selector(setAllowsAutomaticWindowTabbing:) ]) { @@ -243,57 +238,27 @@ static bool ModeSorter(const OTTD_Point &p1, const OTTD_Point &p2) static void QZ_GetDisplayModeInfo(CFArrayRef modes, CFIndex i, int &bpp, uint16 &width, uint16 &height) { - bpp = 0; - width = 0; - height = 0; - -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6) - if (MacOSVersionIsAtLeast(10, 6, 0)) { - CGDisplayModeRef mode = (CGDisplayModeRef)CFArrayGetValueAtIndex(modes, i); + CGDisplayModeRef mode = (CGDisplayModeRef)CFArrayGetValueAtIndex(modes, i); - width = (uint16)CGDisplayModeGetWidth(mode); - height = (uint16)CGDisplayModeGetHeight(mode); + width = (uint16)CGDisplayModeGetWidth(mode); + height = (uint16)CGDisplayModeGetHeight(mode); #if (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11) - /* Extract bit depth from mode string. */ - CFAutoRelease<CFStringRef> pixEnc(CGDisplayModeCopyPixelEncoding(mode)); - if (CFStringCompare(pixEnc.get(), CFSTR(IO32BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) bpp = 32; - if (CFStringCompare(pixEnc.get(), CFSTR(IO16BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) bpp = 16; - if (CFStringCompare(pixEnc.get(), CFSTR(IO8BitIndexedPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) bpp = 8; + /* Extract bit depth from mode string. */ + CFAutoRelease<CFStringRef> pixEnc(CGDisplayModeCopyPixelEncoding(mode)); + if (CFStringCompare(pixEnc.get(), CFSTR(IO32BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) bpp = 32; + if (CFStringCompare(pixEnc.get(), CFSTR(IO16BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) bpp = 16; + if (CFStringCompare(pixEnc.get(), CFSTR(IO8BitIndexedPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) bpp = 8; #else - /* CGDisplayModeCopyPixelEncoding is deprecated on OSX 10.11+, but there are no 8 bpp modes anyway... */ - bpp = 32; + /* CGDisplayModeCopyPixelEncoding is deprecated on OSX 10.11+, but there are no 8 bpp modes anyway... */ + bpp = 32; #endif - } else -#endif - { - int intvalue; - - CFDictionaryRef onemode = (const __CFDictionary*)CFArrayGetValueAtIndex(modes, i); - CFNumberRef number = (const __CFNumber*)CFDictionaryGetValue(onemode, kCGDisplayBitsPerPixel); - CFNumberGetValue(number, kCFNumberSInt32Type, &intvalue); - bpp = intvalue; - - number = (const __CFNumber*)CFDictionaryGetValue(onemode, kCGDisplayWidth); - CFNumberGetValue(number, kCFNumberSInt32Type, &intvalue); - width = (uint16)intvalue; - - number = (const __CFNumber*)CFDictionaryGetValue(onemode, kCGDisplayHeight); - CFNumberGetValue(number, kCFNumberSInt32Type, &intvalue); - height = (uint16)intvalue; - } } uint QZ_ListModes(OTTD_Point *modes, uint max_modes, CGDirectDisplayID display_id, int device_depth) { -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6) && (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6) - CFArrayRef mode_list = MacOSVersionIsAtLeast(10, 6, 0) ? CGDisplayCopyAllDisplayModes(display_id, NULL) : CGDisplayAvailableModes(display_id); -#elif (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6) - CFArrayRef mode_list = CGDisplayCopyAllDisplayModes(display_id, NULL); -#else - CFArrayRef mode_list = CGDisplayAvailableModes(display_id); -#endif - CFIndex num_modes = CFArrayGetCount(mode_list); + CFAutoRelease<CFArrayRef> mode_list(CGDisplayCopyAllDisplayModes(display_id, nullptr)); + CFIndex num_modes = CFArrayGetCount(mode_list.get()); /* Build list of modes with the requested bpp */ uint count = 0; @@ -301,7 +266,7 @@ uint QZ_ListModes(OTTD_Point *modes, uint max_modes, CGDirectDisplayID display_i int bpp; uint16 width, height; - QZ_GetDisplayModeInfo(mode_list, i, bpp, width, height); + QZ_GetDisplayModeInfo(mode_list.get(), i, bpp, width, height); if (bpp != device_depth) continue; @@ -325,29 +290,9 @@ uint QZ_ListModes(OTTD_Point *modes, uint max_modes, CGDirectDisplayID display_i /* Sort list smallest to largest */ std::sort(modes, modes + count, ModeSorter); -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6) - if (MacOSVersionIsAtLeast(10, 6, 0)) CFRelease(mode_list); -#endif - return count; } -/** Small function to test if the main display can display 8 bpp in fullscreen */ -bool QZ_CanDisplay8bpp() -{ - /* 8bpp modes are deprecated starting in 10.5. CoreGraphics will return them - * as available in the display list, but many features (e.g. palette animation) - * will be broken. */ - if (MacOSVersionIsAtLeast(10, 5, 0)) return false; - - OTTD_Point p; - - /* We want to know if 8 bpp is possible in fullscreen and not anything about - * resolutions. Because of this we want to fill a list of 1 resolution of 8 bpp - * on display 0 (main) and return if we found one. */ - return QZ_ListModes(&p, 1, 0, 8); -} - /** * Update the video modus. * @@ -395,7 +340,7 @@ void QZ_GameSizeChanged() */ static CocoaSubdriver *QZ_CreateWindowSubdriver(int width, int height, int bpp) { -#if defined(ENABLE_COCOA_QUARTZ) && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4) +#if defined(ENABLE_COCOA_QUARTZ) return QZ_CreateWindowQuartzSubdriver(width, height, bpp); #else return nullptr; @@ -453,7 +398,7 @@ void VideoDriver_Cocoa::Stop() */ const char *VideoDriver_Cocoa::Start(const char * const *parm) { - if (!MacOSVersionIsAtLeast(10, 3, 0)) return "The Cocoa video driver requires Mac OS X 10.3 or later."; + if (!MacOSVersionIsAtLeast(10, 6, 0)) return "The Cocoa video driver requires Mac OS X 10.6 or later."; if (_cocoa_video_started) return "Already started"; _cocoa_video_started = true; @@ -554,16 +499,7 @@ bool VideoDriver_Cocoa::AfterBlitterChange() */ void VideoDriver_Cocoa::EditBoxLostFocus() { - if (_cocoa_subdriver != NULL) { - if ([ _cocoa_subdriver->cocoaview respondsToSelector:@selector(inputContext) ] && [ [ _cocoa_subdriver->cocoaview performSelector:@selector(inputContext) ] respondsToSelector:@selector(discardMarkedText) ]) { - [ [ _cocoa_subdriver->cocoaview performSelector:@selector(inputContext) ] performSelector:@selector(discardMarkedText) ]; - } -#if (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6) - else { - [ [ NSInputManager currentInputManager ] markedTextAbandoned:_cocoa_subdriver->cocoaview ]; - } -#endif - } + if (_cocoa_subdriver != NULL) [ [ _cocoa_subdriver->cocoaview inputContext ] discardMarkedText ]; /* Clear any marked string from the current edit box. */ HandleTextInput(NULL, true); } @@ -589,22 +525,13 @@ void CocoaDialog(const char *title, const char *message, const char *buttonLabel return; } -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3) - if (MacOSVersionIsAtLeast(10, 3, 0)) { - NSAlert *alert = [ [ NSAlert alloc ] init ]; - [ alert setAlertStyle: NSCriticalAlertStyle ]; - [ alert setMessageText:[ NSString stringWithUTF8String:title ] ]; - [ alert setInformativeText:[ NSString stringWithUTF8String:message ] ]; - [ alert addButtonWithTitle: [ NSString stringWithUTF8String:buttonLabel ] ]; - [ alert runModal ]; - [ alert release ]; - } else -#endif - { -#if (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_3) - NSRunAlertPanel([ NSString stringWithUTF8String:title ], [ NSString stringWithUTF8String:message ], [ NSString stringWithUTF8String:buttonLabel ], nil, nil); -#endif - } + NSAlert *alert = [ [ NSAlert alloc ] init ]; + [ alert setAlertStyle: NSCriticalAlertStyle ]; + [ alert setMessageText:[ NSString stringWithUTF8String:title ] ]; + [ alert setInformativeText:[ NSString stringWithUTF8String:message ] ]; + [ alert addButtonWithTitle: [ NSString stringWithUTF8String:buttonLabel ] ]; + [ alert runModal ]; + [ alert release ]; if (!wasstarted && VideoDriver::GetInstance() != NULL) VideoDriver::GetInstance()->Stop(); @@ -1030,17 +957,7 @@ static const char *Utf8AdvanceByUtf16Units(const char *str, NSUInteger count) { if (!EditBoxInGlobalFocus()) return NSNotFound; - NSPoint view_pt = NSZeroPoint; -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7) - if ([ [ self window ] respondsToSelector:@selector(convertRectFromScreen:) ]) { - view_pt = [ self convertRect:[ [ self window ] convertRectFromScreen:NSMakeRect(thePoint.x, thePoint.y, 0, 0) ] fromView:nil ].origin; - } else -#endif - { -#if (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7) - view_pt = [ self convertPoint:[ [ self window ] convertScreenToBase:thePoint ] fromView:nil ]; -#endif - } + NSPoint view_pt = [ self convertRect:[ [ self window ] convertRectFromScreen:NSMakeRect(thePoint.x, thePoint.y, 0, 0) ] fromView:nil ].origin; Point pt = { (int)view_pt.x, (int)[ self frame ].size.height - (int)view_pt.y }; @@ -1063,19 +980,7 @@ static const char *Utf8AdvanceByUtf16Units(const char *str, NSUInteger count) Rect r = _focused_window->GetTextBoundingRect(start, end); NSRect view_rect = NSMakeRect(_focused_window->left + r.left, [ self frame ].size.height - _focused_window->top - r.bottom, r.right - r.left, r.bottom - r.top); -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if ([ [ self window ] respondsToSelector:@selector(convertRectToScreen:) ]) { - return [ [ self window ] convertRectToScreen:[ self convertRect:view_rect toView:nil ] ]; - } -#endif - -#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7 - NSRect window_rect = [ self convertRect:view_rect toView:nil ]; - NSPoint origin = [ [ self window ] convertBaseToScreen:window_rect.origin ]; - return NSMakeRect(origin.x, origin.y, window_rect.size.width, window_rect.size.height); -#else - return NSMakeRect(0, 0, 0, 0);; -#endif + return [ [ self window ] convertRectToScreen:[ self convertRect:view_rect toView:nil ] ]; } /** Get the bounding rect for the given range. */ @@ -1090,16 +995,6 @@ static const char *Utf8AdvanceByUtf16Units(const char *str, NSUInteger count) return [ NSArray array ]; } -/** Identifier for this text input instance. */ -#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5 -- (long)conversationIdentifier -#else -- (NSInteger)conversationIdentifier -#endif -{ - return 0; -} - /** Delete single character left of the cursor. */ - (void)deleteBackward:(id)sender { diff --git a/src/video/cocoa/event.mm b/src/video/cocoa/event.mm index f45c3e971..cb3c753ac 100644 --- a/src/video/cocoa/event.mm +++ b/src/video/cocoa/event.mm @@ -59,28 +59,12 @@ enum RightMouseButtonEmulationState { static unsigned int _current_mods; static bool _tab_is_down; static bool _emulating_right_button; -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) static float _current_magnification; -#endif #ifdef _DEBUG static uint32 _tEvent; #endif -/* Support for touch gestures is only available starting with the - * 10.6 SDK, even if it says that support starts in fact with 10.5.2. - * Replicate the needed stuff for older SDKs. */ -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 && MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6) -static const NSUInteger NSEventTypeMagnify = 30; -static const NSUInteger NSEventTypeEndGesture = 20; - -@interface NSEvent () -/* This message is valid for events of type NSEventTypeMagnify, on 10.5.2 or later */ -- (CGFloat)magnification WEAK_IMPORT_ATTRIBUTE; -@end -#endif - - static uint32 GetTick() { struct timeval tim; @@ -579,16 +563,13 @@ static bool QZ_PollEvent() CGFloat deltaY; /* Use precise scrolling-specific deltas if they're supported. */ -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7) if ([event respondsToSelector:@selector(hasPreciseScrollingDeltas)]) { /* No precise deltas indicates a scroll wheel is being used, so we don't want 2D scrolling. */ if (![ event hasPreciseScrollingDeltas ]) break; deltaX = [ event scrollingDeltaX ] * 0.5f; deltaY = [ event scrollingDeltaY ] * 0.5f; - } else -#endif - { + } else { deltaX = [ event deltaX ] * 5; deltaY = [ event deltaY ] * 5; } @@ -598,7 +579,6 @@ static bool QZ_PollEvent() break; -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) case NSEventTypeMagnify: /* Pinch open or close gesture. */ _current_magnification += [ event magnification ] * 5.0f; @@ -619,7 +599,6 @@ static bool QZ_PollEvent() /* Gesture ended. */ _current_magnification = 0.0f; break; -#endif case NSCursorUpdate: case NSMouseEntered: diff --git a/src/video/cocoa/wnd_quartz.mm b/src/video/cocoa/wnd_quartz.mm index c73dd32e7..8549100d9 100644 --- a/src/video/cocoa/wnd_quartz.mm +++ b/src/video/cocoa/wnd_quartz.mm @@ -17,8 +17,6 @@ #include "../../stdafx.h" #include "../../os/macosx/macos.h" -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 - #define Rect OTTDRect #define Point OTTDPoint #import <Cocoa/Cocoa.h> @@ -194,21 +192,6 @@ void WindowQuartzSubdriver::GetDeviceInfo() /* Initialize the video settings; this data persists between mode switches * and gather some information that is useful to know about the display */ -# if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6 - /* This way is deprecated as of OSX 10.6 but continues to work.Thus use it - * always, unless allowed to skip compatibility with 10.5 and earlier */ - CFDictionaryRef cur_mode = CGDisplayCurrentMode(kCGDirectMainDisplay); - - CFNumberGetValue( - (const __CFNumber*)CFDictionaryGetValue(cur_mode, kCGDisplayWidth), - kCFNumberSInt32Type, &this->device_width - ); - - CFNumberGetValue( - (const __CFNumber*)CFDictionaryGetValue(cur_mode, kCGDisplayHeight), - kCFNumberSInt32Type, &this->device_height - ); -# else /* Use the new API when compiling for OSX 10.6 or later */ CGDisplayModeRef cur_mode = CGDisplayCopyDisplayMode(kCGDirectMainDisplay); if (cur_mode == NULL) { return; } @@ -217,7 +200,6 @@ void WindowQuartzSubdriver::GetDeviceInfo() this->device_height = CGDisplayModeGetHeight(cur_mode); CGDisplayModeRelease(cur_mode); -# endif } /** Switch to full screen mode on OSX 10.7 @@ -265,18 +247,11 @@ bool WindowQuartzSubdriver::SetVideoMode(int width, int height, int bpp) return false; } -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 /* Add built in full-screen support when available (OS X 10.7 and higher) * This code actually compiles for 10.5 and later, but only makes sense in conjunction * with the quartz fullscreen support as found only in 10.7 and later */ if ([this->window respondsToSelector:@selector(toggleFullScreen:)]) { -#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7 - /* Constants needed to build on pre-10.7 SDKs. Source: NSWindow documentation. */ - const int NSWindowCollectionBehaviorFullScreenPrimary = 1 << 7; - const int NSWindowFullScreenButton = 7; -#endif - NSWindowCollectionBehavior behavior = [ this->window collectionBehavior ]; behavior |= NSWindowCollectionBehaviorFullScreenPrimary; [ this->window setCollectionBehavior:behavior ]; @@ -287,7 +262,6 @@ bool WindowQuartzSubdriver::SetVideoMode(int width, int height, int bpp) [ this->window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenPrimary ]; } -#endif [ this->window setDriver:this ]; @@ -303,10 +277,6 @@ bool WindowQuartzSubdriver::SetVideoMode(int width, int height, int bpp) [ this->window setAcceptsMouseMovedEvents:YES ]; [ this->window setViewsNeedDisplay:NO ]; -#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10 - if ([ this->window respondsToSelector:@selector(useOptimizedDrawing:) ]) [ this->window useOptimizedDrawing:YES ]; -#endif - delegate = [ [ OTTD_CocoaWindowDelegate alloc ] init ]; [ delegate setDriver:this ]; [ this->window setDelegate:[ delegate autorelease ] ]; @@ -494,17 +464,8 @@ CGPoint WindowQuartzSubdriver::PrivateLocalToCG(NSPoint *p) p->y = this->window_height - p->y; *p = [ this->cocoaview convertPoint:*p toView:nil ]; + *p = [ this->window convertRectToScreen:NSMakeRect(p->x, p->y, 0, 0) ].origin; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if ([ this->window respondsToSelector:@selector(convertRectToScreen:) ]) { - *p = [ this->window convertRectToScreen:NSMakeRect(p->x, p->y, 0, 0) ].origin; - } else -#endif - { -#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7 - *p = [ this->window convertBaseToScreen:*p ]; -#endif - } p->y = this->device_height - p->y; CGPoint cgp; @@ -519,17 +480,7 @@ NSPoint WindowQuartzSubdriver::GetMouseLocation(NSEvent *event) NSPoint pt; if ( [ event window ] == nil) { -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if ([ [ this->cocoaview window ] respondsToSelector:@selector(convertRectFromScreen:) ]) { - pt = [ this->cocoaview convertPoint:[ [ this->cocoaview window ] convertRectFromScreen:NSMakeRect([ event locationInWindow ].x, [ event locationInWindow ].y, 0, 0) ].origin fromView:nil ]; - } - else -#endif - { -#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7 - pt = [ this->cocoaview convertPoint:[ [ this->cocoaview window ] convertScreenToBase:[ event locationInWindow ] ] fromView:nil ]; -#endif - } + pt = [ this->cocoaview convertPoint:[ [ this->cocoaview window ] convertRectFromScreen:NSMakeRect([ event locationInWindow ].x, [ event locationInWindow ].y, 0, 0) ].origin fromView:nil ]; } else { pt = [ event locationInWindow ]; } @@ -609,8 +560,8 @@ bool WindowQuartzSubdriver::WindowResized() CocoaSubdriver *QZ_CreateWindowQuartzSubdriver(int width, int height, int bpp) { - if (!MacOSVersionIsAtLeast(10, 4, 0)) { - DEBUG(driver, 0, "The cocoa quartz subdriver requires Mac OS X 10.4 or later."); + if (!MacOSVersionIsAtLeast(10, 7, 0)) { + DEBUG(driver, 0, "The cocoa quartz subdriver requires Mac OS X 10.7 or later."); return NULL; } @@ -630,6 +581,5 @@ CocoaSubdriver *QZ_CreateWindowQuartzSubdriver(int width, int height, int bpp) } -#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 */ #endif /* ENABLE_COCOA_QUARTZ */ #endif /* WITH_COCOA */ |