summaryrefslogtreecommitdiff
path: root/math/octave
diff options
context:
space:
mode:
Diffstat (limited to 'math/octave')
-rw-r--r--math/octave/patches/patch-src_display.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/math/octave/patches/patch-src_display.cc b/math/octave/patches/patch-src_display.cc
new file mode 100644
index 00000000000..fc7b0face54
--- /dev/null
+++ b/math/octave/patches/patch-src_display.cc
@@ -0,0 +1,25 @@
+$NetBSD: patch-src_display.cc,v 1.1 2015/04/23 06:47:56 dbj Exp $
+
+CGDisplayBitsPerPixel is only good on osx 10.5 or earlier.
+CGDisplayModeCopyPixelEncoding should work on 10.6 and later.
+
+--- src/display.cc.orig 2013-02-21 20:19:24.000000000 +0000
++++ src/display.cc
+@@ -72,7 +72,16 @@ display_info::init (bool query)
+
+ if (display)
+ {
+- dp = CGDisplayBitsPerPixel (display);
++ CGDisplayModeRef mode = CGDisplayCopyDisplayMode (display);
++ CFStringRef pixelEncoding = CGDisplayModeCopyPixelEncoding(mode);
++ CFRelease(mode);
++ if (CFStringCompare (pixelEncoding, CFSTR (IO32BitDirectPixels), 0) == 0)
++ dp = 32;
++ else if (CFStringCompare (pixelEncoding, CFSTR (IO16BitDirectPixels), 0) == 0)
++ dp = 16;
++ else
++ dp = 8; // Unknown pixel encoding (probably not really depth 8)
++ CFRelease(pixelEncoding);
+
+ ht = CGDisplayPixelsHigh (display);
+ wd = CGDisplayPixelsWide (display);