/*
- * 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();
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);
{
// 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);
}
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
}
}
void PropertyOwner::AddUniformMapping(const UniformPropertyMapping& map)
{
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
return mUniformMaps;
}
-void PropertyOwner::AddUniformMapObserver( UniformMap::Observer& observer )
-{
- mUniformMaps.AddObserver( observer );
-}
-
-void PropertyOwner::RemoveUniformMapObserver( UniformMap::Observer& observer )
-{
- mUniformMaps.RemoveObserver( observer );
-}
-
-
-
} // namespace SceneGraph
} // namespace Internal