diff options
author | 2015-03-05 14:47:29 -0800 | |
---|---|---|
committer | 2015-03-05 14:47:29 -0800 | |
commit | 5c518a862264225f0a378e4728e037966ddf4cc2 (patch) | |
tree | e3981640e6e603424f670a421bfb959455154ab1 /src/effects | |
parent | 4b31de8328bbf3ee789157ae1dc6fe7cc74c796a (diff) |
Revert of check for inputs before reporting asColorFilter (patchset #7 id:110001 of https://codereview.chromium.org/967833003/)
Reason for revert:
Need to suppress these for rebaselining, so reverting for now.
Regressions: Unexpected image-only failures (5)
css3/filters/effect-brightness-clamping-hw.html [ ImageOnlyFailure ]
css3/filters/effect-combined-hw.html [ ImageOnlyFailure ]
virtual/slimmingpaint/css3/filters/effect-brightness-clamping-hw.html [ ImageOnlyFailure ]
virtual/slimmingpaint/css3/filters/effect-combined-hw.html [ ImageOnlyFailure ]
Original issue's description:
> Use ComposeColorFilter in factory to collapse consecutive filters (when possible).
> Change asColorFilter to reflect its reliance on the new factory behavior.
>
> patch from issue 967143002 at patchset 80001 (http://crrev.com/967143002#ps80001)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/dac843bf046c2cd79fd955cb177aee241d7a4b0c
TBR=senorblanco@chromium.org,robertphillips@google.com,bsalomon@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/978923005
Diffstat (limited to 'src/effects')
-rwxr-xr-x | src/effects/SkColorFilterImageFilter.cpp | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/SkColorFilterImageFilter.cpp index 908f814b94..fdf6de7b76 100755 --- a/src/effects/SkColorFilterImageFilter.cpp +++ b/src/effects/SkColorFilterImageFilter.cpp @@ -21,12 +21,10 @@ SkColorFilterImageFilter* SkColorFilterImageFilter::Create(SkColorFilter* cf, return NULL; } - SkColorFilter* inputCF; - if (input && input->asColorFilter(&inputCF)) { - // This is an optimization, as it collapses the hierarchy by just combining the two - // colorfilters into a single one, which the new imagefilter will wrap. - SkAutoUnref autoUnref(inputCF); - SkAutoTUnref<SkColorFilter> newCF(SkColorFilter::CreateComposeFilter(cf, inputCF)); + SkColorFilter* inputColorFilter; + if (input && input->asColorFilter(&inputColorFilter)) { + SkAutoUnref autoUnref(inputColorFilter); + SkAutoTUnref<SkColorFilter> newCF(cf->newComposed(inputColorFilter)); if (newCF) { return SkNEW_ARGS(SkColorFilterImageFilter, (newCF, input->getInput(0), cropRect, 0)); } @@ -88,13 +86,10 @@ bool SkColorFilterImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& sourc } bool SkColorFilterImageFilter::asColorFilter(SkColorFilter** filter) const { - if (!this->cropRectIsSet()) { - SkASSERT(1 == this->countInputs()); - // Since our factory has already performed the collapse optimization, we can assert that - // if we have an input, it is *not* also a colorfilter. - SkASSERT(!this->getInput(0) || !this->getInput(0)->asColorFilter(NULL)); + if (!cropRectIsSet()) { if (filter) { - *filter = SkRef(fColorFilter); + *filter = fColorFilter; + fColorFilter->ref(); } return true; } |