From 8a8ee33f48ee26968a16052c8cf773cb2c824cc5 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Wed, 15 Aug 2018 17:50:02 -0700 Subject: [PATCH] Fix color conversions for android Summary: This diff fixes the color conversions for Android Reviewed By: shergin Differential Revision: D9093561 fbshipit-source-id: a17e61c58be511bd463dc0b21b632dc24066b8b6 --- .../fabric/graphics/platform/android/Color.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/ReactCommon/fabric/graphics/platform/android/Color.cpp b/ReactCommon/fabric/graphics/platform/android/Color.cpp index 9a7e88ac2..852cfcea9 100644 --- a/ReactCommon/fabric/graphics/platform/android/Color.cpp +++ b/ReactCommon/fabric/graphics/platform/android/Color.cpp @@ -11,21 +11,23 @@ namespace facebook { namespace react { SharedColor colorFromComponents(ColorComponents components) { + float ratio = 255.9999; return SharedColor( - ((int)components.alpha & 0xff) << 24 | - ((int)components.red & 0xff) << 16 | - ((int)components.green & 0xff) << 8 | - ((int)components.blue & 0xff) + ((int)(components.alpha * ratio) & 0xff) << 24 | + ((int)(components.red * ratio) & 0xff) << 16 | + ((int)(components.green * ratio) & 0xff) << 8 | + ((int)(components.blue * ratio) & 0xff) ); } ColorComponents colorComponentsFromColor(SharedColor sharedColor) { + float ratio = 256; Color color = *sharedColor; return ColorComponents { - (float)((color >> 16) & 0xff), - (float)((color >> 8) & 0xff), - (float)((color ) & 0xff), - (float)((color >> 24) & 0xff) + (float)((color >> 16) & 0xff) / ratio, + (float)((color >> 8) & 0xff) / ratio, + (float)((color ) & 0xff) / ratio, + (float)((color >> 24) & 0xff) / ratio }; }