Home | History | Annotate | Download | only in opts

Lines Matching refs:Sk4f

117     struct Xfermode { Sk4f operator()(const Sk4f&, const Sk4f&) const; }; \
118 inline Sk4f Xfermode::operator()(const Sk4f& d, const Sk4f& s) const
120 static inline Sk4f a_rgb(const Sk4f& a, const Sk4f& rgb) {
122 return a * Sk4f(0,0,0,1) + rgb * Sk4f(1,1,1,0);
124 static inline Sk4f alphas(const Sk4f& f) {
131 isa = Sk4f(1)-sa,
132 ida = Sk4f(1)-da;
136 otherwise = sa * Sk4f::Min(da, (d*sa)*(sa-s).invert()) + s*ida + d*isa;
139 auto colors = (d == Sk4f(0)).thenElse(dstover,
147 isa = Sk4f(1)-sa,
148 ida = Sk4f(1)-da;
152 otherwise = sa*(da-Sk4f::Min(da, (da-d)*sa*s.invert())) + s*ida + d*isa;
156 (s == Sk4f(0)).thenElse(srcover,
163 isa = Sk4f(1)-sa,
164 ida = Sk4f(1)-da;
167 auto m = (da > Sk4f(0)).thenElse(d / da, Sk4f(0)),
168 s2 = Sk4f(2)*s,
169 m4 = Sk4f(4)*m;
175 auto darkSrc = d*(sa + (s2 - sa)*(Sk4f(1) - m)), // Used in case 1.
176 darkDst = (m4*m4 + m4)*(m - Sk4f(1)) + Sk4f(7)*m, // Used in case 2.
178 liteSrc = d*sa + da*(s2-sa)*(Sk4f(4)*d <= da).thenElse(darkDst, liteDst); // Case 2 or 3?
245 Sk4f d = Load(dst),
249 Sk4f a = Sk4f(*aa) * Sk4f(1.0f/255);
250 b = b*a + d*(Sk4f(1)-a);
255 static Sk4f Load(SkPMColor c) {
256 return SkNx_cast<float>(Sk4b::Load(&c)) * Sk4f(1.0f/255);
259 static SkPMColor Round(const Sk4f& f) {
261 SkNx_cast<uint8_t>(f * Sk4f(255) + Sk4f(0.5f)).store(&c);