X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Frenderers%2Fcolor%2Fcolor-renderer.cpp;h=5039c81f4c183e373391f7abc483992f525969af;hp=4ca785dd9257df7b234e4c299b81ecf3a6955145;hb=8991dd870badfb20693aa0eb1acf0aedbe88f99f;hpb=21b42a30e8a6e94e5e523ebdaec055a91a38f046 diff --git a/dali-toolkit/internal/controls/renderers/color/color-renderer.cpp b/dali-toolkit/internal/controls/renderers/color/color-renderer.cpp index 4ca785d..5039c81 100644 --- a/dali-toolkit/internal/controls/renderers/color/color-renderer.cpp +++ b/dali-toolkit/internal/controls/renderers/color/color-renderer.cpp @@ -77,7 +77,7 @@ ColorRenderer::~ColorRenderer() { } -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) ) ) @@ -105,6 +105,11 @@ void ColorRenderer::SetOffset( const Vector2& offset ) //ToDo: renderer applies the offset } +void ColorRenderer::DoSetOnStage( Actor& actor ) +{ + InitializeRenderer(); +} + void ColorRenderer::DoCreatePropertyMap( Property::Map& map ) const { map.Clear(); @@ -112,7 +117,7 @@ void ColorRenderer::DoCreatePropertyMap( Property::Map& map ) const map.Insert( COLOR_NAME, mBlendColor ); } -void ColorRenderer::InitializeRenderer( Renderer& renderer ) +void ColorRenderer::InitializeRenderer() { Geometry geometry = mFactoryCache.GetGeometry( RendererFactoryCache::QUAD_GEOMETRY ); if( !geometry ) @@ -128,25 +133,13 @@ void ColorRenderer::InitializeRenderer( Renderer& renderer ) 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_UNIFORM_NAME, mBlendColor ); if( mBlendColor.a < 1.f ) { - renderer.GetMaterial().SetBlendMode( BlendingMode::ON ); + mImpl->mRenderer.GetMaterial().SetBlendMode( BlendingMode::ON ); } } @@ -154,7 +147,7 @@ void ColorRenderer::SetColor(const Vector4& color) { mBlendColor = color; - if( mImpl->mIsOnStage ) + if( mImpl->mRenderer ) { (mImpl->mRenderer).SetProperty( mBlendColorIndex, color ); if( color.a < 1.f && (mImpl->mRenderer).GetMaterial().GetBlendMode() != BlendingMode::ON)