X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Frenderers%2Fcontrol-renderer-impl.cpp;h=96f506639f10344bd3772375de63b0f2293d9522;hb=8991dd870badfb20693aa0eb1acf0aedbe88f99f;hp=990182ca681d364ffae7f0181028a5f07d49ee9b;hpb=de867fc73465d5681673638736f9b447303fef64;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 990182c..96f5066 100644 --- a/dali-toolkit/internal/controls/renderers/control-renderer-impl.cpp +++ b/dali-toolkit/internal/controls/renderers/control-renderer-impl.cpp @@ -56,7 +56,7 @@ ControlRenderer::~ControlRenderer() delete mImpl; } -void ControlRenderer::Initialize( const Property::Map& propertyMap ) +void ControlRenderer::Initialize( Actor& actor, const Property::Map& propertyMap ) { if( mImpl->mCustomShader ) { @@ -74,12 +74,7 @@ void ControlRenderer::Initialize( const Property::Map& propertyMap ) } } } - DoInitialize( propertyMap ); - - if( mImpl->mIsOnStage ) - { - InitializeRenderer( mImpl->mRenderer ); - } + DoInitialize( actor, propertyMap ); } void ControlRenderer::SetSize( const Vector2& size ) @@ -121,67 +116,24 @@ float ControlRenderer::GetDepthIndex() const return mImpl->mDepthIndex; } -void ControlRenderer::SetCachedRendererKey( const std::string& cachedRendererKey ) -{ - if( mImpl->mCachedRendererKey == cachedRendererKey ) - { - return; - } - if( !mImpl->mIsOnStage ) - { - mImpl->mCachedRendererKey = cachedRendererKey; - } - else - { - //clean the renderer from the cache since it may no longer be in use - mFactoryCache.CleanRendererCache( mImpl->mCachedRendererKey ); - - //add the new renderer - mImpl->mCachedRendererKey = cachedRendererKey; - if( !mImpl->mCachedRendererKey.empty() && !mImpl->mCustomShader ) - { - DALI_ASSERT_DEBUG( mImpl->mRenderer && "The control render is on stage but it doesn't have a valid renderer."); - mFactoryCache.SaveRenderer( mImpl->mCachedRendererKey, mImpl->mRenderer ); - } - } -} - void ControlRenderer::SetOnStage( Actor& actor ) { - if( !mImpl->mCachedRendererKey.empty() && !mImpl->mCustomShader ) - { - mImpl->mRenderer = mFactoryCache.GetRenderer( mImpl->mCachedRendererKey ); - if( !mImpl->mRenderer ) - { - InitializeRenderer( mImpl->mRenderer ); - mFactoryCache.SaveRenderer( mImpl->mCachedRendererKey, mImpl->mRenderer ); - } - } - - if( !mImpl->mRenderer ) - { - InitializeRenderer( mImpl->mRenderer ); - } + 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(); - //clean the renderer from the cache since it may no longer be in use - mFactoryCache.CleanRendererCache( mImpl->mCachedRendererKey ); - - mImpl->mIsOnStage = false; + mImpl->mFlags &= ~Impl::IS_ON_STAGE; } } @@ -202,6 +154,16 @@ void ControlRenderer::CreatePropertyMap( Property::Map& map ) const 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 } // namespace Toolkit