Lines Matching refs:dst
22 static SkPMColor SkFourByteInterp(SkPMColor src, SkPMColor dst, U8CPU alpha) {
25 unsigned a = SkAlphaBlend(SkGetPackedA32(src), SkGetPackedA32(dst), scale);
26 unsigned r = SkAlphaBlend(SkGetPackedR32(src), SkGetPackedR32(dst), scale);
27 unsigned g = SkAlphaBlend(SkGetPackedG32(src), SkGetPackedG32(dst), scale);
28 unsigned b = SkAlphaBlend(SkGetPackedB32(src), SkGetPackedB32(dst), scale);
87 static SkPMColor clear_modeproc(SkPMColor src, SkPMColor dst) {
92 static SkPMColor src_modeproc(SkPMColor src, SkPMColor dst) {
97 static SkPMColor dst_modeproc(SkPMColor src, SkPMColor dst) {
98 return dst;
102 static SkPMColor srcover_modeproc(SkPMColor src, SkPMColor dst) {
104 // this is the old, more-correct way, but it doesn't guarantee that dst==255
106 return src + SkAlphaMulQ(dst, SkAlpha255To256(255 - SkGetPackedA32(src)));
108 // this is slightly faster, but more importantly guarantees that dst==255
110 return src + SkAlphaMulQ(dst, 256 - SkGetPackedA32(src));
115 static SkPMColor dstover_modeproc(SkPMColor src, SkPMColor dst) {
116 // this is the reverse of srcover, just flipping src and dst
118 return dst + SkAlphaMulQ(src, 256 - SkGetPackedA32(dst));
122 static SkPMColor srcin_modeproc(SkPMColor src, SkPMColor dst) {
123 return SkAlphaMulQ(src, SkAlpha255To256(SkGetPackedA32(dst)));
127 static SkPMColor dstin_modeproc(SkPMColor src, SkPMColor dst) {
128 return SkAlphaMulQ(dst, SkAlpha255To256(SkGetPackedA32(src)));
132 static SkPMColor srcout_modeproc(SkPMColor src, SkPMColor dst) {
133 return SkAlphaMulQ(src, SkAlpha255To256(255 - SkGetPackedA32(dst)));
137 static SkPMColor dstout_modeproc(SkPMColor src, SkPMColor dst) {
138 return SkAlphaMulQ(dst, SkAlpha255To256(255 - SkGetPackedA32(src)));
142 static SkPMColor srcatop_modeproc(SkPMColor src, SkPMColor dst) {
144 unsigned da = SkGetPackedA32(dst);
149 SkAlphaMulAlpha(isa, SkGetPackedR32(dst)),
151 SkAlphaMulAlpha(isa, SkGetPackedG32(dst)),
153 SkAlphaMulAlpha(isa, SkGetPackedB32(dst)));
157 static SkPMColor dstatop_modeproc(SkPMColor src, SkPMColor dst) {
159 unsigned da = SkGetPackedA32(dst);
164 SkAlphaMulAlpha(sa, SkGetPackedR32(dst)),
166 SkAlphaMulAlpha(sa, SkGetPackedG32(dst)),
168 SkAlphaMulAlpha(sa, SkGetPackedB32(dst)));
172 static SkPMColor xor_modeproc(SkPMColor src, SkPMColor dst) {
174 unsigned da = SkGetPackedA32(dst);
180 SkAlphaMulAlpha(isa, SkGetPackedR32(dst)),
182 SkAlphaMulAlpha(isa, SkGetPackedG32(dst)),
184 SkAlphaMulAlpha(isa, SkGetPackedB32(dst)));
190 static SkPMColor plus_modeproc(SkPMColor src, SkPMColor dst) {
191 unsigned b = saturated_add(SkGetPackedB32(src), SkGetPackedB32(dst));
192 unsigned g = saturated_add(SkGetPackedG32(src), SkGetPackedG32(dst));
193 unsigned r = saturated_add(SkGetPackedR32(src), SkGetPackedR32(dst));
194 unsigned a = saturated_add(SkGetPackedA32(src), SkGetPackedA32(dst));
199 static SkPMColor multiply_modeproc(SkPMColor src, SkPMColor dst) {
200 int a = SkAlphaMulAlpha(SkGetPackedA32(src), SkGetPackedA32(dst));
201 int r = SkAlphaMulAlpha(SkGetPackedR32(src), SkGetPackedR32(dst));
202 int g = SkAlphaMulAlpha(SkGetPackedG32(src), SkGetPackedG32(dst));
203 int b = SkAlphaMulAlpha(SkGetPackedB32(src), SkGetPackedB32(dst));
211 static SkPMColor screen_modeproc(SkPMColor src, SkPMColor dst) {
212 int a = srcover_byte(SkGetPackedA32(src), SkGetPackedA32(dst));
213 int r = srcover_byte(SkGetPackedR32(src), SkGetPackedR32(dst));
214 int g = srcover_byte(SkGetPackedG32(src), SkGetPackedG32(dst));
215 int b = srcover_byte(SkGetPackedB32(src), SkGetPackedB32(dst));
230 static SkPMColor overlay_modeproc(SkPMColor src, SkPMColor dst) {
232 int da = SkGetPackedA32(dst);
234 int r = overlay_byte(SkGetPackedR32(src), SkGetPackedR32(dst), sa, da);
235 int g = overlay_byte(SkGetPackedG32(src), SkGetPackedG32(dst), sa, da);
236 int b = overlay_byte(SkGetPackedB32(src), SkGetPackedB32(dst), sa, da);
252 static SkPMColor darken_modeproc(SkPMColor src, SkPMColor dst) {
254 int da = SkGetPackedA32(dst);
256 int r = darken_byte(SkGetPackedR32(src), SkGetPackedR32(dst), sa, da);
257 int g = darken_byte(SkGetPackedG32(src), SkGetPackedG32(dst), sa, da);
258 int b = darken_byte(SkGetPackedB32(src), SkGetPackedB32(dst), sa, da);
274 static SkPMColor lighten_modeproc(SkPMColor src, SkPMColor dst) {
276 int da = SkGetPackedA32(dst);
278 int r = lighten_byte(SkGetPackedR32(src), SkGetPackedR32(dst), sa, da);
279 int g = lighten_byte(SkGetPackedG32(src), SkGetPackedG32(dst), sa, da);
280 int b = lighten_byte(SkGetPackedB32(src), SkGetPackedB32(dst), sa, da);
298 static SkPMColor colordodge_modeproc(SkPMColor src, SkPMColor dst) {
300 if (0 == dst) {
305 int da = SkGetPackedA32(dst);
307 int r = colordodge_byte(SkGetPackedR32(src), SkGetPackedR32(dst), sa, da);
308 int g = colordodge_byte(SkGetPackedG32(src), SkGetPackedG32(dst), sa, da);
309 int b = colordodge_byte(SkGetPackedB32(src), SkGetPackedB32(dst), sa, da);
333 static SkPMColor colorburn_modeproc(SkPMColor src, SkPMColor dst) {
335 if (0 == dst) {
340 int da = SkGetPackedA32(dst);
342 int r = colorburn_byte(SkGetPackedR32(src), SkGetPackedR32(dst), sa, da);
343 int g = colorburn_byte(SkGetPackedG32(src), SkGetPackedG32(dst), sa, da);
344 int b = colorburn_byte(SkGetPackedB32(src), SkGetPackedB32(dst), sa, da);
358 static SkPMColor hardlight_modeproc(SkPMColor src, SkPMColor dst) {
360 int da = SkGetPackedA32(dst);
362 int r = hardlight_byte(SkGetPackedR32(src), SkGetPackedR32(dst), sa, da);
363 int g = hardlight_byte(SkGetPackedG32(src), SkGetPackedG32(dst), sa, da);
364 int b = hardlight_byte(SkGetPackedB32(src), SkGetPackedB32(dst), sa, da);
388 static SkPMColor softlight_modeproc(SkPMColor src, SkPMColor dst) {
390 int da = SkGetPackedA32(dst);
392 int r = softlight_byte(SkGetPackedR32(src), SkGetPackedR32(dst), sa, da);
393 int g = softlight_byte(SkGetPackedG32(src), SkGetPackedG32(dst), sa, da);
394 int b = softlight_byte(SkGetPackedB32(src), SkGetPackedB32(dst), sa, da);
403 static SkPMColor difference_modeproc(SkPMColor src, SkPMColor dst) {
405 int da = SkGetPackedA32(dst);
407 int r = difference_byte(SkGetPackedR32(src), SkGetPackedR32(dst), sa, da);
408 int g = difference_byte(SkGetPackedG32(src), SkGetPackedG32(dst), sa, da);
409 int b = difference_byte(SkGetPackedB32(src), SkGetPackedB32(dst), sa, da);
419 static SkPMColor exclusion_modeproc(SkPMColor src, SkPMColor dst) {
421 int da = SkGetPackedA32(dst);
423 int r = exclusion_byte(SkGetPackedR32(src), SkGetPackedR32(dst), sa, da);
424 int g = exclusion_byte(SkGetPackedG32(src), SkGetPackedG32(dst), sa, da);
425 int b = exclusion_byte(SkGetPackedB32(src), SkGetPackedB32(dst), sa, da);
467 bool SkXfermode::asCoeff(Coeff* src, Coeff* dst) {
475 SkPMColor SkXfermode::xferColor(SkPMColor src, SkPMColor dst) {
477 return dst;
480 void SkXfermode::xfer32(SK_RESTRICT SkPMColor dst[],
483 SkASSERT(dst && src && count >= 0);
487 dst[i] = this->xferColor(src[i], dst[i]);
493 SkPMColor dstC = dst[i];
498 dst[i] = C;
504 void SkXfermode::xfer16(SK_RESTRICT uint16_t dst[],
507 SkASSERT(dst && src && count >= 0);
511 SkPMColor dstC = SkPixel16ToPixel32(dst[i]);
512 dst[i] = SkPixel32ToPixel16_ToU16(this->xferColor(src[i], dstC));
518 SkPMColor dstC = SkPixel16ToPixel32(dst[i]);
523 dst[i] = SkPixel32ToPixel16_ToU16(C);
529 void SkXfermode::xfer4444(SK_RESTRICT SkPMColor16 dst[],
533 SkASSERT(dst && src && count >= 0);
537 SkPMColor dstC = SkPixel4444ToPixel32(dst[i]);
538 dst[i] = SkPixel32ToPixel4444(this->xferColor(src[i], dstC));
544 SkPMColor dstC = SkPixel4444ToPixel32(dst[i]);
549 dst[i] = SkPixel32ToPixel4444(C);
555 void SkXfermode::xferA8(SK_RESTRICT SkAlpha dst[],
559 SkASSERT(dst && src && count >= 0);
563 SkPMColor res = this->xferColor(src[i], (dst[i] << SK_A32_SHIFT));
564 dst[i] = SkToU8(SkGetPackedA32(res));
570 SkAlpha dstA = dst[i];
576 dst[i] = SkToU8(A);
584 void SkProcXfermode::xfer32(SK_RESTRICT SkPMColor dst[],
587 SkASSERT(dst && src && count >= 0);
594 dst[i] = proc(src[i], dst[i]);
600 SkPMColor dstC = dst[i];
605 dst[i] = C;
612 void SkProcXfermode::xfer16(SK_RESTRICT uint16_t dst[],
615 SkASSERT(dst && src && count >= 0);
622 SkPMColor dstC = SkPixel16ToPixel32(dst[i]);
623 dst[i] = SkPixel32ToPixel16_ToU16(proc(src[i], dstC));
629 SkPMColor dstC = SkPixel16ToPixel32(dst[i]);
634 dst[i] = SkPixel32ToPixel16_ToU16(C);
641 void SkProcXfermode::xfer4444(SK_RESTRICT SkPMColor16 dst[],
644 SkASSERT(dst && src && count >= 0);
651 SkPMColor dstC = SkPixel4444ToPixel32(dst[i]);
652 dst[i] = SkPixel32ToPixel4444(proc(src[i], dstC));
658 SkPMColor dstC = SkPixel4444ToPixel32(dst[i]);
663 dst[i] = SkPixel32ToPixel4444(C);
670 void SkProcXfermode::xferA8(SK_RESTRICT SkAlpha dst[],
673 SkASSERT(dst && src && count >= 0);
680 SkPMColor res = proc(src[i], dst[i] << SK_A32_SHIFT);
681 dst[i] = SkToU8(SkGetPackedA32(res));
687 SkAlpha dstA = dst[i];
693 dst[i] = SkToU8(A);
777 virtual void xfer32(SK_RESTRICT SkPMColor dst[],
780 SkASSERT(dst && count >= 0);
783 memset(dst, 0, count << 2);
788 dst[i] = 0;
790 dst[i] = SkAlphaMulQ(dst[i], SkAlpha255To256(255 - a));
795 virtual void xferA8(SK_RESTRICT SkAlpha dst[],
798 SkASSERT(dst && count >= 0);
801 memset(dst, 0, count);
806 dst[i] = 0;
808 dst[i] = SkAlphaMulAlpha(dst[i], 255 - a);
832 virtual void xfer32(SK_RESTRICT SkPMColor dst[],
835 SkASSERT(dst && src && count >= 0);
838 memcpy(dst, src, count << 2);
843 dst[i] = src[i];
845 dst[i] = SkFourByteInterp(src[i], dst[i], a);
851 virtual void xferA8(SK_RESTRICT SkAlpha dst[],
854 SkASSERT(dst && src && count >= 0);
858 dst[i] = SkToU8(SkGetPackedA32(src[i]));
866 dst[i] = SkToU8(srcA);
868 dst[i] = SkToU8(SkAlphaBlend(srcA, dst[i], a));
891 virtual void xfer32(SK_RESTRICT SkPMColor dst[],
894 SkASSERT(dst && src);
900 return this->INHERITED::xfer32(dst, src, count, aa);
905 *dst = SkAlphaMulQ(*dst, SkAlpha255To256(a));
906 dst++;
927 virtual void xfer32(SK_RESTRICT SkPMColor dst[],
930 SkASSERT(dst && src);
936 return this->INHERITED::xfer32(dst, src, count, aa);
941 *dst = SkAlphaMulQ(*dst, SkAlpha255To256(255 - a));
942 dst++;
992 bool SkXfermode::ModeAsCoeff(Mode mode, Coeff* src, Coeff* dst) {
1010 if (dst) {
1011 *dst = rec.fDC;
1026 bool SkXfermode::AsCoeff(SkXfermode* xfer, Coeff* src, Coeff* dst) {
1028 return ModeAsCoeff(kSrcOver_Mode, src, dst);
1030 return xfer->asCoeff(src, dst);
1041 static uint16_t src_modeproc16_255(SkPMColor src, uint16_t dst) {
1046 static uint16_t dst_modeproc16(SkPMColor src, uint16_t dst) {
1047 return dst;
1050 static uint16_t srcover_modeproc16_0(SkPMColor src, uint16_t dst) {
1052 return dst;
1055 static uint16_t srcover_modeproc16_255(SkPMColor src, uint16_t dst) {
1060 static uint16_t dstover_modeproc16_0(SkPMColor src, uint16_t dst) {
1062 return dst;
1065 static uint16_t dstover_modeproc16_255(SkPMColor src, uint16_t dst) {
1067 return dst;
1070 static uint16_t srcin_modeproc16_255(SkPMColor src, uint16_t dst) {
1075 static uint16_t dstin_modeproc16_255(SkPMColor src, uint16_t dst) {
1077 return dst;
1080 static uint16_t dstout_modeproc16_0(SkPMColor src, uint16_t dst) {
1082 return dst;
1085 static uint16_t srcatop_modeproc16(SkPMColor src, uint16_t dst) {
1089 SkPacked32ToR16(src) + SkAlphaMulAlpha(SkGetPackedR16(dst), isa),
1090 SkPacked32ToG16(src) + SkAlphaMulAlpha(SkGetPackedG16(dst), isa),
1091 SkPacked32ToB16(src) + SkAlphaMulAlpha(SkGetPackedB16(dst), isa));
1094 static uint16_t srcatop_modeproc16_0(SkPMColor src, uint16_t dst) {
1096 return dst;
1099 static uint16_t srcatop_modeproc16_255(SkPMColor src, uint16_t dst) {
1104 static uint16_t dstatop_modeproc16_255(SkPMColor src, uint16_t dst) {
1106 return dst;
1124 static uint16_t darken_modeproc16_0(SkPMColor src, uint16_t dst) {
1129 static uint16_t darken_modeproc16_255(SkPMColor src, uint16_t dst) {
1131 unsigned r = SkFastMin32(SkPacked32ToR16(src), SkGetPackedR16(dst));
1132 unsigned g = SkFastMin32(SkPacked32ToG16(src), SkGetPackedG16(dst));
1133 unsigned b = SkFastMin32(SkPacked32ToB16(src), SkGetPackedB16(dst));
1137 static uint16_t lighten_modeproc16_0(SkPMColor src, uint16_t dst) {
1139 return dst;
1142 static uint16_t lighten_modeproc16_255(SkPMColor src, uint16_t dst) {
1144 unsigned r = SkMax32(SkPacked32ToR16(src), SkGetPackedR16(dst));
1145 unsigned g = SkMax32(SkPacked32ToG16(src), SkGetPackedG16(dst));
1146 unsigned b = SkMax32(SkPacked32ToB16(src), SkGetPackedB16(dst));