- ResourceImage resourceImage = Dali::ResourceImage::New( url, mDesiredSize, mFittingMode, mSamplingMode );
- resourceImage.LoadingFinishedSignal().Connect( this, &ImageVisual::OnImageLoaded );
- textureSet = TextureSet::New();
- TextureSetImage( textureSet, 0u, resourceImage );
+ TextureManager& textureManager = mFactoryCache.GetTextureManager();
+ if( mAlphaMaskId == TextureManager::INVALID_TEXTURE_ID )
+ {
+ mTextureId = textureManager.RequestLoad( mImageUrl, mDesiredSize, mFittingMode,
+ mSamplingMode, TextureManager::NO_ATLAS, this );
+ }
+ else
+ {
+ mTextureId = textureManager.RequestLoad( mImageUrl, mAlphaMaskId, mDesiredSize,
+ mFittingMode, mSamplingMode,
+ TextureManager::NO_ATLAS, this );
+ }
+
+ TextureManager::LoadState loadState = textureManager.GetTextureState( mTextureId );
+
+ mTextureLoading = ( loadState == TextureManager::LOADING );
+
+ if( loadState == TextureManager::UPLOADED )
+ {
+ // UploadComplete has already been called - keep the same texture set
+ textureSet = textureManager.GetTextureSet(mTextureId);
+ }