Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
skia
src
core
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
"
12
#include "
include/core/SkPicture.h
"
13
#include "
include/private/base/SkNoncopyable.h
"
14
#include "
src/core/SkPictureFlat.h
"
15
16
#include <cstddef>
17
#include <cstdint>
18
19
class
SkCanvas
;
20
class
SkPictureData
;
21
class
SkReadBuffer
;
22
23
// The basic picture playback class replays the provided picture into a canvas.
24
class
SkPicturePlayback
final :
SkNoncopyable
{
25
public
:
26
SkPicturePlayback
(
const
SkPictureData
* data)
27
: fPictureData(data)
28
, fCurOffset(0) {
29
}
30
31
void
draw
(
SkCanvas
* canvas,
SkPicture::AbortCallback
*,
SkReadBuffer
*
buffer
);
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
39
private
:
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
DrawType
DrawType
Definition
AlternatingColorPatternBench.cpp:35
SkM44.h
SkNoncopyable.h
SkPictureFlat.h
SkPicture.h
SkCanvas
Definition
SkCanvas.h:106
SkM44
Definition
SkM44.h:150
SkNoncopyable
Definition
SkNoncopyable.h:18
SkNoncopyable::SkNoncopyable
SkNoncopyable()=default
SkPictureData
Definition
SkPictureData.h:87
SkPicturePlayback
Definition
SkPicturePlayback.h:24
SkPicturePlayback::curOpID
size_t curOpID() const
Definition
SkPicturePlayback.h:36
SkPicturePlayback::SkPicturePlayback
SkPicturePlayback(const SkPictureData *data)
Definition
SkPicturePlayback.h:26
SkPicturePlayback::draw
void draw(SkCanvas *canvas, SkPicture::AbortCallback *, SkReadBuffer *buffer)
Definition
SkPicturePlayback.cpp:60
SkPicturePlayback::resetOpID
void resetOpID()
Definition
SkPicturePlayback.h:37
SkPicture::AbortCallback
Definition
SkPicture.h:97
SkReadBuffer
Definition
SkReadBuffer.h:52
buffer
static const uint8_t buffer[]
Definition
fl_pixel_buffer_texture_test.cc:44
Generated on Fri Apr 26 2024 06:16:46 for Flutter Engine by
1.9.8