CPU Alpha Masking for Animated Image Visual
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / visuals / animated-image / image-cache.cpp
index 1d0db6f..59f0520 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,23 +22,39 @@ namespace Toolkit
 {
 namespace Internal
 {
-
-ImageCache::ImageCache( TextureManager&                 textureManager,
-                        UrlList&                        urlList,
-                        ImageCache::FrameReadyObserver& observer,
-                        unsigned int                    batchSize )
-: mTextureManager( textureManager ),
-  mObserver( observer ),
-  mImageUrls( urlList ),
-  mBatchSize( batchSize ),
-  mUrlIndex(0u),
-  mWaitingForReadyFrame(false),
-  mRequestingLoad(false)
+ImageCache::ImageCache(TextureManager&                     textureManager,
+                       TextureManager::MaskingDataPointer& maskingData,
+                       ImageCache::FrameReadyObserver&     observer,
+                       uint32_t                            batchSize,
+                       uint32_t                            interval)
+: mTextureManager(textureManager),
+  mObserver(observer),
+  mMaskingData(maskingData),
+  mBatchSize(batchSize),
+  mInterval(interval),
+  mLoadState(TextureManager::LoadState::NOT_STARTED),
+  mRequestingLoad(false),
+  mTextureManagerAlive(true)
 {
+  mTextureManager.AddObserver(*this);
 }
 
 ImageCache::~ImageCache()
 {
+  if(mTextureManagerAlive)
+  {
+    mTextureManager.RemoveObserver(*this);
+  }
+}
+
+void ImageCache::TextureManagerDestroyed()
+{
+  mTextureManagerAlive = false;
+}
+
+void ImageCache::SetInterval(uint32_t interval)
+{
+  mInterval = interval;
 }
 
 } //namespace Internal