#include "visual-base-impl.h"
// EXTERNAL HEADER
-#include <dali/public-api/common/dali-common.h>
+#include <dali-toolkit/public-api/dali-toolkit-common.h>
#include <dali/devel-api/object/handle-devel.h>
#include <dali/devel-api/scripting/enum-helper.h>
+#include <dali/devel-api/rendering/renderer-devel.h>
#include <dali/integration-api/debug.h>
//INTERNAL HEARDER
mImpl->mName = name;
}
-const std::string& Visual::Base::GetName()
+const std::string& Visual::Base::GetName() const
{
return mImpl->mName;
}
{
DoSetOffStage( actor );
mImpl->mMixColorIndex = Property::INVALID_INDEX;
- mImpl->mOpacityIndex = Property::INVALID_INDEX;
mImpl->mFlags &= ~Impl::IS_ON_STAGE;
}
}
mImpl->mRenderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::ON );
}
- if( mImpl->mOpacityIndex == Property::INVALID_INDEX )
- {
- mImpl->mOpacityIndex = DevelHandle::RegisterProperty(
- mImpl->mRenderer,
- Toolkit::Visual::Property::OPACITY,
- OPACITY,
- mImpl->mMixColor.a );
- }
+ mImpl->mRenderer.SetProperty( DevelRenderer::Property::OPACITY, mImpl->mMixColor.a );
float preMultipliedAlpha = 0.0f;
if( IsPreMultipliedAlphaEnabled() )
if( mImpl->mRenderer )
{
mImpl->mRenderer.SetProperty( mImpl->mMixColorIndex, Vector3(color) );
- mImpl->mRenderer.SetProperty( mImpl->mOpacityIndex, color.a );
+ mImpl->mRenderer.SetProperty( DevelRenderer::Property::OPACITY, color.a );
if( color.a < 1.f )
{
mImpl->mRenderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::ON );
return mImpl->mMixColor;
}
-void Visual::Base::AddResourceObserver( Visual::ResourceObserver& observer)
+void Visual::Base::AddEventObserver( Visual::EventObserver& observer)
{
- mImpl->mResourceObserver = &observer;
+ mImpl->mEventObserver = &observer;
}
-void Visual::Base::RemoveResourceObserver( Visual::ResourceObserver& observer )
+void Visual::Base::RemoveEventObserver( Visual::EventObserver& observer )
{
- mImpl->mResourceObserver = NULL;
+ mImpl->mEventObserver = NULL;
}
void Visual::Base::ResourceReady(Toolkit::Visual::ResourceStatus resourceStatus)
{
mImpl->mResourceStatus = resourceStatus;
- if( mImpl->mResourceObserver )
+ if( mImpl->mEventObserver )
{
// observer is currently a control impl
- mImpl->mResourceObserver->ResourceReady( *this );
+ mImpl->mEventObserver->ResourceReady( *this );
}
}
}
return mImpl->mFittingMode;
}
+Visual::Base& Visual::Base::GetVisualObject()
+{
+ return *this;
+}
+
Renderer Visual::Base::GetRenderer()
{
return mImpl->mRenderer;
Dali::Animation& transition,
Internal::TransitionData::Animator& animator )
{
- Property::Index index = mImpl->mOpacityIndex;
-
bool isOpaque = mImpl->mMixColor.a >= 1.0f;
- if( index != Property::INVALID_INDEX )
+ float initialOpacity;
+ if( animator.initialValue.Get( initialOpacity ) )
{
- float initialOpacity;
- if( animator.initialValue.Get( initialOpacity ) )
- {
- isOpaque = (initialOpacity >= 1.0f);
- }
-
- float targetOpacity;
- if( animator.targetValue.Get( targetOpacity ) )
- {
- mImpl->mMixColor.a = targetOpacity;
- }
+ isOpaque = (initialOpacity >= 1.0f);
+ }
- SetupTransition( transition, animator, index, animator.initialValue, animator.targetValue );
- SetupBlendMode( transition, isOpaque, animator.animate );
+ float targetOpacity;
+ if( animator.targetValue.Get( targetOpacity ) )
+ {
+ mImpl->mMixColor.a = targetOpacity;
}
+
+ SetupTransition( transition, animator, DevelRenderer::Property::OPACITY, animator.initialValue, animator.targetValue );
+ SetupBlendMode( transition, isOpaque, animator.animate );
}
void Visual::Base::AnimateRendererProperty(
SetupTransition( transition, animator, index, initialMixColor, targetMixColor );
if( animateOpacity )
{
- SetupTransition( transition, animator, mImpl->mOpacityIndex, initialOpacity, targetOpacity );
+ SetupTransition( transition, animator, DevelRenderer::Property::OPACITY, initialOpacity, targetOpacity );
SetupBlendMode( transition, isOpaque, animator.animate );
}
}
// turned off after the animation ends if the final value is opaque
if( ! isInitialOpaque || mImpl->mMixColor.a < 1.0f )
{
- mImpl->mRenderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::ON );
-
- if( animating == true && mImpl->mMixColor.a >= 1.0f )
+ if( mImpl->mRenderer )
{
- // When it becomes opaque, set the blend mode back to automatically
- if( ! mImpl->mBlendSlotDelegate )
+ mImpl->mRenderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::ON );
+
+ if( animating == true && mImpl->mMixColor.a >= 1.0f )
{
- mImpl->mBlendSlotDelegate = new SlotDelegate<Visual::Base>(this);
+ // When it becomes opaque, set the blend mode back to automatically
+ if( ! mImpl->mBlendSlotDelegate )
+ {
+ mImpl->mBlendSlotDelegate = new SlotDelegate<Visual::Base>(this);
+ }
+ transition.FinishedSignal().Connect( *(mImpl->mBlendSlotDelegate),
+ &Visual::Base::OnMixColorFinished );
}
- transition.FinishedSignal().Connect( *(mImpl->mBlendSlotDelegate),
- &Visual::Base::OnMixColorFinished );
}
}
}