diff options
author | Brian Osman <brianosman@google.com> | 2017-09-20 09:53:22 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-09-20 14:28:03 +0000 |
commit | 9a725dd9485654155e2e4196c32d372360bcdb61 (patch) | |
tree | 7b2b226fdffc212cce21de7d7804308dc7abbf92 /src/gpu/GrXferProcessor.cpp | |
parent | 906126eedc792f12935145a9a2f13eea1d1cd86d (diff) |
Use shader based blending to clamp kPlus mode w/F16
Bug: skia:6173
Change-Id: I21042d484d9a7b3eee04aa3301d9793d00ad6908
Reviewed-on: https://skia-review.googlesource.com/48183
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'src/gpu/GrXferProcessor.cpp')
-rw-r--r-- | src/gpu/GrXferProcessor.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/gpu/GrXferProcessor.cpp b/src/gpu/GrXferProcessor.cpp index 8c0568bcae..c7383f2947 100644 --- a/src/gpu/GrXferProcessor.cpp +++ b/src/gpu/GrXferProcessor.cpp @@ -157,12 +157,14 @@ GrXPFactory::AnalysisProperties GrXPFactory::GetAnalysisProperties( const GrXPFactory* factory, const GrProcessorAnalysisColor& color, const GrProcessorAnalysisCoverage& coverage, - const GrCaps& caps) { + const GrCaps& caps, + GrPixelConfigIsClamped dstIsClamped) { AnalysisProperties result; if (factory) { - result = factory->analysisProperties(color, coverage, caps); + result = factory->analysisProperties(color, coverage, caps, dstIsClamped); } else { - result = GrPorterDuffXPFactory::SrcOverAnalysisProperties(color, coverage, caps); + result = GrPorterDuffXPFactory::SrcOverAnalysisProperties(color, coverage, caps, + dstIsClamped); } SkASSERT(!(result & AnalysisProperties::kRequiresDstTexture)); if ((result & AnalysisProperties::kReadsDstInShader) && @@ -179,10 +181,11 @@ sk_sp<const GrXferProcessor> GrXPFactory::MakeXferProcessor(const GrXPFactory* f const GrProcessorAnalysisColor& color, GrProcessorAnalysisCoverage coverage, bool hasMixedSamples, - const GrCaps& caps) { + const GrCaps& caps, + GrPixelConfigIsClamped dstIsClamped) { SkASSERT(!hasMixedSamples || caps.shaderCaps()->dualSourceBlendingSupport()); if (factory) { - return factory->makeXferProcessor(color, coverage, hasMixedSamples, caps); + return factory->makeXferProcessor(color, coverage, hasMixedSamples, caps, dstIsClamped); } else { return GrPorterDuffXPFactory::MakeSrcOverXferProcessor(color, coverage, hasMixedSamples, caps); |