Destroy Render::Texture immediate when texture removed 28/297728/3
authorEunki, Hong <eunkiki.hong@samsung.com>
Wed, 23 Aug 2023 08:56:07 +0000 (17:56 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Mon, 28 Aug 2023 01:22:28 +0000 (10:22 +0900)
Since there was some strange widget viewer issue occured when we
destory texture at PostRender timing,

Just Destroy Render::Texture immediatly.

Change-Id: I0821046cecdc450099afe233e15ee0b5a56630cd
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
dali/internal/render/common/render-manager.cpp

index c4ca1de..ded7afa 100644 (file)
@@ -288,6 +288,9 @@ void RenderManager::RemoveTexture(const Render::TextureKey& textureKey)
 
   if(iter != mImpl->textureContainer.End())
   {
+    // Destroy texture.
+    textureKey->Destroy();
+
     // Transfer ownership to the discard queue, this keeps the object alive, until the render-thread has finished with it
     mImpl->textureDiscardQueue.PushBack(mImpl->textureContainer.Release(iter));
   }
@@ -1132,10 +1135,6 @@ void RenderManager::PostRender()
   mImpl->updatedTextures.Clear();
 
   // Remove discarded textures after OnRenderFinished called
-  for(auto& iter : mImpl->textureDiscardQueue)
-  {
-    iter->Destroy();
-  }
   mImpl->textureDiscardQueue.Clear();
 
   mImpl->UpdateTrackers();