Home | History | Annotate | Download | only in core

Lines Matching refs:dc

329     SkProcCoeffXfermode(SkXfermodeProc proc, Coeff sc, Coeff dc)
330 : INHERITED(proc), fSrcCoeff(sc), fDstCoeff(dc) {
333 virtual bool asCoeff(Coeff* sc, Coeff* dc) {
337 if (dc) {
338 *dc = fDstCoeff;
378 // kDst_Mode, //!< [Da, Dc]
383 // kSrcOver_Mode, //!< [Sa + Da - Sa*Da, Sc + (1 - Sa)*Dc]
396 // kDstOver_Mode, //!< [Sa + Da - Sa*Da, Dc + (1 - Da)*Sc]
408 // kDstIn_Mode, //!< [Sa * Da, Sa * Dc]
418 // kDstOut_Mode, //!< [Da * (1 - Sa), Dc * (1 - Sa)]
423 // kSrcATop_Mode, //!< [Da, Sc * Da + (1 - Sa) * Dc]
438 // kDstATop_Mode, //!< [Sa, Sa * Dc + Sc * (1 - Da)]
453 // kXor_Mode [Sa + Da - 2 * Sa * Da, Sc * (1 - Da) + (1 - Sa) * Dc]
502 static inline int overlay_byte(int sc, int dc, int sa, int da) {
503 int tmp = sc * (255 - da) + dc * (255 - sa);
505 if (2 * dc <= da) {
506 rc = 2 * sc * dc;
508 rc = sa * da - 2 * (da - dc) * (sa - sc);
523 static inline int darken_byte(int sc, int dc, int sa, int da) {
525 int ds = dc * sa;
528 return sc + dc - SkDiv255Round(ds);
531 return dc + sc - SkDiv255Round(sd);
545 static inline int lighten_byte(int sc, int dc, int sa, int da) {
547 int ds = dc * sa;
550 return sc + dc - SkDiv255Round(ds);
553 return dc + sc - SkDiv255Round(sd);
567 static inline int colordodge_byte(int sc, int dc, int sa, int da) {
571 rc = sa * da + sc * (255 - da) + dc * (255 - sa);
574 int tmp = (dc * sa << 15) / (da * diff);
599 static inline int colorburn_byte(int sc, int dc, int sa, int da) {
601 if (dc == da && 0 == sc) {
602 rc = sa * da + dc * (255 - sa);
604 return SkAlphaMulAlpha(dc, 255 - sa);
606 int tmp = (sa * (da - dc) * 256) / (sc * da);
611 rc = tmp2 - (tmp2 * tmp >> 8) + sc * (255 - da) + dc * (255 - sa);
631 static inline int hardlight_byte(int sc, int dc, int sa, int da) {
634 rc = 2 * sc * dc;
636 rc = sa * da - 2 * (da - dc) * (sa - sc);
638 return clamp_div255round(rc + sc * (255 - da) + dc * (255 - sa));
656 static inline int softlight_byte(int sc, int dc, int sa, int da) {
657 int m = da ? dc * 256 / da : 0;
660 rc = dc * (sa + ((2 * sc - sa) * (256 - m) >> 8));
661 } else if (4 * dc <= da) {
663 rc = dc * sa + (da * (2 * sc - sa) * tmp >> 8);
666 rc = dc * sa + (da * (2 * sc - sa) * tmp >> 8);
668 return clamp_div255round(rc + sc * (255 - da) + dc * (255 - sa));
681 static inline int difference_byte(int sc, int dc, int sa, int da) {
682 int tmp = SkMin32(sc * da, dc * sa);
683 return clamp_signed_byte(sc + dc - 2 * SkDiv255Round(tmp));
696 static inline int exclusion_byte(int sc, int dc, int sa, int da) {
698 int r = sc * da + dc * sa - 2 * sc * dc + sc * (255 - da) + dc * (255 - sa);
978 SkXfermode::Coeff sc, dc;
979 if (xfer->asCoeff(&sc, &dc)) {
981 SkASSERT((unsigned)dc < (unsigned)SkXfermode::kCoeffCount);
985 if (rec[i].fSC == sc && rec[i].fDC == dc) {
1085 darken = (1 - Sa) * Dc + min(Sc, Dc)
1086 lighten = (1 - Sa) * Dc + max(Sc, Dc)
1089 darken = Dc + min(0, Dc) = 0
1090 lighten = Dc + max(0, Dc) = Dc
1093 darken = min(Sc, Dc)
1094 lighten = max(Sc, Dc)