diff options
-rw-r--r-- | gm/imagefilterscropexpand.cpp | 8 | ||||
-rw-r--r-- | src/effects/SkColorFilterImageFilter.cpp | 2 |
2 files changed, 7 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)); diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/SkColorFilterImageFilter.cpp index 8d412cc2f5..63d5942f6a 100644 --- a/src/effects/SkColorFilterImageFilter.cpp +++ b/src/effects/SkColorFilterImageFilter.cpp @@ -98,7 +98,9 @@ sk_sp<SkSpecialImage> SkColorFilterImageFilter::onFilterImage(SkSpecialImage* so if (fColorFilter->affectsTransparentBlack()) { // The subsequent input->draw() call may not fill the entire canvas. For filters which // affect transparent black, ensure that the filter is applied everywhere. + paint.setColor(SK_ColorTRANSPARENT); canvas->drawPaint(paint); + paint.setColor(SK_ColorBLACK); } else { canvas->clear(0x0); } |