xref: /aosp_15_r20/external/skia/docs/examples/Canvas_destructor.cpp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1 // Copyright 2019 Google LLC.
2 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
3 #include "tools/fiddle/examples.h"
4 REG_FIDDLE(Canvas_destructor, 256, 256, false, 0) {
draw(SkCanvas * canvas)5 void draw(SkCanvas* canvas) {
6     SkBitmap bitmap;
7     bitmap.allocPixels(SkImageInfo::MakeN32Premul(200, 200));
8     {
9         SkCanvas offscreen(bitmap);
10         SkPaint paint;
11         SkFont font(fontMgr->matchFamilyStyle(nullptr, {}), 100);
12         offscreen.drawString("ABC", 20, 160, font, paint);
13         SkRect layerBounds = SkRect::MakeXYWH(32, 32, 192, 192);
14         offscreen.saveLayerAlpha(&layerBounds, 128);
15         offscreen.clear(SK_ColorWHITE);
16         offscreen.drawString("DEF", 20, 160, font, paint);
17     }
18     canvas->drawImage(bitmap.asImage(), 0, 0);
19 }
20 }  // END FIDDLE
21