open-scene-graph: displayBitsPerPixel patch for Lion
Closes Homebrew/homebrew#11788. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This commit is contained in:
parent
fd58bd13e6
commit
48897fc67d
1 changed files with 58 additions and 4 deletions
|
@ -30,10 +30,13 @@ class OpenSceneGraph < Formula
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
|
|
||||||
# The mini-Boost finder in FindCOLLADA doesn't find our boost, so fix it.
|
# First patch: The mini-Boost finder in FindCOLLADA doesn't find our boost, so fix it.
|
||||||
def patches
|
# Second patch:
|
||||||
return DATA
|
# Lion replacement for CGDisplayBitsPerPixel();
|
||||||
end
|
# taken from: http://www.openscenegraph.org/projects/osg/changeset/12790/OpenSceneGraph/trunk/src/osgViewer/DarwinUtils.mm
|
||||||
|
# Issue at: https://github.com/mxcl/homebrew/issues/11391
|
||||||
|
# should be obsolete with some newer versions (current version is: 3.0.1)
|
||||||
|
def patches; DATA; end
|
||||||
|
|
||||||
def install
|
def install
|
||||||
args = %W{
|
args = %W{
|
||||||
|
@ -88,3 +91,54 @@ index 428cb29..6206580 100644
|
||||||
PATHS
|
PATHS
|
||||||
${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME}
|
${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME}
|
||||||
${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw
|
${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw
|
||||||
|
|
||||||
|
|
||||||
|
Index: OpenSceneGraph/trunk/src/osgViewer/DarwinUtils.mm
|
||||||
|
===================================================================
|
||||||
|
--- a/src/osgViewer/DarwinUtils.mm (revision 12292)
|
||||||
|
+++ b/src/osgViewer/DarwinUtils.mm (revision 12790)
|
||||||
|
@@ -48,4 +48,23 @@
|
||||||
|
namespace osgDarwin {
|
||||||
|
|
||||||
|
+//
|
||||||
|
+// Lion replacement for CGDisplayBitsPerPixel(CGDirectDisplayID displayId)
|
||||||
|
+//
|
||||||
|
+size_t displayBitsPerPixel( CGDirectDisplayID displayId )
|
||||||
|
+{
|
||||||
|
+
|
||||||
|
+ CGDisplayModeRef mode = CGDisplayCopyDisplayMode(displayId);
|
||||||
|
+ size_t depth = 0;
|
||||||
|
+
|
||||||
|
+ CFStringRef pixEnc = CGDisplayModeCopyPixelEncoding(mode);
|
||||||
|
+ if(CFStringCompare(pixEnc, CFSTR(IO32BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo)
|
||||||
|
+ depth = 32;
|
||||||
|
+ else if(CFStringCompare(pixEnc, CFSTR(IO16BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo)
|
||||||
|
+ depth = 16;
|
||||||
|
+ else if(CFStringCompare(pixEnc, CFSTR(IO8BitIndexedPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo)
|
||||||
|
+ depth = 8;
|
||||||
|
+
|
||||||
|
+ return depth;
|
||||||
|
+}
|
||||||
|
|
||||||
|
static inline CGRect toCGRect(NSRect nsRect)
|
||||||
|
@@ -314,5 +333,5 @@
|
||||||
|
resolution.width = CGDisplayPixelsWide(id);
|
||||||
|
resolution.height = CGDisplayPixelsHigh(id);
|
||||||
|
- resolution.colorDepth = CGDisplayBitsPerPixel(id);
|
||||||
|
+ resolution.colorDepth = displayBitsPerPixel(id);
|
||||||
|
resolution.refreshRate = getDictDouble (CGDisplayCurrentMode(id), kCGDisplayRefreshRate); // Not tested
|
||||||
|
if (resolution.refreshRate<0) resolution.refreshRate = 0;
|
||||||
|
@@ -403,5 +422,5 @@
|
||||||
|
CGDisplayBestModeForParametersAndRefreshRate(
|
||||||
|
displayid,
|
||||||
|
- CGDisplayBitsPerPixel(displayid),
|
||||||
|
+ displayBitsPerPixel(displayid),
|
||||||
|
width, height,
|
||||||
|
refresh,
|
||||||
|
@@ -433,5 +452,5 @@
|
||||||
|
CGDisplayBestModeForParametersAndRefreshRate(
|
||||||
|
displayid,
|
||||||
|
- CGDisplayBitsPerPixel(displayid),
|
||||||
|
+ displayBitsPerPixel(displayid),
|
||||||
|
width, height,
|
||||||
|
refreshRate,
|
||||||
|
|
Loading…
Reference in a new issue