|
From: | Bozhidar Batsov |
Subject: | Re: sRGB color support in NS port [PATCH] |
Date: | Sat, 21 Dec 2013 16:59:54 +0200 |
commit 3b63b2c6e9e93adab09eace60750ed981a8e528f
Author: Steve Purcell <address@hidden>
Date: Sat Dec 21 11:44:12 2013 +0000
Treat hex colors as sRGB under OS X >= 10.7
diff --git a/src/nsterm.m b/src/nsterm.m
index 733c05a..0c79186 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -1373,6 +1373,13 @@ ns_fullscreen_hook (struct frame *f)
Color management
========================================================================== */
+#if defined(NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+#define NS_COLOR_FROM_RGB(r, g, b) [NSColor colorWithSRGBRed: r green: g blue: b alpha: 1.0]
+#define NS_COLOR_AS_RGB(c) [c colorUsingColorSpace: [NSColorSpace sRGBColorSpace]]
+#else
+#define NS_COLOR_FROM_RGB(r, g, b) [NSColor colorWithCalibratedRed: r green: g blue: b alpha: 1.0]
+#define NS_COLOR_AS_RGB(c) [c colorUsingColorSpaceName: NSCalibratedRGBColorSpace]
+#endif
NSColor *
@@ -1551,7 +1558,7 @@ ns_get_color (const char *name, NSColor **col)
if (r >= 0.0F)
{
- *col = [NSColor colorWithCalibratedRed: r green: g blue: b alpha: 1.0];
+ *col = NS_COLOR_FROM_RGB(r, g, b);
unblock_input ();
return 0;
}
@@ -1583,7 +1590,7 @@ ns_get_color (const char *name, NSColor **col)
}
if (new)
- *col = [new colorUsingColorSpaceName: NSCalibratedRGBColorSpace];
+ *col = NS_COLOR_AS_RGB(new);
unblock_input ();
return new ? 0 : 1;
}
@@ -1624,7 +1631,7 @@ ns_color_to_lisp (NSColor *col)
return build_string ((char *)str);
}
- [[col colorUsingColorSpaceName: NSCalibratedRGBColorSpace]
+ [NS_COLOR_AS_RGB(col)
getRed: &red green: &green blue: &blue alpha: &alpha];
if (red ==green && red ==blue)
{
@@ -4252,10 +4259,9 @@ ns_term_init (Lisp_Object display_name)
name = SSDATA (XCAR (color));
c = XINT (XCDR (color));
[cl setColor:
- [NSColor colorWithCalibratedRed: RED_FROM_ULONG (c) / 255.0
- green: GREEN_FROM_ULONG (c) / 255.0
- blue: BLUE_FROM_ULONG (c) / 255.0
- alpha: 1.0]
+ NS_COLOR_FROM_RGB(RED_FROM_ULONG (c) / 255.0,
+ GREEN_FROM_ULONG (c) / 255.0,
+ BLUE_FROM_ULONG (c) / 255.0)
forKey: [NSString stringWithUTF8String: name]];
}
[cl writeToFile: nil];
[Prev in Thread] | Current Thread | [Next in Thread] |