#include <dali/public-api/math/vector4.h>
#include <dali/public-api/object/weak-handle.h>
#include <dali/public-api/adaptor-framework/timer.h>
+#include <dali/devel-api/adaptor-framework/gif-loading.h>
// INTERNAL INCLUDES
#include <dali-toolkit/internal/visuals/visual-base-impl.h>
/**
* Adds the texture set to the renderer, and the renderer to the
* placement actor, and starts the frame timer
+ * @param[in] textureSet The texture set to apply
*/
void StartFirstFrame( TextureSet& textureSet );
TextureSet PrepareTextureSet();
/**
- * Load the gif image and pack the frames into atlas.
- * @return The atlas texture.
- */
- TextureSet PrepareAnimatedGifImage();
-
- /**
* Set the image size from the texture set
+ * @param[in] textureSet The texture set to get the size from
*/
void SetImageSize( TextureSet& textureSet );
/**
* Called when the next frame is ready.
+ * @param[in] textureSet the texture set to apply
*/
void FrameReady( TextureSet textureSet );
*/
bool DisplayNextFrame();
+ /**
+ * Initialize the gif variables.
+ * @param[in] imageUrl The url of the animated gif
+ */
+ void InitializeGif( const VisualUrl& imageUrl );
// Undefined
AnimatedImageVisual( const AnimatedImageVisual& animatedImageVisual );
WeakHandle<Actor> mPlacementActor;
// Variables for GIF player
- Dali::Vector<Vector4> mTextureRectContainer;
Dali::Vector<uint32_t> mFrameDelayContainer;
Vector4 mPixelArea;
VisualUrl mImageUrl;
+ std::unique_ptr<Dali::GifLoading> mGifLoading; // Only needed for animated gifs
uint32_t mCurrentFrameIndex; // Frame index into textureRects
// Variables for Multi-Image player
uint16_t mUrlIndex;
// Shared variables
+ uint32_t mFrameCount; // Number of frames
ImageDimensions mImageSize;
Dali::WrapMode::Type mWrapModeU:3;