diff options
Diffstat (limited to 'skia')
-rw-r--r-- | skia/ext/skia_utils_gtk.cc | 7 |
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) { |