diff options
author | Brian Salomon <bsalomon@google.com> | 2017-01-23 14:35:25 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-01-23 20:17:53 +0000 |
commit | 5f13fbac19ee0ea9a3d5216740912d377a30d622 (patch) | |
tree | 45f1becca7239814f3abf23a5f73c68a041a8727 /src/gpu/GrFragmentProcessor.cpp | |
parent | 319ba3d3a177498095c31696e0aec8b3af25f663 (diff) |
Stop tracking whether GrFragmentProcessors read their input
Change-Id: Id5338901978b97289798eaef873527597bd8dfd6
Reviewed-on: https://skia-review.googlesource.com/7414
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'src/gpu/GrFragmentProcessor.cpp')
-rw-r--r-- | src/gpu/GrFragmentProcessor.cpp | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/src/gpu/GrFragmentProcessor.cpp b/src/gpu/GrFragmentProcessor.cpp index 0518966911..0ad144a3be 100644 --- a/src/gpu/GrFragmentProcessor.cpp +++ b/src/gpu/GrFragmentProcessor.cpp @@ -181,7 +181,7 @@ sk_sp<GrFragmentProcessor> GrFragmentProcessor::MulOutputByInputUnpremulColor( void onComputeInvariantOutput(GrInvariantOutput* inout) const override { // TODO: Add a helper to GrInvariantOutput that handles multiplying by color with flags? if (!(inout->validFlags() & kA_GrColorComponentFlag)) { - inout->setToUnknown(GrInvariantOutput::kWill_ReadInput); + inout->setToUnknown(); return; } @@ -208,7 +208,7 @@ sk_sp<GrFragmentProcessor> GrFragmentProcessor::MulOutputByInputUnpremulColor( color |= SkMulDiv255Round(GrColorUnpackB(c0), GrColorUnpackB(c1)) << GrColor_SHIFT_B; } - inout->setToOther(commonFlags, color, GrInvariantOutput::kWill_ReadInput); + inout->setToOther(commonFlags, color); } }; if (!fp) { @@ -272,8 +272,7 @@ sk_sp<GrFragmentProcessor> GrFragmentProcessor::OverrideInput(sk_sp<GrFragmentPr } void onComputeInvariantOutput(GrInvariantOutput* inout) const override { - inout->setToOther(kRGBA_GrColorComponentFlags, fColor.toGrColor(), - GrInvariantOutput::kWillNot_ReadInput); + inout->setToOther(kRGBA_GrColorComponentFlags, fColor.toGrColor()); this->childProcessor(0).computeInvariantOutput(inout); } @@ -282,11 +281,7 @@ sk_sp<GrFragmentProcessor> GrFragmentProcessor::OverrideInput(sk_sp<GrFragmentPr GrInvariantOutput childOut(0x0, kNone_GrColorComponentFlags); fp->computeInvariantOutput(&childOut); - if (childOut.willUseInputColor()) { - return sk_sp<GrFragmentProcessor>(new ReplaceInputFragmentProcessor(std::move(fp), color)); - } else { - return fp; - } + return sk_sp<GrFragmentProcessor>(new ReplaceInputFragmentProcessor(std::move(fp), color)); } sk_sp<GrFragmentProcessor> GrFragmentProcessor::RunInSeries(sk_sp<GrFragmentProcessor>* series, @@ -354,7 +349,7 @@ sk_sp<GrFragmentProcessor> GrFragmentProcessor::RunInSeries(sk_sp<GrFragmentProc int firstIdx = info.firstEffectiveProcessorIndex(); cnt -= firstIdx; - if (firstIdx > 0 && info.inputColorIsUsed()) { + if (firstIdx > 0) { // See comment above - need to preserve 4f and color spaces during invariant processing. sk_sp<GrFragmentProcessor> colorFP(GrConstColorProcessor::Make( GrColor4f::FromGrColor(info.inputColorToFirstEffectiveProccesor()), @@ -366,9 +361,6 @@ sk_sp<GrFragmentProcessor> GrFragmentProcessor::RunInSeries(sk_sp<GrFragmentProc replacementSeries.emplace_back(std::move(series[firstIdx + i])); } series = replacementSeries.begin(); - } else { - series += firstIdx; - cnt -= firstIdx; } if (1 == cnt) { |