Convert back to 0-255 scale before storing linear bytes
authormsarett <msarett@google.com>
Wed, 14 Sep 2016 17:23:03 +0000 (10:23 -0700)
committerCommit bot <commit-bot@chromium.org>
Wed, 14 Sep 2016 17:23:03 +0000 (10:23 -0700)
TBR=mtklein@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2338203005

Review-Url: https://codereview.chromium.org/2338203005

src/core/SkColorSpaceXform.cpp

index 5a6f015..de7cf85 100644 (file)
@@ -857,9 +857,9 @@ static inline void store_linear(void* dst, const uint32_t* src,
         kRShift = 16;
     }
 
-    dr = sk_clamp_0_255(dr);
-    dg = sk_clamp_0_255(dg);
-    db = sk_clamp_0_255(db);
+    dr = sk_clamp_0_255(255.0f * dr);
+    dg = sk_clamp_0_255(255.0f * dg);
+    db = sk_clamp_0_255(255.0f * db);
 
     Sk4i da = Sk4i::Load(src) & 0xFF000000;
 
@@ -874,7 +874,7 @@ template <SwapRB kSwapRB>
 static inline void store_linear_1(void* dst, const uint32_t* src,
                                   Sk4f& rgba, const Sk4f&,
                                   const uint8_t* const[3]) {
-    rgba = sk_clamp_0_255(rgba);
+    rgba = sk_clamp_0_255(255.0f * rgba);
 
     uint32_t tmp;
     SkNx_cast<uint8_t>(Sk4f_round(rgba)).store(&tmp);