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=abdee4e993824f63bf9da3fae8fbaebd658667ac;hp=68164eaf8a94579dd998941c6dc90a2d00465677;hb=a2de9cf491172cd5da9dc9ed60b17683dab6d7bc;hpb=cde5ef8b9c6de8008865e29f3b1acab8f7cd2bbc diff --git a/dali-toolkit/internal/controls/renderers/color/color-renderer.cpp b/dali-toolkit/internal/controls/renderers/color/color-renderer.cpp index 68164ea..abdee4e 100644 --- a/dali-toolkit/internal/controls/renderers/color/color-renderer.cpp +++ b/dali-toolkit/internal/controls/renderers/color/color-renderer.cpp @@ -37,11 +37,9 @@ namespace Internal 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("color"); +const char * const COLOR_NAME("blendColor"); const char* VERTEX_SHADER = DALI_COMPOSE_SHADER( attribute mediump vec2 aPosition;\n @@ -58,17 +56,17 @@ const char* VERTEX_SHADER = DALI_COMPOSE_SHADER( 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 ); } -ColorRenderer::ColorRenderer() -: ControlRenderer(), +ColorRenderer::ColorRenderer( RendererFactoryCache& factoryCache ) +: ControlRenderer( factoryCache ), mBlendColorIndex( Property::INVALID_INDEX ) { } @@ -77,10 +75,8 @@ ColorRenderer::~ColorRenderer() { } -void ColorRenderer::DoInitialize( RendererFactoryCache& factoryCache, const Property::Map& propertyMap ) +void ColorRenderer::DoInitialize( Actor& actor, const Property::Map& propertyMap ) { - Initialize( factoryCache ); - Property::Value* color = propertyMap.Find( COLOR_NAME ); if( !( color && color->Get(mBlendColor) ) ) { @@ -107,6 +103,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(); @@ -114,29 +115,28 @@ void ColorRenderer::DoCreatePropertyMap( Property::Map& map ) const map.Insert( COLOR_NAME, mBlendColor ); } -void ColorRenderer::DoSetOnStage( Actor& actor ) +void ColorRenderer::InitializeRenderer() { - mBlendColorIndex = (mImpl->mRenderer).RegisterProperty( COLOR_UNIFORM_NAME, mBlendColor ); - if( mBlendColor.a < 1.f ) + Geometry geometry = mFactoryCache.GetGeometry( RendererFactoryCache::QUAD_GEOMETRY ); + if( !geometry ) { - (mImpl->mRenderer).GetMaterial().SetBlendMode( BlendingMode::ON ); + geometry = RendererFactoryCache::CreateQuadGeometry(); + mFactoryCache.SaveGeometry( RendererFactoryCache::QUAD_GEOMETRY, geometry ); } -} -void ColorRenderer::Initialize( RendererFactoryCache& factoryCache) -{ - mImpl->mGeometry = factoryCache.GetGeometry( RendererFactoryCache::QUAD_GEOMETRY ); - if( !(mImpl->mGeometry) ) + Shader shader = mFactoryCache.GetShader( RendererFactoryCache::COLOR_SHADER ); + if( !shader ) { - mImpl->mGeometry = RendererFactoryCache::CreateQuadGeometry(); - factoryCache.SaveGeometry( RendererFactoryCache::QUAD_GEOMETRY, mImpl->mGeometry ); + shader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); + mFactoryCache.SaveShader( RendererFactoryCache::COLOR_SHADER, shader ); } - mImpl->mShader = factoryCache.GetShader( RendererFactoryCache::COLOR_SHADER ); - if( !(mImpl->mShader) ) + mImpl->mRenderer = Renderer::New( geometry, shader ); + + mBlendColorIndex = mImpl->mRenderer.RegisterProperty( COLOR_NAME, mBlendColor ); + if( mBlendColor.a < 1.f ) { - mImpl->mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); - factoryCache.SaveShader( RendererFactoryCache::COLOR_SHADER, mImpl->mShader ); + mImpl->mRenderer.SetProperty( Renderer::Property::BLENDING_MODE, BlendingMode::ON ); } } @@ -144,12 +144,12 @@ 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) + if( color.a < 1.f ) { - (mImpl->mRenderer).GetMaterial().SetBlendMode( BlendingMode::ON ); + mImpl->mRenderer.SetProperty( Renderer::Property::BLENDING_MODE, BlendingMode::ON ); } } }