X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fvisual-base-impl.cpp;h=1ae64111516887991ae61806ee68a1d29d49db0a;hp=1cf6da796a3a10bb42af63717914d02e22eefcb1;hb=59314022f6789147a47a8b098433e211b6185625;hpb=a0a28eb90260b017d231b0a2ff993825405fd058 diff --git a/dali-toolkit/internal/visuals/visual-base-impl.cpp b/dali-toolkit/internal/visuals/visual-base-impl.cpp index 1cf6da7..1ae6411 100755 --- a/dali-toolkit/internal/visuals/visual-base-impl.cpp +++ b/dali-toolkit/internal/visuals/visual-base-impl.cpp @@ -19,9 +19,10 @@ #include "visual-base-impl.h" // EXTERNAL HEADER -#include +#include #include #include +#include #include //INTERNAL HEARDER @@ -55,10 +56,10 @@ namespace Internal namespace { -DALI_ENUM_TO_STRING_TABLE_BEGIN( FITTING_MODE ) +DALI_ENUM_TO_STRING_TABLE_BEGIN( VISUAL_FITTING_MODE ) DALI_ENUM_TO_STRING_WITH_SCOPE( Visual::FittingMode, FIT_KEEP_ASPECT_RATIO ) DALI_ENUM_TO_STRING_WITH_SCOPE( Visual::FittingMode, FILL ) -DALI_ENUM_TO_STRING_TABLE_END( FITTING_MODE ) +DALI_ENUM_TO_STRING_TABLE_END( VISUAL_FITTING_MODE ) } // namespace @@ -116,9 +117,9 @@ void Visual::Base::SetProperties( const Property::Map& propertyMap ) { matchKey = Property::Key( Toolkit::Visual::Property::OPACITY ); } - else if( matchKey == FITTING_MODE ) + else if( matchKey == VISUAL_FITTING_MODE ) { - matchKey = Property::Key( Toolkit::DevelVisual::Property::FITTING_MODE ); + matchKey = Property::Key( Toolkit::DevelVisual::Property::VISUAL_FITTING_MODE ); } } @@ -181,10 +182,10 @@ void Visual::Base::SetProperties( const Property::Map& propertyMap ) } break; } - case Toolkit::DevelVisual::Property::FITTING_MODE: + case Toolkit::DevelVisual::Property::VISUAL_FITTING_MODE: { Scripting::GetEnumerationProperty< Visual::FittingMode >( - value, FITTING_MODE_TABLE, FITTING_MODE_TABLE_COUNT, mImpl->mFittingMode ); + value, VISUAL_FITTING_MODE_TABLE, VISUAL_FITTING_MODE_TABLE_COUNT, mImpl->mFittingMode ); break; } } @@ -213,7 +214,7 @@ void Visual::Base::SetName( const std::string& name ) mImpl->mName = name; } -const std::string& Visual::Base::GetName() +const std::string& Visual::Base::GetName() const { return mImpl->mName; } @@ -291,7 +292,6 @@ void Visual::Base::SetOffStage( Actor& actor ) { DoSetOffStage( actor ); mImpl->mMixColorIndex = Property::INVALID_INDEX; - mImpl->mOpacityIndex = Property::INVALID_INDEX; mImpl->mFlags &= ~Impl::IS_ON_STAGE; } } @@ -318,8 +318,8 @@ void Visual::Base::CreatePropertyMap( Property::Map& map ) const map.Insert( Toolkit::Visual::Property::OPACITY, mImpl->mMixColor.a ); auto fittingModeString = Scripting::GetLinearEnumerationName< FittingMode >( - mImpl->mFittingMode, FITTING_MODE_TABLE, FITTING_MODE_TABLE_COUNT ); - map.Insert( Toolkit::DevelVisual::Property::FITTING_MODE, fittingModeString ); + mImpl->mFittingMode, VISUAL_FITTING_MODE_TABLE, VISUAL_FITTING_MODE_TABLE_COUNT ); + map.Insert( Toolkit::DevelVisual::Property::VISUAL_FITTING_MODE, fittingModeString ); } void Visual::Base::CreateInstancePropertyMap( Property::Map& map ) const @@ -393,14 +393,7 @@ void Visual::Base::RegisterMixColor() 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() ) @@ -417,7 +410,7 @@ void Visual::Base::SetMixColor( const Vector4& color ) 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 ); @@ -481,6 +474,11 @@ Visual::FittingMode Visual::Base::GetFittingMode() const return mImpl->mFittingMode; } +Visual::Base& Visual::Base::GetVisualObject() +{ + return *this; +} + Renderer Visual::Base::GetRenderer() { return mImpl->mRenderer; @@ -600,27 +598,22 @@ void Visual::Base::AnimateOpacityProperty( 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( @@ -699,7 +692,7 @@ void Visual::Base::AnimateMixColorProperty( 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 ); } } @@ -711,17 +704,20 @@ void Visual::Base::SetupBlendMode( Animation& transition, bool isInitialOpaque, // 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(this); + // When it becomes opaque, set the blend mode back to automatically + if( ! mImpl->mBlendSlotDelegate ) + { + mImpl->mBlendSlotDelegate = new SlotDelegate(this); + } + transition.FinishedSignal().Connect( *(mImpl->mBlendSlotDelegate), + &Visual::Base::OnMixColorFinished ); } - transition.FinishedSignal().Connect( *(mImpl->mBlendSlotDelegate), - &Visual::Base::OnMixColorFinished ); } } }