diff options
author | mtklein <mtklein@google.com> | 2015-04-03 12:47:48 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-03 12:47:48 -0700 |
commit | e758579d4f85f4615d62e87847dd3f8b38e3a6e2 (patch) | |
tree | 92c840da319692114516ad4d3b83d31f079573ee /src/core/SkXfermode.cpp | |
parent | 6b5dab889579f1cc9e1b5278f4ecdc4c63fe78c9 (diff) |
Revert of Code's more readable when SkPMFloat is an Sk4f. (patchset #3 id:40001 of https://codereview.chromium.org/1061603002/)
Reason for revert:
missed some neon code
Original issue's description:
> Code's more readable when SkPMFloat is an Sk4f.
> #floats
>
> BUG=skia:
> BUG=skia:3592
>
> Committed: https://skia.googlesource.com/skia/+/6b5dab889579f1cc9e1b5278f4ecdc4c63fe78c9
TBR=reed@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1056143004
Diffstat (limited to 'src/core/SkXfermode.cpp')
-rw-r--r-- | src/core/SkXfermode.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp index 1d502d987c..5e9055c67d 100644 --- a/src/core/SkXfermode.cpp +++ b/src/core/SkXfermode.cpp @@ -1236,7 +1236,9 @@ static inline SkPMFloat check_as_pmfloat(const Sk4f& value) { struct SrcATop4f { static SkPMFloat Xfer(const SkPMFloat& src, const SkPMFloat& dst) { const Sk4f inv255(gInv255); - return check_as_pmfloat(dst + (src * Sk4f(dst.a()) - dst * Sk4f(src.a())) * inv255); + Sk4f s4 = src; + Sk4f d4 = dst; + return check_as_pmfloat(d4 + (s4 * Sk4f(dst.a()) - d4 * Sk4f(src.a())) * inv255); } static const bool kFoldCoverageIntoSrcAlpha = true; static const SkXfermode::Mode kMode = SkXfermode::kSrcATop_Mode; @@ -1246,7 +1248,9 @@ struct SrcATop4f { struct DstATop4f { static SkPMFloat Xfer(const SkPMFloat& src, const SkPMFloat& dst) { const Sk4f inv255(gInv255); - return check_as_pmfloat(src + (dst * Sk4f(src.a()) - src * Sk4f(dst.a())) * inv255); + Sk4f s4 = src; + Sk4f d4 = dst; + return check_as_pmfloat(s4 + (d4 * Sk4f(src.a()) - s4 * Sk4f(dst.a())) * inv255); } static const bool kFoldCoverageIntoSrcAlpha = false; static const SkXfermode::Mode kMode = SkXfermode::kDstATop_Mode; @@ -1256,7 +1260,9 @@ struct DstATop4f { struct Xor4f { static SkPMFloat Xfer(const SkPMFloat& src, const SkPMFloat& dst) { const Sk4f inv255(gInv255); - return check_as_pmfloat(src + dst - (src * Sk4f(dst.a()) + dst * Sk4f(src.a())) * inv255); + Sk4f s4 = src; + Sk4f d4 = dst; + return check_as_pmfloat(s4 + d4 - (s4 * Sk4f(dst.a()) + d4 * Sk4f(src.a())) * inv255); } static const bool kFoldCoverageIntoSrcAlpha = true; static const SkXfermode::Mode kMode = SkXfermode::kXor_Mode; @@ -1265,7 +1271,9 @@ struct Xor4f { // kPlus_Mode [Sa + Da, Sc + Dc] struct Plus4f { static SkPMFloat Xfer(const SkPMFloat& src, const SkPMFloat& dst) { - return check_as_pmfloat(clamp_255(src + dst)); + Sk4f s4 = src; + Sk4f d4 = dst; + return check_as_pmfloat(clamp_255(s4 + d4)); } static const bool kFoldCoverageIntoSrcAlpha = true; static const SkXfermode::Mode kMode = SkXfermode::kPlus_Mode; @@ -1275,7 +1283,9 @@ struct Plus4f { struct Modulate4f { static SkPMFloat Xfer(const SkPMFloat& src, const SkPMFloat& dst) { const Sk4f inv255(gInv255); - return check_as_pmfloat(src * dst * inv255); + Sk4f s4 = src; + Sk4f d4 = dst; + return check_as_pmfloat(s4 * d4 * inv255); } static const bool kFoldCoverageIntoSrcAlpha = false; static const SkXfermode::Mode kMode = SkXfermode::kModulate_Mode; @@ -1285,7 +1295,9 @@ struct Modulate4f { struct Screen4f { static SkPMFloat Xfer(const SkPMFloat& src, const SkPMFloat& dst) { const Sk4f inv255(gInv255); - return check_as_pmfloat(src + dst - src * dst * inv255); + Sk4f s4 = src; + Sk4f d4 = dst; + return check_as_pmfloat(s4 + d4 - s4 * d4 * inv255); } static const bool kFoldCoverageIntoSrcAlpha = true; static const SkXfermode::Mode kMode = SkXfermode::kScreen_Mode; |