8#ifndef SkAnimatedImage_DEFINED
9#define SkAnimatedImage_DEFINED
63 static constexpr int kFinished = -1;
71 int decodeNextFrame();
87 return fCurrentFrameDuration;
99 void setRepetitionCount(
int count);
105 return fRepetitionCount;
137 bool copyTo(Frame*)
const;
140 std::unique_ptr<SkAndroidCodec> fCodec;
144 const int fFrameCount;
149 int fCurrentFrameDuration;
151 Frame fDecodingFrame;
153 int fRepetitionCount;
154 int fRepetitionsCompleted;
159 int computeNextFrame(
int current,
bool* animationEnded);
165 bool simple()
const {
return fMatrix.
isIdentity() && !fPostProcess
166 && fCropRect == fDecodeInfo.
bounds(); }
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
static std::unique_ptr< SkEncoder > Make(SkWStream *dst, const SkPixmap *src, const SkYUVAPixmaps *srcYUVA, const SkColorSpace *srcYUVAColorSpace, const SkJpegEncoder::Options &options)
#define INHERITED(method,...)
int getFrameCount() const
int currentFrameDuration()
int getRepetitionCount() const
virtual SkRect onGetBounds()=0
virtual void onDraw(SkCanvas *)=0