| Index: src/opts/SkXfermode_opts.h
|
| diff --git a/src/opts/SkXfermode_opts.h b/src/opts/SkXfermode_opts.h
|
| index 7005d593afe698c724336e1bbe58a0d317295f2c..bb92af9bb615f101ed66600c1137b84f229c3205 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 d, SkPMFloat s)
|
| +#define XFERMODE(Name) static SkPMFloat<1> SK_VECTORCALL Name(SkPMFloat<1> d, SkPMFloat<1> s)
|
|
|
| XFERMODE(ColorDodge) {
|
| auto sa = s.alphas(),
|
| @@ -126,7 +126,7 @@ XFERMODE(ColorDodge) {
|
| auto colors = (d == Sk4f(0)).thenElse(dstover,
|
| (s == sa).thenElse(srcover,
|
| otherwise));
|
| - return srcover * SkPMFloat(1,0,0,0) + colors * SkPMFloat(0,1,1,1);
|
| + return srcover * SkPMFloat<1>(1,0,0,0) + colors * SkPMFloat<1>(0,1,1,1);
|
| }
|
| XFERMODE(ColorBurn) {
|
| auto sa = s.alphas(),
|
| @@ -142,7 +142,7 @@ XFERMODE(ColorBurn) {
|
| auto colors = (d == da).thenElse(dstover,
|
| (s == Sk4f(0)).thenElse(srcover,
|
| otherwise));
|
| - return srcover * SkPMFloat(1,0,0,0) + colors * SkPMFloat(0,1,1,1);
|
| + return srcover * SkPMFloat<1>(1,0,0,0) + colors * SkPMFloat<1>(0,1,1,1);
|
| }
|
| XFERMODE(SoftLight) {
|
| auto sa = s.alphas(),
|
| @@ -167,7 +167,7 @@ XFERMODE(SoftLight) {
|
| auto alpha = s + d*isa;
|
| auto colors = s*ida + d*isa + (s2 <= sa).thenElse(darkSrc, liteSrc); // Case 1 or 2/3?
|
|
|
| - return alpha * SkPMFloat(1,0,0,0) + colors * SkPMFloat(0,1,1,1);
|
| + return alpha * SkPMFloat<1>(1,0,0,0) + colors * SkPMFloat<1>(0,1,1,1);
|
| }
|
| #undef XFERMODE
|
|
|
| @@ -234,7 +234,7 @@ private:
|
|
|
| class SkPMFloatXfermode : public SkProcCoeffXfermode {
|
| public:
|
| - typedef SkPMFloat (SK_VECTORCALL *ProcF)(SkPMFloat, SkPMFloat);
|
| + typedef SkPMFloat<1> (SK_VECTORCALL *ProcF)(SkPMFloat<1>, SkPMFloat<1>);
|
| SkPMFloatXfermode(const ProcCoeff& rec, SkXfermode::Mode mode, ProcF procf)
|
| : INHERITED(rec, mode)
|
| , fProcF(procf) {}
|
| @@ -257,15 +257,15 @@ public:
|
|
|
| private:
|
| inline SkPMColor xfer32(SkPMColor dst, SkPMColor src) const {
|
| - return fProcF(SkPMFloat(dst), SkPMFloat(src)).round();
|
| + return fProcF(SkPMFloat<1>(dst), SkPMFloat<1>(src)).round();
|
| }
|
|
|
| inline SkPMColor xfer32(SkPMColor dst, SkPMColor src, SkAlpha aa) const {
|
| - SkPMFloat s(src),
|
| - d(dst),
|
| - b(fProcF(d,s));
|
| + SkPMFloat<1> s(src),
|
| + d(dst),
|
| + 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);
|
| + SkPMFloat<1> a = Sk4f(aa) * Sk4f(1.0f/255);
|
| b = b*a + d*(Sk4f(1)-a);
|
| return b.round();
|
| }
|
|
|