+void Visual::Base::RegisterMixColor()
+{
+ // Only register if not already registered.
+ // (Color and Primitive visuals will register their own and save to this index)
+ if( mImpl->mMixColorIndex == Property::INVALID_INDEX )
+ {
+ mImpl->mMixColorIndex = DevelHandle::RegisterProperty(
+ mImpl->mRenderer,
+ Toolkit::DevelVisual::Property::MIX_COLOR,
+ MIX_COLOR,
+ mImpl->mMixColor );
+
+ if( mImpl->mMixColor.a < 1.f )
+ {
+ mImpl->mRenderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::ON );
+ }
+
+ float preMultipliedAlpha = 0.0f;
+ if( IsPreMultipliedAlphaEnabled() )
+ {
+ preMultipliedAlpha = 1.0f;
+ }
+ mImpl->mRenderer.RegisterProperty( "preMultipliedAlpha", preMultipliedAlpha );
+ }
+}
+
+void Visual::Base::SetMixColor( const Vector4& color )
+{
+ mImpl->mMixColor = color;
+
+ if( mImpl->mRenderer )
+ {
+ mImpl->mRenderer.SetProperty( mImpl->mMixColorIndex, color );
+ if( color.a < 1.f )
+ {
+ mImpl->mRenderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::ON );
+ }
+ }
+}
+
+const Vector4& Visual::Base::GetMixColor() const