diff options
author | 2017-04-04 15:17:03 -0400 | |
---|---|---|
committer | 2017-04-04 20:07:34 +0000 | |
commit | a076d8711d24b8181f894038a4fd34d5327f1717 (patch) | |
tree | a21a88286fd99db304441440a22341bc1daea2fa /src/gpu/effects/GrCustomXfermode.cpp | |
parent | a08104abf2850546d97c5d33f5fb5fabedf45466 (diff) |
Use sk_sp with GrXferProcessor and use a static factory to handle the nullptr==srcover case.
Bug: skia:
Change-Id: I9c07069fc2aae24fc2884c18939e3a649afc27e7
Reviewed-on: https://skia-review.googlesource.com/11282
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/effects/GrCustomXfermode.cpp')
-rw-r--r-- | src/gpu/effects/GrCustomXfermode.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/gpu/effects/GrCustomXfermode.cpp b/src/gpu/effects/GrCustomXfermode.cpp index 8d7c410eb7..2cc8228ee5 100644 --- a/src/gpu/effects/GrCustomXfermode.cpp +++ b/src/gpu/effects/GrCustomXfermode.cpp @@ -213,9 +213,10 @@ public: : fMode(mode), fHWBlendEquation(hw_blend_equation(mode)) {} private: - GrXferProcessor* onCreateXferProcessor(const GrCaps& caps, const GrProcessorAnalysisColor&, - GrProcessorAnalysisCoverage, - bool hasMixedSamples) const override; + sk_sp<GrXferProcessor> makeXferProcessor(const GrProcessorAnalysisColor&, + GrProcessorAnalysisCoverage, + bool hasMixedSamples, + const GrCaps&) const override; AnalysisProperties analysisProperties(const GrProcessorAnalysisColor&, const GrProcessorAnalysisCoverage&, @@ -232,15 +233,15 @@ private: #pragma GCC diagnostic pop #endif -GrXferProcessor* CustomXPFactory::onCreateXferProcessor(const GrCaps& caps, - const GrProcessorAnalysisColor&, - GrProcessorAnalysisCoverage coverage, - bool hasMixedSamples) const { +sk_sp<GrXferProcessor> CustomXPFactory::makeXferProcessor(const GrProcessorAnalysisColor&, + GrProcessorAnalysisCoverage coverage, + bool hasMixedSamples, + const GrCaps& caps) const { SkASSERT(GrCustomXfermode::IsSupportedMode(fMode)); if (can_use_hw_blend_equation(fHWBlendEquation, coverage, caps)) { - return new CustomXP(fMode, fHWBlendEquation); + return sk_sp<GrXferProcessor>(new CustomXP(fMode, fHWBlendEquation)); } - return new CustomXP(hasMixedSamples, fMode); + return sk_sp<GrXferProcessor>(new CustomXP(hasMixedSamples, fMode)); } GrXPFactory::AnalysisProperties CustomXPFactory::analysisProperties( |