- // Ensure the blend mode is turned on if we are animating opacity, and
- // turned off after the animation ends if the final value is opaque
- if( ! isInitialOpaque || mImpl->mMixColor.a < 1.0f )
+ if(!mImpl->mRenderer)
+ {
+ Handle handle;
+ return Dali::Property(handle, Property::INVALID_INDEX);
+ }
+
+ // Mix color or opacity cases
+ if(key.type == Property::Key::INDEX)
+ {
+ if(key.indexKey == Toolkit::Visual::Property::MIX_COLOR || (mImpl->mType == Toolkit::Visual::COLOR && key.indexKey == ColorVisual::Property::MIX_COLOR) || (mImpl->mType == Toolkit::Visual::PRIMITIVE && key.indexKey == PrimitiveVisual::Property::MIX_COLOR))
+ {
+ return Dali::Property(mImpl->mRenderer, mImpl->mMixColorIndex);
+ }
+ else if(key.indexKey == Toolkit::Visual::Property::OPACITY)
+ {
+ return Dali::Property(mImpl->mRenderer, DevelRenderer::Property::OPACITY);
+ }
+ else if(key.indexKey == Toolkit::Visual::Transform::Property::OFFSET)
+ {
+ return Dali::Property(mImpl->mRenderer, OFFSET);
+ }
+ else if(key.indexKey == Toolkit::Visual::Transform::Property::SIZE)
+ {
+ return Dali::Property(mImpl->mRenderer, SIZE);
+ }
+ }
+ else
+ {
+ if(key.stringKey == MIX_COLOR)
+ {
+ return Dali::Property(mImpl->mRenderer, mImpl->mMixColorIndex);
+ }
+ else if(key.stringKey == OPACITY)
+ {
+ return Dali::Property(mImpl->mRenderer, DevelRenderer::Property::OPACITY);
+ }
+ else if(key.stringKey == OFFSET)
+ {
+ return Dali::Property(mImpl->mRenderer, OFFSET);
+ }
+ else if(key.stringKey == SIZE)
+ {
+ return Dali::Property(mImpl->mRenderer, SIZE);
+ }
+ }
+
+ // Other cases
+ Property::Index index = GetPropertyIndex(key);
+ if(index == Property::INVALID_INDEX)