| OLD | NEW | 
|---|
| 1 | 1 | 
| 2 /* | 2 /* | 
| 3  * Copyright 2006 The Android Open Source Project | 3  * Copyright 2006 The Android Open Source Project | 
| 4  * | 4  * | 
| 5  * Use of this source code is governed by a BSD-style license that can be | 5  * Use of this source code is governed by a BSD-style license that can be | 
| 6  * found in the LICENSE file. | 6  * found in the LICENSE file. | 
| 7  */ | 7  */ | 
| 8 | 8 | 
| 9 #include "SkXfermode.h" | 9 #include "SkXfermode.h" | 
| 10 #include "SkXfermode_proccoeff.h" | 10 #include "SkXfermode_proccoeff.h" | 
| (...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 649 | 649 | 
| 650 bool SkXfermode::asMode(Mode* mode) const { | 650 bool SkXfermode::asMode(Mode* mode) const { | 
| 651     return false; | 651     return false; | 
| 652 } | 652 } | 
| 653 | 653 | 
| 654 bool SkXfermode::asFragmentProcessor(const GrFragmentProcessor**, | 654 bool SkXfermode::asFragmentProcessor(const GrFragmentProcessor**, | 
| 655                                      const GrFragmentProcessor*) const { | 655                                      const GrFragmentProcessor*) const { | 
| 656     return false; | 656     return false; | 
| 657 } | 657 } | 
| 658 | 658 | 
| 659 bool SkXfermode::asXPFactory(const GrXPFactory**) const { | 659 bool SkXfermode::asXPFactory(GrXPFactory**) const { | 
| 660     return false; | 660     return false; | 
| 661 } | 661 } | 
| 662 | 662 | 
| 663 | 663 | 
| 664 #if SK_SUPPORT_GPU | 664 #if SK_SUPPORT_GPU | 
| 665 #include "effects/GrPorterDuffXferProcessor.h" | 665 #include "effects/GrPorterDuffXferProcessor.h" | 
| 666 | 666 | 
| 667 bool SkXfermode::AsXPFactory(SkXfermode* xfermode,  const GrXPFactory** xpf) { | 667 bool SkXfermode::AsXPFactory(SkXfermode* xfermode, GrXPFactory** xpf) { | 
| 668     if (nullptr == xfermode) { | 668     if (nullptr == xfermode) { | 
| 669         if (xpf) { | 669         if (xpf) { | 
| 670             *xpf = GrPorterDuffXPFactory::Create(kSrcOver_Mode); | 670             *xpf = GrPorterDuffXPFactory::Create(kSrcOver_Mode); | 
| 671         } | 671         } | 
| 672         return true; | 672         return true; | 
| 673     } else { | 673     } else { | 
| 674         return xfermode->asXPFactory(xpf); | 674         return xfermode->asXPFactory(xpf); | 
| 675     } | 675     } | 
| 676 } | 676 } | 
| 677 #else | 677 #else | 
| 678 bool SkXfermode::AsXPFactory(SkXfermode* xfermode, const GrXPFactory** xpf) { | 678 bool SkXfermode::AsXPFactory(SkXfermode* xfermode, GrXPFactory** xpf) { | 
| 679     return false; | 679     return false; | 
| 680 } | 680 } | 
| 681 #endif | 681 #endif | 
| 682 | 682 | 
| 683 SkPMColor SkXfermode::xferColor(SkPMColor src, SkPMColor dst) const{ | 683 SkPMColor SkXfermode::xferColor(SkPMColor src, SkPMColor dst) const{ | 
| 684     // no-op. subclasses should override this | 684     // no-op. subclasses should override this | 
| 685     return dst; | 685     return dst; | 
| 686 } | 686 } | 
| 687 | 687 | 
| 688 void SkXfermode::xfer32(SkPMColor* SK_RESTRICT dst, | 688 void SkXfermode::xfer32(SkPMColor* SK_RESTRICT dst, | 
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 925 bool SkProcCoeffXfermode::asFragmentProcessor(const GrFragmentProcessor** fp, | 925 bool SkProcCoeffXfermode::asFragmentProcessor(const GrFragmentProcessor** fp, | 
| 926                                               const GrFragmentProcessor* dst) co
      nst { | 926                                               const GrFragmentProcessor* dst) co
      nst { | 
| 927     if (fp) { | 927     if (fp) { | 
| 928         SkASSERT(dst); | 928         SkASSERT(dst); | 
| 929         *fp = GrXfermodeFragmentProcessor::CreateFromDstProcessor(dst, fMode); | 929         *fp = GrXfermodeFragmentProcessor::CreateFromDstProcessor(dst, fMode); | 
| 930         SkASSERT(*fp || kSrc_Mode == fMode); | 930         SkASSERT(*fp || kSrc_Mode == fMode); | 
| 931     } | 931     } | 
| 932     return true; | 932     return true; | 
| 933 } | 933 } | 
| 934 | 934 | 
| 935 bool SkProcCoeffXfermode::asXPFactory(const GrXPFactory** xp) const { | 935 bool SkProcCoeffXfermode::asXPFactory(GrXPFactory** xp) const { | 
| 936     if (CANNOT_USE_COEFF != fSrcCoeff) { | 936     if (CANNOT_USE_COEFF != fSrcCoeff) { | 
| 937         if (xp) { | 937         if (xp) { | 
| 938             *xp = GrPorterDuffXPFactory::Create(fMode); | 938             *xp = GrPorterDuffXPFactory::Create(fMode); | 
| 939             SkASSERT(*xp); | 939             SkASSERT(*xp); | 
| 940         } | 940         } | 
| 941         return true; | 941         return true; | 
| 942     } | 942     } | 
| 943 | 943 | 
| 944     if (GrCustomXfermode::IsSupportedMode(fMode)) { | 944     if (GrCustomXfermode::IsSupportedMode(fMode)) { | 
| 945         if (xp) { | 945         if (xp) { | 
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1083     if (!xfer) { | 1083     if (!xfer) { | 
| 1084         return SkXfermode::kOpaque_SrcColorOpacity == opacityType; | 1084         return SkXfermode::kOpaque_SrcColorOpacity == opacityType; | 
| 1085     } | 1085     } | 
| 1086 | 1086 | 
| 1087     return xfer->isOpaque(opacityType); | 1087     return xfer->isOpaque(opacityType); | 
| 1088 } | 1088 } | 
| 1089 | 1089 | 
| 1090 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) | 1090 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) | 
| 1091     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode) | 1091     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode) | 
| 1092 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 1092 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 
| OLD | NEW | 
|---|