Index: skia/ext/skia_utils_mac.mm |
diff --git a/skia/ext/skia_utils_mac.mm b/skia/ext/skia_utils_mac.mm |
index c45f335406c49e5dbe0528370d02141b6922b43b..b227355f42163ba4424e10f85a1bb4fae02d0afb 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(); |