+ mImpl->mRenderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::ON );
+ }
+ }
+}
+
+const Vector4& Visual::Base::GetMixColor() const
+{
+ return mImpl->mMixColor;
+}
+
+Renderer Visual::Base::GetRenderer()
+{
+ return mImpl->mRenderer;
+}
+
+
+Property::Index Visual::Base::GetPropertyIndex( Property::Key key )
+{
+ Property::Index index = DevelHandle::GetPropertyIndex( mImpl->mRenderer, key );
+
+ if( index == Property::INVALID_INDEX )
+ {
+ // Is it a shader property?
+ Shader shader = mImpl->mRenderer.GetShader();
+ index = DevelHandle::GetPropertyIndex( shader, key );
+ if( index != Property::INVALID_INDEX )
+ {
+ // Yes - we should register it in the Renderer so it can be set / animated
+ // independently, as shaders are shared across multiple renderers.
+ std::string keyName;
+ Property::Index keyIndex( Property::INVALID_KEY );
+ if( key.type == Property::Key::INDEX )
+ {
+ keyName = shader.GetPropertyName( index );
+ keyIndex = key.indexKey;
+ }
+ else