aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
authorGravatar Robert Phillips <robertphillips@google.com>2018-05-09 11:53:49 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-05-09 17:05:45 +0000
commitcb8b5d1101d0a1bf7c78f3d1fec73afbe470994c (patch)
tree85a2bb9f55e5295ceea084bbbe9a30fa47efe43b /gm
parent20880784fb7301d497225e7e7e4a3cd1452b8aae (diff)
Fix clipping of SkMatrixImageFilter input
Bug: skia:7931 Change-Id: I3e424dcd5c0b04542976f4f59a5836e7c3079d06 Reviewed-on: https://skia-review.googlesource.com/127020 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'gm')
-rw-r--r--gm/resizeimagefilter.cpp66
1 files changed, 24 insertions, 42 deletions
diff --git a/gm/resizeimagefilter.cpp b/gm/resizeimagefilter.cpp
index fe7561626b..625e098c67 100644
--- a/gm/resizeimagefilter.cpp
+++ b/gm/resizeimagefilter.cpp
@@ -61,57 +61,39 @@ protected:
void onDraw(SkCanvas* canvas) override {
canvas->clear(SK_ColorBLACK);
- SkRect srcRect = SkRect::MakeWH(96, 96);
+ const SkRect srcRect = SkRect::MakeWH(96, 96);
+ const SkSize deviceSize = SkSize::Make(16, 16);
- SkSize deviceSize = SkSize::Make(16, 16);
- this->draw(canvas,
- srcRect,
- deviceSize,
- kNone_SkFilterQuality,
- nullptr);
+ this->draw(canvas, srcRect, deviceSize, kNone_SkFilterQuality, nullptr);
canvas->translate(srcRect.width() + SkIntToScalar(10), 0);
- this->draw(canvas,
- srcRect,
- deviceSize,
- kLow_SkFilterQuality,
- nullptr);
+ this->draw(canvas, srcRect, deviceSize, kLow_SkFilterQuality, nullptr);
canvas->translate(srcRect.width() + SkIntToScalar(10), 0);
- this->draw(canvas,
- srcRect,
- deviceSize,
- kMedium_SkFilterQuality,
- nullptr);
+ this->draw(canvas, srcRect, deviceSize, kMedium_SkFilterQuality, nullptr);
canvas->translate(srcRect.width() + SkIntToScalar(10), 0);
- this->draw(canvas,
- srcRect,
- deviceSize,
- kHigh_SkFilterQuality,
- nullptr);
-
- sk_sp<SkSurface> surface(SkSurface::MakeRasterN32Premul(16, 16));
- SkCanvas* surfaceCanvas = surface->getCanvas();
- surfaceCanvas->clear(0x000000);
+ this->draw(canvas, srcRect, deviceSize, kHigh_SkFilterQuality, nullptr);
+
{
- SkPaint paint;
- paint.setColor(0xFF00FF00);
- SkRect ovalRect = SkRect::MakeWH(16, 16);
- ovalRect.inset(SkIntToScalar(2)/3, SkIntToScalar(2)/3);
- surfaceCanvas->drawOval(ovalRect, paint);
+ sk_sp<SkSurface> surface(SkSurface::MakeRasterN32Premul(16, 16));
+ SkCanvas* surfaceCanvas = surface->getCanvas();
+ surfaceCanvas->clear(0x000000);
+ {
+ SkPaint paint;
+ paint.setColor(0xFF00FF00);
+ SkRect ovalRect = SkRect::MakeWH(16, 16);
+ ovalRect.inset(SkIntToScalar(2)/3, SkIntToScalar(2)/3);
+ surfaceCanvas->drawOval(ovalRect, paint);
+ }
+ sk_sp<SkImage> image(surface->makeImageSnapshot());
+ SkRect inRect = SkRect::MakeXYWH(-4, -4, 20, 20);
+ SkRect outRect = SkRect::MakeXYWH(-24, -24, 120, 120);
+ sk_sp<SkImageFilter> source(
+ SkImageSource::Make(std::move(image), inRect, outRect, kHigh_SkFilterQuality));
+ canvas->translate(srcRect.width() + SkIntToScalar(10), 0);
+ this->draw(canvas, srcRect, deviceSize, kHigh_SkFilterQuality, std::move(source));
}
- sk_sp<SkImage> image(surface->makeImageSnapshot());
- SkRect inRect = SkRect::MakeXYWH(-4, -4, 20, 20);
- SkRect outRect = SkRect::MakeXYWH(-24, -24, 120, 120);
- sk_sp<SkImageFilter> source(
- SkImageSource::Make(std::move(image), inRect, outRect, kHigh_SkFilterQuality));
- canvas->translate(srcRect.width() + SkIntToScalar(10), 0);
- this->draw(canvas,
- srcRect,
- deviceSize,
- kHigh_SkFilterQuality,
- std::move(source));
}
private: