diff options
author | mtklein <mtklein@chromium.org> | 2015-08-13 13:10:30 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-13 13:10:30 -0700 |
commit | 5a16cf654548190841b5af27af04e7995582ad7b (patch) | |
tree | a9c4d4fdabea19ae708b80d8a454f24d7c3bef58 /src/opts/SkXfermode_opts.h | |
parent | d518ea7927f9f4e0ed5b4134d1b4f48243855a47 (diff) |
Normalize SkXfermode_opts.h argument order as d,s[,aa].
At head they're s,d[,aa] in SkXfermode_opts.h but Sk4px::Map* expect d,s[,aa]
so we ended up having to write weird little lambda shims to match impedance.
There's no reason for these to disagree, and d,s[,aa] is the One True Order
(because no matter what you're doing in graphics, there's always a dst).
Should be no perf or image diff, though I'm suspicious it might help MSVC code generation.
BUG=skia:4117
Committed: https://skia.googlesource.com/skia/+/6028a8476504022fe40b6870b1460b5e4a80969f
CQ_EXTRA_TRYBOTS=client.skia:Test-Win8-MSVC-ShuttleB-CPU-AVX2-x86-Release-Trybot
Review URL: https://codereview.chromium.org/1289903002
Diffstat (limited to 'src/opts/SkXfermode_opts.h')
-rw-r--r-- | src/opts/SkXfermode_opts.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/opts/SkXfermode_opts.h b/src/opts/SkXfermode_opts.h index e5ca257a28..b9d5db3042 100644 --- a/src/opts/SkXfermode_opts.h +++ b/src/opts/SkXfermode_opts.h @@ -110,7 +110,7 @@ XFERMODE(Lighten) { #undef XFERMODE // Some xfermodes use math like divide or sqrt that's best done in floats 1 pixel at a time. -#define XFERMODE(Name) static SkPMFloat SK_VECTORCALL Name(SkPMFloat s, SkPMFloat d) +#define XFERMODE(Name) static SkPMFloat SK_VECTORCALL Name(SkPMFloat d, SkPMFloat s) XFERMODE(ColorDodge) { auto sa = s.alphas(), @@ -257,13 +257,13 @@ public: private: inline SkPMColor xfer32(SkPMColor dst, SkPMColor src) const { - return fProcF(SkPMFloat(src), SkPMFloat(dst)).round(); + return fProcF(SkPMFloat(dst), SkPMFloat(src)).round(); } inline SkPMColor xfer32(SkPMColor dst, SkPMColor src, SkAlpha aa) const { SkPMFloat s(src), d(dst), - b(fProcF(s,d)); + b(fProcF(d,s)); // We do aa in full float precision before going back down to bytes, because we can! SkPMFloat a = Sk4f(aa) * Sk4f(1.0f/255); b = b*a + d*(Sk4f(1)-a); |