X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Frenderers%2Fcontrol-renderer-impl.cpp;h=7ac24904251a4b86597d3a3041def8b6a1600bf6;hb=f74093e9d07e87fd80ab4c336302800be764b9f9;hp=91343a4baf3a7d6e7f69b0459d89dd9bf8073695;hpb=5734cf75b7a9c52fd823eac303f5c0c75167059a;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/renderers/control-renderer-impl.cpp b/dali-toolkit/internal/controls/renderers/control-renderer-impl.cpp index 91343a4..7ac2490 100644 --- a/dali-toolkit/internal/controls/renderers/control-renderer-impl.cpp +++ b/dali-toolkit/internal/controls/renderers/control-renderer-impl.cpp @@ -29,10 +29,10 @@ namespace { //custom shader const char * const CUSTOM_SHADER( "shader" ); -const char * const CUSTOM_VERTEX_SHADER( "vertex-shader" ); -const char * const CUSTOM_FRAGMENT_SHADER( "fragment-shader" ); -const char * const CUSTOM_SUBDIVIDE_GRID_X( "subdivide-grid-x" ); -const char * const CUSTOM_SUBDIVIDE_GRID_Y( "subdivide-grid-y" ); +const char * const CUSTOM_VERTEX_SHADER( "vertexShader" ); +const char * const CUSTOM_FRAGMENT_SHADER( "fragmentShader" ); +const char * const CUSTOM_SUBDIVIDE_GRID_X( "subdivideGridX" ); +const char * const CUSTOM_SUBDIVIDE_GRID_Y( "subdivideGridY" ); const char * const CUSTOM_SHADER_HINTS( "hints" ); ///< type INTEGER; (bitfield) values from enum Shader::Hints } @@ -45,8 +45,9 @@ namespace Toolkit namespace Internal { -ControlRenderer::ControlRenderer() -: mImpl( new Impl() ) +ControlRenderer::ControlRenderer( RendererFactoryCache& factoryCache ) +: mImpl( new Impl() ), + mFactoryCache( factoryCache ) { } @@ -55,7 +56,7 @@ ControlRenderer::~ControlRenderer() delete mImpl; } -void ControlRenderer::Initialize( RendererFactoryCache& factoryCache, const Property::Map& propertyMap ) +void ControlRenderer::Initialize( Actor& actor, const Property::Map& propertyMap ) { if( mImpl->mCustomShader ) { @@ -73,7 +74,7 @@ void ControlRenderer::Initialize( RendererFactoryCache& factoryCache, const Prop } } } - DoInitialize( factoryCache, propertyMap ); + DoInitialize( actor, propertyMap ); } void ControlRenderer::SetSize( const Vector2& size ) @@ -117,25 +118,20 @@ float ControlRenderer::GetDepthIndex() const void ControlRenderer::SetOnStage( Actor& actor ) { - Material material = Material::New( mImpl->mShader ); - mImpl->mRenderer = Renderer::New( mImpl->mGeometry, material ); + DoSetOnStage( actor ); + mImpl->mRenderer.SetDepthIndex( mImpl->mDepthIndex ); actor.AddRenderer( mImpl->mRenderer ); - mImpl->mIsOnStage = true; - - DoSetOnStage( actor ); + mImpl->mFlags |= Impl::IS_ON_STAGE; } void ControlRenderer::SetOffStage( Actor& actor ) { - if( mImpl->mIsOnStage ) + if( GetIsOnStage() ) { DoSetOffStage( actor ); - actor.RemoveRenderer( mImpl->mRenderer ); - mImpl->mRenderer.Reset(); - - mImpl->mIsOnStage = false; + mImpl->mFlags &= ~Impl::IS_ON_STAGE; } } @@ -145,15 +141,28 @@ void ControlRenderer::DoSetOnStage( Actor& actor ) void ControlRenderer::DoSetOffStage( Actor& actor ) { + actor.RemoveRenderer( mImpl->mRenderer ); + mImpl->mRenderer.Reset(); } void ControlRenderer::CreatePropertyMap( Property::Map& map ) const { + DoCreatePropertyMap( map ); + if( mImpl->mCustomShader ) { mImpl->mCustomShader->CreatePropertyMap( map ); } - DoCreatePropertyMap( map ); +} + +bool ControlRenderer::GetIsOnStage() const +{ + return mImpl->mFlags & Impl::IS_ON_STAGE; +} + +bool ControlRenderer::GetIsFromCache() const +{ + return mImpl->mFlags & Impl::IS_FROM_CACHE; } } // namespace Internal