+
+ImageVisual::MaskingData::MaskingData( TextureManager& textureManager )
+: mTextureManager( textureManager ),
+ mAlphaMaskUrl(),
+ mAlphaMaskId( TextureManager::INVALID_TEXTURE_ID ),
+ mContentScaleFactor( 1.0f ),
+ mCropToMask( true )
+{
+}
+
+ImageVisual::MaskingData::~MaskingData()
+{
+ if( Stage::IsInstalled() )
+ {
+ // TextureManager could have been deleted before the actor that contains this
+ // ImageVisual is destroyed (e.g. due to stage shutdown). Ensure the stage
+ // is still valid before accessing texture manager.
+ if( mAlphaMaskId != TextureManager::INVALID_TEXTURE_ID )
+ {
+ mTextureManager.Remove( mAlphaMaskId );
+ }
+ }
+}
+
+void ImageVisual::MaskingData::SetImage( const std::string& maskUrl )
+{
+ mAlphaMaskUrl = maskUrl;
+ mAlphaMaskId = mTextureManager.RequestMaskLoad( mAlphaMaskUrl );
+}
+