skia2/docs/examples/backdrop_blur_with_rrect_clip.cpp

25 lines
809 B
C++
Raw Normal View History

// 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