aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula/open-scene-graph.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Formula/open-scene-graph.rb')
-rw-r--r--Library/Formula/open-scene-graph.rb62
1 files changed, 58 insertions, 4 deletions
diff --git a/Library/Formula/open-scene-graph.rb b/Library/Formula/open-scene-graph.rb
index 6e000b8cd..d8a23155f 100644
--- a/Library/Formula/open-scene-graph.rb
+++ b/Library/Formula/open-scene-graph.rb
@@ -30,10 +30,13 @@ class OpenSceneGraph < Formula
EOS
end
- # The mini-Boost finder in FindCOLLADA doesn't find our boost, so fix it.
- def patches
- return DATA
- end
+ # First patch: The mini-Boost finder in FindCOLLADA doesn't find our boost, so fix it.
+ # Second patch:
+ # Lion replacement for CGDisplayBitsPerPixel();
+ # 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
args = %W{
@@ -88,3 +91,54 @@ index 428cb29..6206580 100644
PATHS
${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME}
${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,