8#ifndef MSKPPlayer_DEFINED
9#define MSKPPlayer_DEFINED
15#include <unordered_map>
38 int numFrames()
const {
return static_cast<int>(fRootLayers.size()); }
100 LayerCmds() =
default;
101 LayerCmds(LayerCmds&&) =
default;
103 std::vector<std::unique_ptr<Cmd>> fCmds;
108 size_t fCurrCmd = -1;
114 void collectReferencedLayers(
const LayerCmds& layer, std::vector<int>*)
const;
117 using LayerMap = std::unordered_map<int, LayerCmds>;
119 using LayerStateMap = std::unordered_map<int, LayerState>;
127 class CmdRecordCanvas;
129 SkISize fMaxDimensions = {0, 0};
130 LayerMap fOffscreenLayers;
131 LayerStateMap fOffscreenLayerStates;
133 std::vector<LayerCmds> fRootLayers;
std::vector< int > layerIDs(int frame=-1) const
sk_sp< SkImage > layerSnapshot(int layerID) const
static std::unique_ptr< MSKPPlayer > Make(SkStreamSeekable *stream)
bool playFrame(SkCanvas *canvas, int i)
SkISize frameDimensions(int i) const
SkISize maxDimensions() const
void allocateLayers(SkCanvas *)