From: Stefan Csomor Date: Sun, 16 Oct 2011 20:57:09 +0000 (+0000) Subject: supporting deployment < 10.6 when compiling against 10.7 X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/d1d9736d868eb61361b657c3eaa516fca67a660a?ds=inline supporting deployment < 10.6 when compiling against 10.7 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69445 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/osx/utils_osx.cpp b/src/osx/utils_osx.cpp index 251332d88c..0a66f1363b 100644 --- a/src/osx/utils_osx.cpp +++ b/src/osx/utils_osx.cpp @@ -65,11 +65,43 @@ bool wxColourDisplay() return true; } +#if (MAC_OS_X_VERSION_MAX_ALLOWED >= 1070) && (MAC_OS_X_VERSION_MIN_REQUIRED < 1060) +// bring back declaration so that we can support deployment targets < 10_6 +CG_EXTERN size_t CGDisplayBitsPerPixel(CGDirectDisplayID display) +CG_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_6, + __IPHONE_NA, __IPHONE_NA); +#endif + #if wxOSX_USE_COCOA_OR_CARBON // Returns depth of screen int wxDisplayDepth() { - int theDepth = (int) CGDisplayBitsPerPixel(CGMainDisplayID()); + int theDepth = 0; + +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 + if ( UMAGetSystemVersion() >= 0x1060 ) + { + CGDisplayModeRef currentMode = CGDisplayCopyDisplayMode(kCGDirectMainDisplay); + CFStringRef encoding = CGDisplayModeCopyPixelEncoding(currentMode); + + if(CFStringCompare(encoding, CFSTR(IO32BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) + theDepth = 32; + else if(CFStringCompare(encoding, CFSTR(IO16BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) + theDepth = 16; + else if(CFStringCompare(encoding, CFSTR(IO8BitIndexedPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) + theDepth = 8; + else + theDepth = 32; // some reasonable default + + CFRelease(encoding); + } + else +#endif + { +#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 + theDepth = (int) CGDisplayBitsPerPixel(CGMainDisplayID()); +#endif + } return theDepth; }