summaryrefslogtreecommitdiffstats
path: root/skia
diff options
context:
space:
mode:
Diffstat (limited to 'skia')
-rw-r--r--skia/ext/skia_utils_gtk.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/skia/ext/skia_utils_gtk.cc b/skia/ext/skia_utils_gtk.cc
index 7989019..da56374 100644
--- a/skia/ext/skia_utils_gtk.cc
+++ b/skia/ext/skia_utils_gtk.cc
@@ -10,8 +10,13 @@ namespace skia {
const int kSkiaToGDKMultiplier = 257;
+// GDK_COLOR_RGB multiplies by 257 (= 0x10001) to distribute the bits evenly
+// See: http://www.mindcontrol.org/~hplus/graphics/expand-bits.html
+// To get back, we can just right shift by eight
+// (or, formulated differently, i == (i*257)/256 for all i < 256).
+
SkColor GdkColorToSkColor(GdkColor color) {
- return SkColorSetRGB(color.red, color.green, color.blue);
+ return SkColorSetRGB(color.red >> 8, color.green >> 8, color.blue >> 8);
}
GdkColor SkColorToGdkColor(SkColor color) {