Add API to UpdateProxy
[platform/core/uifw/dali-core.git] / dali / internal / update / manager / update-proxy-impl.h
index 8294071..7ae5655 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_INTERNAL_UPDATE_PROXY_IMPL_H
 
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 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.
@@ -105,6 +105,11 @@ public:
   bool GetPositionAndSize(uint32_t id, Vector3& position, Vector3& size) const;
 
   /**
+   * @copydoc Dali::UpdateProxy::GetWorldPositionScaleAndSize()
+   */
+  bool GetWorldPositionScaleAndSize(uint32_t id, Vector3& position, Vector3& scale, Vector3& size) const;
+
+  /**
    * @copydoc Dali::UpdateProxy::GetScale()
    */
   bool GetScale(uint32_t id, Vector3& scale) const;
@@ -157,6 +162,11 @@ public:
    */
   void NodeHierarchyChanged();
 
+  /**
+   * @brief Adds node resetter for each dirty node whose animatable properties have been changed.
+   */
+  void AddNodeResetters();
+
 private:
   /**
    * @brief Retrieves the node with the specified ID.
@@ -188,6 +198,7 @@ private:
 
   mutable std::vector<IdNodePair> mNodeContainer;        ///< Used to store cached pointers to already searched for Nodes.
   mutable IdNodePair              mLastCachedIdNodePair; ///< Used to cache the last retrieved id-node pair.
+  mutable std::vector<uint32_t>   mDirtyNodes;           ///< Used to store the ID of the dirty nodes with non-transform property modifications.
   BufferIndex                     mCurrentBufferIndex;
 
   SceneGraph::UpdateManager&    mUpdateManager;    ///< Reference to the Update Manager.