{
auto textureId = textureInfo.textureId;
mLoadQueue.PushBack( LoadQueueElement( textureId, observer) );
+
+ observer->DestructionSignal().Connect( this, &TextureManager::ObserverDestroyed );
}
void TextureManager::LoadTexture( TextureInfo& textureInfo, TextureUploadObserver* observer )
{
for( auto&& element : mLoadQueue )
{
+ if( !element.mObserver )
+ {
+ continue;
+ }
+
int cacheIndex = GetCacheIndexFromId( element.mTextureId );
if( cacheIndex != INVALID_CACHE_INDEX )
{
}
}
}
+
+ // Remove element from the LoadQueue
+ for( auto&& element : mLoadQueue )
+ {
+ if( element.mObserver == observer )
+ {
+ element.mObserver = nullptr;
+ }
+ }
}