aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrXferProcessor.cpp
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2017-04-04 15:17:03 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-04-04 20:07:34 +0000
commita076d8711d24b8181f894038a4fd34d5327f1717 (patch)
treea21a88286fd99db304441440a22341bc1daea2fa /src/gpu/GrXferProcessor.cpp
parenta08104abf2850546d97c5d33f5fb5fabedf45466 (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/GrXferProcessor.cpp')
-rw-r--r--src/gpu/GrXferProcessor.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/gpu/GrXferProcessor.cpp b/src/gpu/GrXferProcessor.cpp
index b04a5cca06..bf5bc592d9 100644
--- a/src/gpu/GrXferProcessor.cpp
+++ b/src/gpu/GrXferProcessor.cpp
@@ -167,10 +167,16 @@ GrXPFactory::AnalysisProperties GrXPFactory::GetAnalysisProperties(
return result;
}
-GrXferProcessor* GrXPFactory::createXferProcessor(const GrProcessorAnalysisColor& color,
- GrProcessorAnalysisCoverage coverage,
- bool hasMixedSamples,
- const GrCaps& caps) const {
+sk_sp<GrXferProcessor> GrXPFactory::MakeXferProcessor(const GrXPFactory* factory,
+ const GrProcessorAnalysisColor& color,
+ GrProcessorAnalysisCoverage coverage,
+ bool hasMixedSamples,
+ const GrCaps& caps) {
SkASSERT(!hasMixedSamples || caps.shaderCaps()->dualSourceBlendingSupport());
- return this->onCreateXferProcessor(caps, color, coverage, hasMixedSamples);
+ if (factory) {
+ return factory->makeXferProcessor(color, coverage, hasMixedSamples, caps);
+ } else {
+ return GrPorterDuffXPFactory::MakeSrcOverXferProcessor(color, coverage, hasMixedSamples,
+ caps);
+ }
}