X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fanimated-vector-image%2Fanimated-vector-image-visual.h;h=6196e39345a3992d27b4223abe40e543a76771a2;hb=b86fa7f2bedebe580b0e9a20f9b42cf2d628fafa;hp=0ff2cdd560ea684621f2dfb111c8834ef73ba1ba;hpb=0ab03fd31caa2fed67992675e3f2b69cc5b894c5;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.h b/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.h index 0ff2cdd..6196e39 100644 --- a/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.h +++ b/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_INTERNAL_ANIMATED_VECTOR_IMAGE_VISUAL_H /* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,14 +22,15 @@ #include #include #include -#include #include +#include // INTERNAL INCLUDES #include #include #include #include +#include namespace Dali { @@ -55,7 +56,7 @@ using AnimatedVectorImageVisualPtr = IntrusivePtr< AnimatedVectorImageVisual >; * | url | STRING | * */ -class AnimatedVectorImageVisual: public Visual::Base, public ConnectionTracker +class AnimatedVectorImageVisual: public Visual::Base, public ConnectionTracker, public VectorAnimationManager::LifecycleObserver { public: @@ -97,6 +98,12 @@ public: // from Visual */ void DoCreateInstancePropertyMap( Property::Map& map ) const override; +protected: // From VectorAnimationManager::LifecycleObserver: + /** + * @copydoc VectorAnimationManager::LifecycleObserver::VectorAnimationManagerDestroyed() + */ + void VectorAnimationManagerDestroyed() override; + protected: /** @@ -111,7 +118,7 @@ protected: /** * @brief A reference counted object may only be deleted by calling Unreference(). */ - virtual ~AnimatedVectorImageVisual(); + ~AnimatedVectorImageVisual() override; /** * @copydoc Visual::Base::DoSetProperties @@ -119,14 +126,14 @@ protected: void DoSetProperties( const Property::Map& propertyMap ) override; /** - * @copydoc Visual::Base::DoSetOnStage + * @copydoc Visual::Base::DoSetOnScene */ - void DoSetOnStage( Actor& actor ) override; + void DoSetOnScene( Actor& actor ) override; /** - * @copydoc Visual::Base::DoSetOffStage + * @copydoc Visual::Base::DoSetOffScene */ - void DoSetOffStage( Actor& actor ) override; + void DoSetOffScene( Actor& actor ) override; /** * @copydoc Visual::Base::OnSetTransform @@ -168,9 +175,14 @@ private: void SetVectorImageSize(); /** - * @brief Pause the animation. + * @brief Stop the animation. */ - void PauseAnimation(); + void StopAnimation(); + + /** + * @brief Trigger rasterization of the vector content. + */ + void TriggerVectorRasterization(); /** * @brief Callback when the world scale factor changes. @@ -192,6 +204,11 @@ private: */ void OnWindowVisibilityChanged( Window window, bool visible ); + /** + * @brief Callback when the event is processed. + */ + void OnProcessEvents(); + // Undefined AnimatedVectorImageVisual( const AnimatedVectorImageVisual& visual ) = delete; @@ -200,20 +217,18 @@ private: private: VisualUrl mUrl; + VectorAnimationTask::AnimationData mAnimationData; VectorAnimationTaskPtr mVectorAnimationTask; ImageVisualShaderFactory& mImageVisualShaderFactory; PropertyNotification mScaleNotification; PropertyNotification mSizeNotification; Vector2 mVisualSize; Vector2 mVisualScale; - Property::Array mPlayRange; WeakHandle< Actor > mPlacementActor; - int32_t mLoopCount; - uint32_t mResendFlag; - DevelAnimatedVectorImageVisual::Action::Type mActionStatus; - DevelImageVisual::StopBehavior::Type mStopBehavior; - DevelImageVisual::LoopingMode::Type mLoopingMode; + DevelImageVisual::PlayState::Type mPlayState; + CallbackBase* mEventCallback; // Not owned bool mRendererAdded; + bool mCoreShutdown; }; } // namespace Internal