Skip to content
This repository has been archived by the owner on Jul 4, 2023. It is now read-only.

Commit

Permalink
open-scene-graph: apply patch only to stable version
Browse files Browse the repository at this point in the history
Closes #12689.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
  • Loading branch information
domoritz authored and jacknagel committed Aug 12, 2012
1 parent 8bccae6 commit 1554831
Showing 1 changed file with 5 additions and 53 deletions.
58 changes: 5 additions & 53 deletions Library/Formula/open-scene-graph.rb
Expand Up @@ -35,8 +35,11 @@ class OpenSceneGraph < Formula
# 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
# the second patch should be obsolete with some newer versions (current version is: 3.0.1, it's fixed upstream in 3.1.1)
def patches
p = [DATA]
p << "https://raw.github.com/gist/2890654/a07dec42b8451edf9edbf6468e5ae464c73b3b95/osg.diff" if build.stable?
end

def install
args = %W{
Expand Down Expand Up @@ -91,54 +94,3 @@ def install
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,

0 comments on commit 1554831

Please sign in to comment.