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