aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrXferProcessor.cpp
diff options
context:
space:
mode:
authorGravatar Brian Osman <brianosman@google.com>2017-09-20 09:53:22 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-09-20 14:28:03 +0000
commit9a725dd9485654155e2e4196c32d372360bcdb61 (patch)
tree7b2b226fdffc212cce21de7d7804308dc7abbf92 /src/gpu/GrXferProcessor.cpp
parent906126eedc792f12935145a9a2f13eea1d1cd86d (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.cpp13
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);