aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
authorGravatar senorblanco <senorblanco@chromium.org>2016-05-18 07:00:08 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-05-18 07:00:08 -0700
commit3949971e8d29345ee89461aec1ef25734ffc03f5 (patch)
treecd6d565733b3d2ace762a6af783ac5ffdbecabd8 /gm
parentd46e5859863c7401ceb90f1a62086865be957443 (diff)
Image filters: fix filtering of transparent black in CFIF.
SkColorFilterImageFilter has a codepath to filter transparent black regions outside of the input image. However, it was treating the exterior as opaque black, rather than trasparent black. Note: the results of imagefiltercropexpand GM will change, as it was tweaked a bit to show this bug. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1978363002 NOTREECHECKS=true NOTRY=true NOPRESUBMIT=true Review-Url: https://codereview.chromium.org/1978363002
Diffstat (limited to 'gm')
-rw-r--r--gm/imagefilterscropexpand.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/gm/imagefilterscropexpand.cpp b/gm/imagefilterscropexpand.cpp
index 4ce845d9ee..9b9f7ee817 100644
--- a/gm/imagefilterscropexpand.cpp
+++ b/gm/imagefilterscropexpand.cpp
@@ -50,11 +50,13 @@ protected:
sk_sp<SkImageFilter> gradientCircleSource(SkImageSource::Make(std::move(gradientCircle)));
sk_sp<SkImageFilter> noopCropped(SkOffsetImageFilter::Make(0, 0, nullptr, &cropRect));
- SkScalar sk255 = SkIntToScalar(255);
+ // This color matrix saturates the green component but only partly increases the opacity.
+ // For the opaque checkerboard, the opacity boost doesn't matter but it does impact the
+ // area outside the checkerboard.
SkScalar matrix[20] = { 1, 0, 0, 0, 0,
- 0, 1, 0, 0, sk255,
+ 0, 1, 0, 0, 255,
0, 0, 1, 0, 0,
- 0, 0, 0, 0, sk255 };
+ 0, 0, 0, 1, 32 };
sk_sp<SkColorFilter> cfAlphaTrans(SkColorFilter::MakeMatrixFilterRowMajor255(matrix));
SkRect r = SkRect::MakeWH(SkIntToScalar(64), SkIntToScalar(64));