+ /**
+ * Get the Nth frame. If it's not ready, this will trigger the
+ * sending of FrameReady() when the image becomes ready.
+ */
+ virtual TextureSet Frame(uint32_t frameIndex) = 0;
+
+ /**
+ * Get the interval of Nth frame.
+ */
+ virtual uint32_t GetFrameInterval(uint32_t frameIndex) const = 0;
+
+ /**
+ * Get the current rendered frame index.
+ * If there isn't any loaded frame, returns -1.
+ */
+ virtual int32_t GetCurrentFrameIndex() const = 0;
+
+ /**
+ * Get total frame count of the animated image file.
+ */
+ virtual int32_t GetTotalFrameCount() const = 0;
+
+private:
+ /**
+ * Called before the texture manager is destroyed.
+ */
+ void TextureManagerDestroyed() final;
+