projects
/
platform
/
core
/
uifw
/
dali-toolkit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge "Blend Equation Advanced Supporting" into devel/master
[platform/core/uifw/dali-toolkit.git]
/
dali-toolkit
/
internal
/
visuals
/
texture-manager-impl.cpp
diff --git
a/dali-toolkit/internal/visuals/texture-manager-impl.cpp
b/dali-toolkit/internal/visuals/texture-manager-impl.cpp
index
64bbb5b
..
5e0b506
100644
(file)
--- a/
dali-toolkit/internal/visuals/texture-manager-impl.cpp
+++ b/
dali-toolkit/internal/visuals/texture-manager-impl.cpp
@@
-819,6
+819,8
@@
void TextureManager::QueueLoadTexture( TextureInfo& textureInfo, TextureUploadOb
{
auto textureId = textureInfo.textureId;
mLoadQueue.PushBack( LoadQueueElement( textureId, observer) );
{
auto textureId = textureInfo.textureId;
mLoadQueue.PushBack( LoadQueueElement( textureId, observer) );
+
+ observer->DestructionSignal().Connect( this, &TextureManager::ObserverDestroyed );
}
void TextureManager::LoadTexture( TextureInfo& textureInfo, TextureUploadObserver* observer )
}
void TextureManager::LoadTexture( TextureInfo& textureInfo, TextureUploadObserver* observer )
@@
-853,6
+855,11
@@
void TextureManager::ProcessQueuedTextures()
{
for( auto&& element : mLoadQueue )
{
{
for( auto&& element : mLoadQueue )
{
+ if( !element.mObserver )
+ {
+ continue;
+ }
+
int cacheIndex = GetCacheIndexFromId( element.mTextureId );
if( cacheIndex != INVALID_CACHE_INDEX )
{
int cacheIndex = GetCacheIndexFromId( element.mTextureId );
if( cacheIndex != INVALID_CACHE_INDEX )
{
@@
-1312,6
+1319,15
@@
void TextureManager::ObserverDestroyed( TextureUploadObserver* observer )
}
}
}
}
}
}
+
+ // Remove element from the LoadQueue
+ for( auto&& element : mLoadQueue )
+ {
+ if( element.mObserver == observer )
+ {
+ element.mObserver = nullptr;
+ }
+ }
}
}