[Tizen] Implement partial update
[platform/core/uifw/dali-core.git] / dali / internal / event / actors / actor-impl.h
index 0a78f08..b233dec 100755 (executable)
@@ -54,6 +54,7 @@ class ActorGestureData;
 class Animation;
 class RenderTask;
 class Renderer;
+class Scene;
 
 typedef std::vector< ActorPtr > ActorContainer;
 typedef ActorContainer::iterator ActorIter;
@@ -469,16 +470,6 @@ public:
   const Vector3& GetCurrentWorldPosition() const;
 
   /**
-   * @copydoc Dali::Actor::SetPositionInheritanceMode()
-   */
-  void SetPositionInheritanceMode( PositionInheritanceMode mode );
-
-  /**
-   * @copydoc Dali::Actor::GetPositionInheritanceMode()
-   */
-  PositionInheritanceMode GetPositionInheritanceMode() const;
-
-  /**
    * @copydoc Dali::Actor::SetInheritPosition()
    */
   void SetInheritPosition( bool inherit );
@@ -1230,6 +1221,18 @@ public:
   float GetMaximumSize( Dimension::Type dimension ) const;
 
   /**
+   * @brief Sets the update size hint of an actor for partial update.
+   * @param [in] updateSizeHint The new updateSizeHint.
+   */
+  void SetUpdateSizeHint( const Vector2& updateSizeHint );
+
+  /**
+   * @brief Return the update size hint of actor
+   * @return Return the update size hint
+   */
+  const Vector2 GetUpdateSizeHint() const;
+
+  /**
    * @copydoc Dali::Actor::AddRenderer()
    */
   uint32_t AddRenderer( Renderer& renderer );
@@ -1662,16 +1665,6 @@ public:
   virtual void OnNotifyDefaultPropertyAnimation( Animation& animation, Property::Index index, const Property::Value& value, Animation::Type animationType );
 
   /**
-   * @copydoc Dali::Internal::Object::GetPropertyOwner()
-   */
-  virtual const SceneGraph::PropertyOwner* GetPropertyOwner() const;
-
-  /**
-   * @copydoc Dali::Internal::Object::GetSceneObject()
-   */
-  virtual const SceneGraph::PropertyOwner* GetSceneObject() const;
-
-  /**
    * @copydoc Dali::Internal::Object::GetSceneObjectAnimatableProperty()
    */
   virtual const SceneGraph::PropertyBase* GetSceneObjectAnimatableProperty( Property::Index index ) const;
@@ -1684,7 +1677,7 @@ public:
   /**
    * @copydoc Dali::Internal::Object::GetPropertyComponentIndex()
    */
-  virtual int GetPropertyComponentIndex( Property::Index index ) const;
+  virtual int32_t GetPropertyComponentIndex( Property::Index index ) const;
 
   /**
    * Retrieve the actor's node.
@@ -1692,7 +1685,7 @@ public:
    */
   const SceneGraph::Node& GetNode() const
   {
-    return mNode;
+    return *static_cast<const SceneGraph::Node*>( mUpdateObject );
   }
 
   /**
@@ -1725,6 +1718,20 @@ public:
    */
   void LowerBelow( Internal::Actor& target );
 
+public:
+
+  /**
+   * Sets the scene which this actor is added to.
+   * @param[in] scene The scene
+   */
+  void SetScene( Scene& scene );
+
+  /**
+   * Gets the scene which this actor is added to.
+   * @return The scene
+   */
+  Scene& GetScene() const;
+
 private:
 
   struct SendMessage
@@ -1933,11 +1940,12 @@ private:
 
 protected:
 
+  Scene* mScene;                  ///< The scene the actor is added to
+
   Actor* mParent;                 ///< Each actor (except the root) can have one parent
   ActorContainer* mChildren;      ///< Container of referenced actors, lazily initialized
   RendererContainer* mRenderers;   ///< Renderer container
 
-  const SceneGraph::Node& mNode;  ///< Not owned
   Vector3* mParentOrigin;         ///< NULL means ParentOrigin::DEFAULT. ParentOrigin is non-animatable
   Vector3* mAnchorPoint;          ///< NULL means AnchorPoint::DEFAULT. AnchorPoint is non-animatable
 
@@ -1989,7 +1997,6 @@ protected:
   bool mInheritLayoutDirection                     : 1; ///< Whether the actor inherits the layout direction from parent.
   LayoutDirection::Type mLayoutDirection           : 2; ///< Layout direction, Left to Right or Right to Left.
   DrawMode::Type mDrawMode                         : 3; ///< Cached: How the actor and its children should be drawn
-  PositionInheritanceMode mPositionInheritanceMode : 3; ///< Cached: Determines how position is inherited
   ColorMode mColorMode                             : 3; ///< Cached: Determines whether mWorldColor is inherited
   ClippingMode::Type mClippingMode                 : 3; ///< Cached: Determines which clipping mode (if any) to use.