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 // HASH=0d2cbf82f490ffb180e0b4531afa232c
5 REG_FIDDLE(Picture_MakePlaceholder, 256, 256, false, 0) {
6 class MyCanvas : public SkCanvas {
7 public:
MyCanvas(SkCanvas * c)8     MyCanvas(SkCanvas* c) : canvas(c) {}
onDrawPicture(const SkPicture * picture,const SkMatrix *,const SkPaint *)9         void onDrawPicture(const SkPicture* picture, const SkMatrix* ,
10                                const SkPaint* ) override {
11         const SkRect rect = picture->cullRect();
12         SkPaint redPaint;
13         redPaint.setColor(SK_ColorRED);
14         canvas->drawRect(rect, redPaint);
15    }
16    SkCanvas* canvas;
17 };
18 
draw(SkCanvas * canvas)19 void draw(SkCanvas* canvas) {
20     SkPictureRecorder recorder;
21     SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
22     sk_sp<SkPicture> placeholder = SkPicture::MakePlaceholder({10, 40, 80, 110});
23     pictureCanvas->drawPicture(placeholder);
24     sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
25     MyCanvas myCanvas(canvas);
26     myCanvas.drawPicture(picture);
27 }
28 }  // END FIDDLE
29