diff options
author | Robert Phillips <robertphillips@google.com> | 2018-04-25 09:13:28 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-04-25 15:01:07 +0000 |
commit | 213ce18fc4937c2c523f723f6890788e8f15ed9c (patch) | |
tree | 50727cdcf33b6bba8a0f3faeab813e79bcc105eb /gm | |
parent | 7c09a31344b9ebafc9d19b47c755df7985cdfb73 (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.cpp | 11 |
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); } } |