Cleaning up RendererFactory API
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / renderers / control-renderer-impl.cpp
index 42d9634..4155a9c 100644 (file)
@@ -56,24 +56,30 @@ ControlRenderer::~ControlRenderer()
   delete mImpl;
 }
 
-void ControlRenderer::Initialize( Actor& actor, const Property::Map& propertyMap )
+void ControlRenderer::SetCustomShader( const Property::Map& shaderMap )
 {
   if( mImpl->mCustomShader )
   {
-    mImpl->mCustomShader->SetPropertyMap( propertyMap );
+    mImpl->mCustomShader->SetPropertyMap( shaderMap );
   }
   else
   {
-    Property::Value* customShaderValue = propertyMap.Find( CUSTOM_SHADER );
-    if( customShaderValue )
+   mImpl->mCustomShader = new Impl::CustomShader( shaderMap );
+  }
+}
+
+void ControlRenderer::Initialize( Actor& actor, const Property::Map& propertyMap )
+{
+  Property::Value* customShaderValue = propertyMap.Find( CUSTOM_SHADER );
+  if( customShaderValue )
+  {
+    Property::Map shaderMap;
+    if( customShaderValue->Get( shaderMap ) )
     {
-      Property::Map customShader;
-      if( customShaderValue->Get( customShader ) )
-      {
-        mImpl->mCustomShader = new Impl::CustomShader( propertyMap );
-      }
+      SetCustomShader( shaderMap );
     }
   }
+
   DoInitialize( actor, propertyMap );
 }
 
@@ -137,7 +143,15 @@ void ControlRenderer::SetOffStage( Actor& actor )
 
 void ControlRenderer::EnablePreMultipliedAlpha( bool preMultipled )
 {
-  mImpl->mFlags |= Impl::IS_PREMULTIPLIED_ALPHA;
+  if(preMultipled)
+  {
+    mImpl->mFlags |= Impl::IS_PREMULTIPLIED_ALPHA;
+  }
+  else
+  {
+    mImpl->mFlags &= ~Impl::IS_PREMULTIPLIED_ALPHA;
+  }
+
   if( mImpl->mRenderer )
   {
     mImpl->mRenderer.SetProperty(Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, preMultipled);