+void VisualFactory::SetPreMultiplyOnLoad( bool preMultiply )
+{
+ if( mPreMultiplyOnLoad != preMultiply )
+ {
+ GetFactoryCache().SetPreMultiplyOnLoad( preMultiply );
+ }
+ mPreMultiplyOnLoad = preMultiply;
+}
+
+bool VisualFactory::GetPreMultiplyOnLoad() const
+{
+ return mPreMultiplyOnLoad;
+}
+
+Internal::TextureManager& VisualFactory::GetTextureManager()
+{
+ return GetFactoryCache().GetTextureManager();
+}
+
+Internal::VisualFactoryCache& VisualFactory::GetFactoryCache()
+{
+ if( !mFactoryCache )
+ {
+ mFactoryCache = std::unique_ptr<VisualFactoryCache>( new VisualFactoryCache( mPreMultiplyOnLoad ) );
+
+ std::string brokenImageUrl(BROKEN_IMAGE_URL);
+ Toolkit::StyleManager styleManager = Toolkit::StyleManager::Get();
+ if( styleManager )
+ {
+ Property::Map config = Toolkit::DevelStyleManager::GetConfigurations( styleManager );
+ config["brokenImageUrl"].Get( brokenImageUrl );
+ styleManager.StyleChangedSignal().Connect( mSlotDelegate, &VisualFactory::OnStyleChangedSignal );
+ }
+
+ mFactoryCache->SetBrokenImageUrl(brokenImageUrl);
+ }
+ return *mFactoryCache;
+}
+
+ImageVisualShaderFactory& VisualFactory::GetImageVisualShaderFactory()
+{
+ if( !mImageVisualShaderFactory )
+ {
+ mImageVisualShaderFactory = std::unique_ptr< ImageVisualShaderFactory >( new ImageVisualShaderFactory() );
+ }
+ return *mImageVisualShaderFactory;
+}
+