aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkColorFilterImageFilter.cpp
diff options
context:
space:
mode:
authorGravatar senorblanco <senorblanco@chromium.org>2016-04-01 16:41:10 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-04-01 16:41:10 -0700
commit6db0a7bdceb6be85721bfb0db8dea7fd27db5970 (patch)
treeb963703827c0a0b99e40b6a4d7e5a9afed9947a1 /src/effects/SkColorFilterImageFilter.cpp
parent2d9c6f81353597aebf5934547e5cba7a872196fb (diff)
Image filters: optimize crop rect application.
If a filter does not affect transparent black, there's no reason to allow the crop rect to expand beyond the optimal size determined by onFilterNodeBounds(). So don't enlarge the bounds unless the filter affects transparent black. In order to determine which filters affect transparent black, I've pulled the inverse of the canComputeFastBounds() logic into a non-recursive, affectsTransparentBlack() virtual, and left canComputeFastBounds() as a non-virtual, recursive function that calls it. BUG=599933 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1848953002 TBR=reed@google.com Review URL: https://codereview.chromium.org/1848953002
Diffstat (limited to 'src/effects/SkColorFilterImageFilter.cpp')
-rw-r--r--src/effects/SkColorFilterImageFilter.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/SkColorFilterImageFilter.cpp
index beb3138c84..a5904ea60b 100644
--- a/src/effects/SkColorFilterImageFilter.cpp
+++ b/src/effects/SkColorFilterImageFilter.cpp
@@ -106,11 +106,8 @@ bool SkColorFilterImageFilter::onIsColorFilterNode(SkColorFilter** filter) const
return false;
}
-bool SkColorFilterImageFilter::canComputeFastBounds() const {
- if (fColorFilter->affectsTransparentBlack()) {
- return false;
- }
- return INHERITED::canComputeFastBounds();
+bool SkColorFilterImageFilter::affectsTransparentBlack() const {
+ return fColorFilter->affectsTransparentBlack();
}
#ifndef SK_IGNORE_TO_STRING