namespace
{
-const char * const RENDERER_TYPE("renderer-type");
-const char * const RENDERER_TYPE_VALUE("color-renderer");
-const char * const COLOR_NAME("blend-color");
-const char * const COLOR_UNIFORM_NAME("uBlendColor");
-
+const char * const RENDERER_TYPE("rendererType");
+const char * const RENDERER_TYPE_VALUE("colorRenderer");
+const char * const COLOR_NAME("blendColor");
const char* VERTEX_SHADER = DALI_COMPOSE_SHADER(
attribute mediump vec2 aPosition;\n
const char* FRAGMENT_SHADER = DALI_COMPOSE_SHADER(
uniform lowp vec4 uColor;\n
- uniform lowp vec4 uBlendColor;\n
+ uniform lowp vec4 blendColor;\n
\n
void main()\n
{\n
- gl_FragColor = uBlendColor*uColor;\n
+ gl_FragColor = blendColor*uColor;\n
}\n
);
}
{
}
-void ColorRenderer::DoInitialize( const Property::Map& propertyMap )
+void ColorRenderer::DoInitialize( Actor& actor, const Property::Map& propertyMap )
{
Property::Value* color = propertyMap.Find( COLOR_NAME );
if( !( color && color->Get(mBlendColor) ) )
//ToDo: renderer applies the offset
}
+void ColorRenderer::DoSetOnStage( Actor& actor )
+{
+ InitializeRenderer();
+}
+
void ColorRenderer::DoCreatePropertyMap( Property::Map& map ) const
{
map.Clear();
map.Insert( COLOR_NAME, mBlendColor );
}
-void ColorRenderer::InitializeRenderer( Renderer& renderer )
+void ColorRenderer::InitializeRenderer()
{
Geometry geometry = mFactoryCache.GetGeometry( RendererFactoryCache::QUAD_GEOMETRY );
if( !geometry )
mFactoryCache.SaveShader( RendererFactoryCache::COLOR_SHADER, shader );
}
- if( !renderer )
- {
- Material material = Material::New( shader );
- renderer = Renderer::New( geometry, material );
- }
- else
- {
- mImpl->mRenderer.SetGeometry( geometry );
- Material material = mImpl->mRenderer.GetMaterial();
- if( material )
- {
- material.SetShader( shader );
- }
- }
+ Material material = Material::New( shader );
+ mImpl->mRenderer = Renderer::New( geometry, material );
- mBlendColorIndex = renderer.RegisterProperty( COLOR_UNIFORM_NAME, mBlendColor );
+ mBlendColorIndex = mImpl->mRenderer.RegisterProperty( COLOR_NAME, mBlendColor );
if( mBlendColor.a < 1.f )
{
- renderer.GetMaterial().SetBlendMode( BlendingMode::ON );
+ mImpl->mRenderer.GetMaterial().SetBlendMode( BlendingMode::ON );
}
}
{
mBlendColor = color;
- if( mImpl->mIsOnStage )
+ if( mImpl->mRenderer )
{
(mImpl->mRenderer).SetProperty( mBlendColorIndex, color );
if( color.a < 1.f && (mImpl->mRenderer).GetMaterial().GetBlendMode() != BlendingMode::ON)