aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
authorGravatar Robert Phillips <robertphillips@google.com>2018-04-25 09:13:28 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-04-25 15:01:07 +0000
commit213ce18fc4937c2c523f723f6890788e8f15ed9c (patch)
tree50727cdcf33b6bba8a0f3faeab813e79bcc105eb /gm
parent7c09a31344b9ebafc9d19b47c755df7985cdfb73 (diff)
Refactor GaussianBlur
One of the bounding boxes in this method goes haywire in DDL mode. Hopefully, this refactoring will make it easier to determine which one it is. Note that in this CL I tried to not change the existing behavior at all. Bug: skia:7765 Change-Id: Ie71b4c338fd7ecf4f4b8b4cb5609ef3e686eaef5 Reviewed-on: https://skia-review.googlesource.com/122956 Reviewed-by: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'gm')
-rw-r--r--gm/imageblurclampmode.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/gm/imageblurclampmode.cpp b/gm/imageblurclampmode.cpp
index 51109c5cff..74bed43b2b 100644
--- a/gm/imageblurclampmode.cpp
+++ b/gm/imageblurclampmode.cpp
@@ -61,29 +61,34 @@ protected:
void onDraw(SkCanvas* canvas) override {
sk_sp<SkImage> image(make_image(canvas));
+ sk_sp<SkImageFilter> filter;
canvas->translate(0, 30);
// Test different kernel size, including the one to launch 2d Gaussian
// blur.
for (auto sigma: { 0.6f, 3.0f, 8.0f, 20.0f }) {
canvas->save();
- sk_sp<SkImageFilter> filter(
- SkBlurImageFilter::Make(sigma, 0.0f, nullptr, nullptr,
- SkBlurImageFilter::kClamp_TileMode));
+
+ // x-only blur
+ filter = SkBlurImageFilter::Make(sigma, 0.0f, nullptr, nullptr,
+ SkBlurImageFilter::kClamp_TileMode);
draw_image(canvas, image, std::move(filter));
canvas->translate(image->width() + 20, 0);
+ // y-only blur
filter = SkBlurImageFilter::Make(0.0f, sigma, nullptr, nullptr,
SkBlurImageFilter::kClamp_TileMode);
draw_image(canvas, image, std::move(filter));
canvas->translate(image->width() + 20, 0);
+ // both directions
filter = SkBlurImageFilter::Make(sigma, sigma, nullptr, nullptr,
SkBlurImageFilter::kClamp_TileMode);
draw_image(canvas, image, std::move(filter));
canvas->translate(image->width() + 20, 0);
canvas->restore();
+
canvas->translate(0, image->height() + 20);
}
}