X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Frenderers%2Fcontrol-renderer-impl.cpp;h=2009f8a860d91639d654a960ad2522885ac00a49;hb=5817a82647a2da08b91058659b70238fc7dbf2dd;hp=04792c58325be0466a7b4b5bf51e733c6c94f19e;hpb=4bf366c7c657eacb5cf150fa52e34263ca16218f;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 04792c5..2009f8a 100644 --- a/dali-toolkit/internal/controls/renderers/control-renderer-impl.cpp +++ b/dali-toolkit/internal/controls/renderers/control-renderer-impl.cpp @@ -94,7 +94,6 @@ void ControlRenderer::GetNaturalSize( Vector2& naturalSize ) const void ControlRenderer::SetClipRect( const Rect& clipRect ) { - mImpl->mClipRect = clipRect; } void ControlRenderer::SetOffset( const Vector2& offset ) @@ -107,7 +106,7 @@ void ControlRenderer::SetDepthIndex( float index ) mImpl->mDepthIndex = index; if( mImpl->mRenderer ) { - mImpl->mRenderer.SetDepthIndex( mImpl->mDepthIndex ); + mImpl->mRenderer.SetProperty( Renderer::Property::DEPTH_INDEX, mImpl->mDepthIndex ); } } @@ -120,7 +119,8 @@ void ControlRenderer::SetOnStage( Actor& actor ) { DoSetOnStage( actor ); - mImpl->mRenderer.SetDepthIndex( mImpl->mDepthIndex ); + mImpl->mRenderer.SetProperty(Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, IsPreMultipliedAlphaEnabled()); + mImpl->mRenderer.SetProperty( Renderer::Property::DEPTH_INDEX, mImpl->mDepthIndex ); actor.AddRenderer( mImpl->mRenderer ); mImpl->mFlags |= Impl::IS_ON_STAGE; } @@ -130,28 +130,51 @@ void ControlRenderer::SetOffStage( Actor& actor ) if( GetIsOnStage() ) { DoSetOffStage( actor ); - actor.RemoveRenderer( mImpl->mRenderer ); - mImpl->mRenderer.Reset(); mImpl->mFlags &= ~Impl::IS_ON_STAGE; } } +void ControlRenderer::EnablePreMultipliedAlpha( bool preMultipled ) +{ + if(preMultipled) + { + mImpl->mFlags |= Impl::IS_PREMULTIPLIED_ALPHA; + } + else + { + mImpl->mFlags &= ~Impl::IS_PREMULTIPLIED_ALPHA; + } + + if( mImpl->mRenderer ) + { + mImpl->mRenderer.SetProperty(Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, preMultipled); + } +} + +bool ControlRenderer::IsPreMultipliedAlphaEnabled() const +{ + return mImpl->mFlags & Impl::IS_PREMULTIPLIED_ALPHA; +} + 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