Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
SkPicturePlayback.h
Go to the documentation of this file.
1/*
2 * Copyright 2014 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkPicturePlayback_DEFINED
9#define SkPicturePlayback_DEFINED
10
11#include "include/core/SkM44.h"
15
16#include <cstddef>
17#include <cstdint>
18
19class SkCanvas;
20class SkPictureData;
21class SkReadBuffer;
22
23// The basic picture playback class replays the provided picture into a canvas.
25public:
27 : fPictureData(data)
28 , fCurOffset(0) {
29 }
30
32
33 // TODO: remove the curOp calls after cleaning up GrGatherDevice
34 // Return the ID of the operation currently being executed when playing
35 // back. 0 indicates no call is active.
36 size_t curOpID() const { return fCurOffset; }
37 void resetOpID() { fCurOffset = 0; }
38
39private:
40 const SkPictureData* fPictureData;
41
42 // The offset of the current operation when within the draw method
43 size_t fCurOffset;
44
45 void handleOp(SkReadBuffer* reader,
46 DrawType op,
47 uint32_t size,
48 SkCanvas* canvas,
49 const SkM44& initialMatrix);
50
51 class AutoResetOpID {
52 public:
53 AutoResetOpID(SkPicturePlayback* playback) : fPlayback(playback) { }
54 ~AutoResetOpID() {
55 if (fPlayback) {
56 fPlayback->resetOpID();
57 }
58 }
59
60 private:
61 SkPicturePlayback* fPlayback;
62 };
63
64 using INHERITED = SkNoncopyable;
65};
66
67#endif
Definition SkM44.h:150
SkNoncopyable()=default
size_t curOpID() const
SkPicturePlayback(const SkPictureData *data)
void draw(SkCanvas *canvas, SkPicture::AbortCallback *, SkReadBuffer *buffer)
static const uint8_t buffer[]