| // Copyright 2020 Google LLC. |
| // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. |
| #include "tools/fiddle/examples.h" |
| REG_FIDDLE(backdrop_blur_with_rrect_clip, 512, 512, false, 3) { |
| void draw(SkCanvas* canvas) { |
| const SkRect r = SkRect::MakeXYWH(128, 128, 256, 256); |
| const SkRRect rr = SkRRect::MakeRectXY(r, 128, 128); |
| |
| canvas->drawImage(image, 0, 0); |
| |
| canvas->save(); |
| canvas->clipRRect(rr, true); |
| |
| sk_sp<SkImageFilter> filter = SkImageFilters::Blur(10, 10, nullptr); |
| SkPaint p; |
| p.setImageFilter(std::move(filter)); |
| |
| SkCanvas::SaveLayerRec slr(&r, &p, SkCanvas::kInitWithPrevious_SaveLayerFlag); |
| canvas->saveLayer(slr); |
| canvas->drawColor(0x40FFFFFF); |
| canvas->restore(); |
| canvas->restore(); |
| } |
| } // END FIDDLE |