Reorder node's children only required case.
[platform/core/uifw/dali-core.git] / dali / internal / update / common / property-owner.cpp
index 7398de3..1111f94 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 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.
 #include <algorithm>
 
 // INTERNAL INCLUDES
-#include <dali/public-api/common/dali-common.h>
-#include <dali/internal/update/animation/scene-graph-constraint-base.h>
 #include <dali/internal/common/const-string.h>
+#include <dali/internal/update/animation/scene-graph-constraint-base.h>
+#include <dali/public-api/common/dali-common.h>
 
 namespace Dali
 {
-
 namespace Internal
 {
-
 namespace SceneGraph
 {
-
 PropertyOwner* PropertyOwner::New()
 {
   return new PropertyOwner();
@@ -48,18 +45,18 @@ PropertyOwner::~PropertyOwner()
 void PropertyOwner::AddObserver(Observer& observer)
 {
   //Check for duplicates in debug builds
-  DALI_ASSERT_DEBUG( mObservers.End() == std::find( mObservers.Begin(), mObservers.End(), &observer ) );
+  DALI_ASSERT_DEBUG(mObservers.End() == std::find(mObservers.Begin(), mObservers.End(), &observer));
 
-  mObservers.PushBack( &observer );
+  mObservers.PushBack(&observer);
 }
 
 void PropertyOwner::RemoveObserver(Observer& observer)
 {
   // Find the observer...
-  const ConstObserverIter endIter =  mObservers.End();
-  for( ObserverIter iter = mObservers.Begin(); iter != endIter; ++iter)
+  const ConstObserverIter endIter = mObservers.End();
+  for(ObserverIter iter = mObservers.Begin(); iter != endIter; ++iter)
   {
-    if( (*iter) == &observer)
+    if((*iter) == &observer)
     {
       // erase it
       mObservers.Erase(iter);
@@ -77,7 +74,7 @@ void PropertyOwner::Destroy()
 {
   // Notification for observers
   const ConstObserverIter endIter = mObservers.End();
-  for( ConstObserverIter iter = mObservers.Begin(); iter != endIter; ++iter)
+  for(ConstObserverIter iter = mObservers.Begin(); iter != endIter; ++iter)
   {
     (*iter)->PropertyOwnerDestroyed(*this);
   }
@@ -91,55 +88,60 @@ void PropertyOwner::Destroy()
 void PropertyOwner::ConnectToSceneGraph()
 {
   mIsConnectedToSceneGraph = true;
+  SetUpdated(true);
 
   // Notification for observers
   const ConstObserverIter endIter = mObservers.End();
-  for( ConstObserverIter iter = mObservers.Begin(); iter != endIter; ++iter)
+  for(ConstObserverIter iter = mObservers.Begin(); iter != endIter; ++iter)
   {
-    (*iter)->PropertyOwnerConnected( *this );
+    (*iter)->PropertyOwnerConnected(*this);
   }
 }
 
-void PropertyOwner::DisconnectFromSceneGraph( BufferIndex updateBufferIndex )
+void PropertyOwner::DisconnectFromSceneGraph(BufferIndex updateBufferIndex)
 {
   mIsConnectedToSceneGraph = false;
 
   // Notification for observers
   const ConstObserverIter endIter = mObservers.End();
-  for( ConstObserverIter iter = mObservers.Begin(); iter != endIter; ++iter)
+  for(ConstObserverIter iter = mObservers.Begin(); iter != endIter; ++iter)
   {
-    (*iter)->PropertyOwnerDisconnected( updateBufferIndex, *this );
+    (*iter)->PropertyOwnerDisconnected(updateBufferIndex, *this);
   }
 
   // Remove all constraints when disconnected from scene-graph
   mConstraints.Clear();
 }
 
-void PropertyOwner::InstallCustomProperty( OwnerPointer<PropertyBase>& property )
+void PropertyOwner::ReserveProperties(int propertyCount)
 {
-  mCustomProperties.PushBack( property.Release() );
+  mCustomProperties.Reserve(propertyCount);
 }
 
+void PropertyOwner::InstallCustomProperty(OwnerPointer<PropertyBase>& property)
+{
+  mCustomProperties.PushBack(property.Release());
+}
 
 ConstraintOwnerContainer& PropertyOwner::GetConstraints()
 {
   return mConstraints;
 }
 
-void PropertyOwner::ApplyConstraint( OwnerPointer<ConstraintBase>& constraint )
+void PropertyOwner::ApplyConstraint(OwnerPointer<ConstraintBase>& constraint)
 {
   constraint->OnConnect();
-  mConstraints.PushBack( constraint.Release() );
+  mConstraints.PushBack(constraint.Release());
 }
 
-void PropertyOwner::RemoveConstraint( ConstraintBase* constraint )
+void PropertyOwner::RemoveConstraint(ConstraintBase* constraint)
 {
   const ConstraintIter constraintEndIter = mConstraints.End();
-  for( ConstraintIter iter = mConstraints.Begin(); constraintEndIter != iter; ++iter )
+  for(ConstraintIter iter = mConstraints.Begin(); constraintEndIter != iter; ++iter)
   {
-    if ( *iter == constraint )
+    if(*iter == constraint)
     {
-      mConstraints.Erase( iter );
+      mConstraints.Erase(iter);
       return; // We're finished
     }
   }
@@ -153,14 +155,16 @@ PropertyOwner::PropertyOwner()
 {
 }
 
-void PropertyOwner::AddUniformMapping( OwnerPointer< UniformPropertyMapping >& map )
+void PropertyOwner::AddUniformMapping(const UniformPropertyMapping& map)
 {
-  mUniformMaps.Add( map.Release() );
+  mUniformMaps.Add(map);
+  OnMappingChanged();
 }
 
-void PropertyOwner::RemoveUniformMapping( const ConstString& uniformName )
+void PropertyOwner::RemoveUniformMapping(const ConstString& uniformName)
 {
-  mUniformMaps.Remove( uniformName );
+  mUniformMaps.Remove(uniformName);
+  OnMappingChanged();
 }
 
 const UniformMap& PropertyOwner::GetUniformMap() const
@@ -168,18 +172,6 @@ const UniformMap& PropertyOwner::GetUniformMap() const
   return mUniformMaps;
 }
 
-void PropertyOwner::AddUniformMapObserver( UniformMap::Observer& observer )
-{
-  mUniformMaps.AddObserver( observer );
-}
-
-void PropertyOwner::RemoveUniformMapObserver( UniformMap::Observer& observer )
-{
-  mUniformMaps.RemoveObserver( observer );
-}
-
-
-
 } // namespace SceneGraph
 
 } // namespace Internal