aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkPM4f.h
diff options
context:
space:
mode:
authorGravatar brianosman <brianosman@google.com>2016-06-24 11:55:32 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-06-24 11:55:32 -0700
commite2cddc5342d5aacacce4429441c94d1e0ff67d8c (patch)
treef6b6b8278d4a7316e380b8709bb4d08140f2011a /src/core/SkPM4f.h
parent23e9f7c501950ba98dad4fe1c1d834005f9db904 (diff)
Fix incorrect swizzle on BGRA platforms in filterColor4f path
Diffstat (limited to 'src/core/SkPM4f.h')
-rw-r--r--src/core/SkPM4f.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/SkPM4f.h b/src/core/SkPM4f.h
index e99ddccd8e..f983101f41 100644
--- a/src/core/SkPM4f.h
+++ b/src/core/SkPM4f.h
@@ -50,6 +50,13 @@ struct SkPM4f {
Sk4f to4f_bgra() const { return swizzle_rb(this->to4f()); }
Sk4f to4f_pmorder() const { return swizzle_rb_if_bgra(this->to4f()); }
+ SkPMColor toPMColor() const {
+ Sk4f value = swizzle_rb_if_bgra(this->to4f());
+ SkPMColor result;
+ SkNx_cast<uint8_t>(value * Sk4f(255) + Sk4f(0.5f)).store(&result);
+ return result;
+ }
+
void toF16(uint16_t[4]) const;
uint64_t toF16() const; // 4 float16 values packed into uint64_t