summaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authordbj <dbj>2015-04-23 06:47:56 +0000
committerdbj <dbj>2015-04-23 06:47:56 +0000
commitfd010eecd2f37eb7c341bb672ec7d4c977a01ac4 (patch)
tree8c4768b281522478e697d75f561f07c94bcf60f1 /math
parentdb113960fa5e95fc9888a1e782ab03b632845cad (diff)
downloadpkgsrc-fd010eecd2f37eb7c341bb672ec7d4c977a01ac4.tar.gz
avoid obsolete darwin api for CGDisplayBitsPerPixel
use CGDisplayModeCopyPixelEncoding instead
Diffstat (limited to 'math')
-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);