void ControlRenderer::SetClipRect( const Rect<int>& clipRect )
{
- mImpl->mClipRect = clipRect;
}
void ControlRenderer::SetOffset( const Vector2& offset )
mImpl->mDepthIndex = index;
if( mImpl->mRenderer )
{
- mImpl->mRenderer.SetDepthIndex( mImpl->mDepthIndex );
+ mImpl->mRenderer.SetProperty( Renderer::Property::DEPTH_INDEX, mImpl->mDepthIndex );
}
}
{
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;
}
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