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=56ed920dadbf2b2967ac45fb5a9bded6 5REG_FIDDLE(Picture_AbortCallback_abort, 256, 256, false, 0) { 6class JustOneDraw : public SkPicture::AbortCallback { 7public: 8 bool abort() override { return fCalls++ > 0; } 9private: 10 int fCalls = 0; 11}; 12 13void draw(SkCanvas* canvas) { 14 SkPictureRecorder recorder; 15 SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256}); 16 SkPaint paint; 17 pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint); 18 paint.setColor(SK_ColorWHITE); 19 pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint); 20 sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture(); 21 JustOneDraw callback; 22 picture->playback(canvas, &callback); 23} 24} // END FIDDLE 25