summaryrefslogtreecommitdiffstats
path: root/skia
diff options
context:
space:
mode:
authorkeishi@chromium.org <keishi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-20 08:52:20 +0000
committerkeishi@chromium.org <keishi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-20 08:52:20 +0000
commitda854376b38ec7258bf1fcef8569a60b976fe923 (patch)
tree01b424d06eb594aef1aa5f4043ae1d414ba04604 /skia
parent69e3c68cdb92a927e3ff97f5911ceb645f64afa9 (diff)
downloadchromium_src-da854376b38ec7258bf1fcef8569a60b976fe923.zip
chromium_src-da854376b38ec7258bf1fcef8569a60b976fe923.tar.gz
chromium_src-da854376b38ec7258bf1fcef8569a60b976fe923.tar.bz2
Implement input type=color UI
BUG=92608 TEST= Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=126889 Review URL: https://chromiumcodereview.appspot.com/9203001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127656 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia')
-rw-r--r--skia/ext/skia_utils_mac.h5
-rw-r--r--skia/ext/skia_utils_mac.mm20
2 files changed, 25 insertions, 0 deletions
diff --git a/skia/ext/skia_utils_mac.h b/skia/ext/skia_utils_mac.h
index 959da6c..efa98c0 100644
--- a/skia/ext/skia_utils_mac.h
+++ b/skia/ext/skia_utils_mac.h
@@ -63,8 +63,13 @@ SkColor CGColorRefToSkColor(CGColorRef color);
// Converts ARGB to CGColorRef.
CGColorRef SkColorToCGColorRef(SkColor color);
+// Converts NSColor to ARGB. Returns raw rgb values and does no colorspace
+// conversion. Only valid for colors in calibrated and device color spaces.
+SK_API SkColor NSDeviceColorToSkColor(NSColor* color);
+
// Converts ARGB to NSColor.
SK_API NSColor* SkColorToCalibratedNSColor(SkColor color);
+SK_API NSColor* SkColorToDeviceNSColor(SkColor color);
// Converts a CGImage to a SkBitmap.
SK_API SkBitmap CGImageToSkBitmap(CGImageRef image);
diff --git a/skia/ext/skia_utils_mac.mm b/skia/ext/skia_utils_mac.mm
index c45f335..b227355 100644
--- a/skia/ext/skia_utils_mac.mm
+++ b/skia/ext/skia_utils_mac.mm
@@ -180,6 +180,19 @@ CGColorRef SkColorToCGColorRef(SkColor color) {
SkColorGetA(color) / 255.0);
}
+// Converts NSColor to ARGB
+SkColor NSDeviceColorToSkColor(NSColor* color) {
+ DCHECK([color colorSpace] == [NSColorSpace genericRGBColorSpace] ||
+ [color colorSpace] == [NSColorSpace deviceRGBColorSpace]);
+ CGFloat red, green, blue, alpha;
+ color = [color colorUsingColorSpace:[NSColorSpace deviceRGBColorSpace]];
+ [color getRed:&red green:&green blue:&blue alpha:&alpha];
+ return SkColorSetARGB(SkScalarRound(255.0 * alpha),
+ SkScalarRound(255.0 * red),
+ SkScalarRound(255.0 * green),
+ SkScalarRound(255.0 * blue));
+}
+
// Converts ARGB to NSColor.
NSColor* SkColorToCalibratedNSColor(SkColor color) {
return [NSColor colorWithCalibratedRed:SkColorGetR(color) / 255.0
@@ -188,6 +201,13 @@ NSColor* SkColorToCalibratedNSColor(SkColor color) {
alpha:SkColorGetA(color) / 255.0];
}
+NSColor* SkColorToDeviceNSColor(SkColor color) {
+ return [NSColor colorWithDeviceRed:SkColorGetR(color) / 255.0
+ green:SkColorGetG(color) / 255.0
+ blue:SkColorGetB(color) / 255.0
+ alpha:SkColorGetA(color) / 255.0];
+}
+
SkBitmap CGImageToSkBitmap(CGImageRef image) {
if (!image)
return SkBitmap();