diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/SkXfermode.cpp | 50 | ||||
-rw-r--r-- | src/core/SkXfermode_proccoeff.h | 7 |
2 files changed, 26 insertions, 31 deletions
diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp index 81083199b3..2f29f1a63d 100644 --- a/src/core/SkXfermode.cpp +++ b/src/core/SkXfermode.cpp @@ -737,14 +737,22 @@ bool SkXfermode::asMode(Mode* mode) const { return false; } -bool SkXfermode::asFragmentProcessor(const GrFragmentProcessor**, - const GrFragmentProcessor*) const { - return false; +#if SK_SUPPORT_GPU +const GrFragmentProcessor* SkXfermode::getFragmentProcessorForImageFilter( + const GrFragmentProcessor*) const { + // This should never be called. + // TODO: make pure virtual in SkXfermode once Android update lands + SkASSERT(0); + return nullptr; } -bool SkXfermode::asXPFactory(GrXPFactory**) const { - return false; +GrXPFactory* SkXfermode::asXPFactory() const { + // This should never be called. + // TODO: make pure virtual in SkXfermode once Android update lands + SkASSERT(0); + return nullptr; } +#endif SkPMColor SkXfermode::xferColor(SkPMColor src, SkPMColor dst) const{ // no-op. subclasses should override this @@ -989,33 +997,21 @@ void SkProcCoeffXfermode::xferA8(SkAlpha* SK_RESTRICT dst, #include "effects/GrPorterDuffXferProcessor.h" #include "effects/GrXfermodeFragmentProcessor.h" -bool SkProcCoeffXfermode::asFragmentProcessor(const GrFragmentProcessor** fp, - const GrFragmentProcessor* dst) const { - if (fp) { - SkASSERT(dst); - *fp = GrXfermodeFragmentProcessor::CreateFromDstProcessor(dst, fMode); - SkASSERT(*fp || kSrc_Mode == fMode); - } - return true; +const GrFragmentProcessor* SkProcCoeffXfermode::getFragmentProcessorForImageFilter( + const GrFragmentProcessor* dst) const { + SkASSERT(dst); + return GrXfermodeFragmentProcessor::CreateFromDstProcessor(dst, fMode); } -bool SkProcCoeffXfermode::asXPFactory(GrXPFactory** xp) const { +GrXPFactory* SkProcCoeffXfermode::asXPFactory() const { if (CANNOT_USE_COEFF != fSrcCoeff) { - if (xp) { - *xp = GrPorterDuffXPFactory::Create(fMode); - SkASSERT(*xp); - } - return true; + GrXPFactory* result = GrPorterDuffXPFactory::Create(fMode); + SkASSERT(result); + return result; } - if (GrCustomXfermode::IsSupportedMode(fMode)) { - if (xp) { - *xp = GrCustomXfermode::CreateXPFactory(fMode); - SkASSERT(*xp); - } - return true; - } - return false; + SkASSERT(GrCustomXfermode::IsSupportedMode(fMode)); + return GrCustomXfermode::CreateXPFactory(fMode); } #endif diff --git a/src/core/SkXfermode_proccoeff.h b/src/core/SkXfermode_proccoeff.h index 264d65c2bc..3b45594867 100644 --- a/src/core/SkXfermode_proccoeff.h +++ b/src/core/SkXfermode_proccoeff.h @@ -45,10 +45,9 @@ public: bool isOpaque(SkXfermode::SrcColorOpacity opacityType) const override; #if SK_SUPPORT_GPU - bool asFragmentProcessor(const GrFragmentProcessor**, - const GrFragmentProcessor*) const override; - - bool asXPFactory(GrXPFactory**) const override; + const GrFragmentProcessor* getFragmentProcessorForImageFilter( + const GrFragmentProcessor*) const override; + GrXPFactory* asXPFactory() const override; #endif SK_TO_STRING_OVERRIDE() |