TextureSet RollingImageCache::NextFrame()
{
TextureSet textureSet;
-
- ImageFrame imageFrame = mQueue.PopFront();
- mTextureManager.Remove( mImageUrls[ imageFrame.mUrlIndex ].mTextureId, this );
- mImageUrls[ imageFrame.mUrlIndex ].mTextureId = TextureManager::INVALID_TEXTURE_ID;
-
- LoadBatch();
-
- if( IsFrontReady() == true )
+ if(!mQueue.IsEmpty())
{
- textureSet = GetFrontTextureSet();
+ uint32_t frameIndex = mQueue.Front().mUrlIndex;
+ if(IsFrontReady())
+ {
+ frameIndex = (frameIndex + 1) % mImageUrls.size();
+ }
+ textureSet = Frame(frameIndex);
}
else
{
- mWaitingForReadyFrame = true;
+ DALI_LOG_ERROR("Cache is empty.");
}
return textureSet;
}
+uint32_t RollingImageCache::GetFrameInterval( uint32_t frameIndex ) const
+{
+ return 0u;
+}
+
+int32_t RollingImageCache::GetCurrentFrameIndex() const
+{
+ if(mQueue.IsEmpty())
+ {
+ return -1;
+ }
+ return mQueue.Front().mUrlIndex;
+}
+
bool RollingImageCache::IsFrontReady() const
{
return ( !mQueue.IsEmpty() && mQueue.Front().mReady );