1cb93a386Sopenharmony_ci// Copyright 2020 Google LLC. 2cb93a386Sopenharmony_ci// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. 3cb93a386Sopenharmony_ci#include "tools/fiddle/examples.h" 4cb93a386Sopenharmony_ciREG_FIDDLE(backdrop_blur_with_rrect_clip, 512, 512, false, 3) { 5cb93a386Sopenharmony_civoid draw(SkCanvas* canvas) { 6cb93a386Sopenharmony_ci const SkRect r = SkRect::MakeXYWH(128, 128, 256, 256); 7cb93a386Sopenharmony_ci const SkRRect rr = SkRRect::MakeRectXY(r, 128, 128); 8cb93a386Sopenharmony_ci 9cb93a386Sopenharmony_ci canvas->drawImage(image, 0, 0); 10cb93a386Sopenharmony_ci 11cb93a386Sopenharmony_ci canvas->save(); 12cb93a386Sopenharmony_ci canvas->clipRRect(rr, true); 13cb93a386Sopenharmony_ci 14cb93a386Sopenharmony_ci sk_sp<SkImageFilter> filter = SkImageFilters::Blur(10, 10, nullptr); 15cb93a386Sopenharmony_ci SkPaint p; 16cb93a386Sopenharmony_ci p.setImageFilter(std::move(filter)); 17cb93a386Sopenharmony_ci 18cb93a386Sopenharmony_ci SkCanvas::SaveLayerRec slr(&r, &p, SkCanvas::kInitWithPrevious_SaveLayerFlag); 19cb93a386Sopenharmony_ci canvas->saveLayer(slr); 20cb93a386Sopenharmony_ci canvas->drawColor(0x40FFFFFF); 21cb93a386Sopenharmony_ci canvas->restore(); 22cb93a386Sopenharmony_ci canvas->restore(); 23cb93a386Sopenharmony_ci} 24cb93a386Sopenharmony_ci} // END FIDDLE 25