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