X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fupdate%2Fcommon%2Fproperty-owner.cpp;h=1111f9459df1fc3bcd237777c057b34e4289ecbb;hb=80f46507ec71631f195b1350b52f95da6fc6ed4d;hp=fb655e3db45d6dcb9add70cf6d3ab608110eb4dd;hpb=b3898fbb1337f5d33559a4b953ed75483461d7ca;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/update/common/property-owner.cpp b/dali/internal/update/common/property-owner.cpp index fb655e3..1111f94 100644 --- a/dali/internal/update/common/property-owner.cpp +++ b/dali/internal/update/common/property-owner.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 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. @@ -22,18 +22,16 @@ #include // INTERNAL INCLUDES -#include +#include #include +#include namespace Dali { - namespace Internal { - namespace SceneGraph { - PropertyOwner* PropertyOwner::New() { return new PropertyOwner(); @@ -47,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); @@ -76,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); } @@ -89,52 +87,61 @@ 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& property ) +void PropertyOwner::ReserveProperties(int propertyCount) { - mCustomProperties.PushBack( property.Release() ); + mCustomProperties.Reserve(propertyCount); } +void PropertyOwner::InstallCustomProperty(OwnerPointer& property) +{ + mCustomProperties.PushBack(property.Release()); +} ConstraintOwnerContainer& PropertyOwner::GetConstraints() { return mConstraints; } -void PropertyOwner::ApplyConstraint( OwnerPointer& constraint ) +void PropertyOwner::ApplyConstraint(OwnerPointer& 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 } } @@ -143,17 +150,21 @@ void PropertyOwner::RemoveConstraint( ConstraintBase* constraint ) } PropertyOwner::PropertyOwner() +: mUpdated(false), + mIsConnectedToSceneGraph(false) { } -void PropertyOwner::AddUniformMapping( OwnerPointer< UniformPropertyMapping >& map ) +void PropertyOwner::AddUniformMapping(const UniformPropertyMapping& map) { - mUniformMaps.Add( map.Release() ); + mUniformMaps.Add(map); + OnMappingChanged(); } -void PropertyOwner::RemoveUniformMapping( const std::string& uniformName ) +void PropertyOwner::RemoveUniformMapping(const ConstString& uniformName) { - mUniformMaps.Remove( uniformName ); + mUniformMaps.Remove(uniformName); + OnMappingChanged(); } const UniformMap& PropertyOwner::GetUniformMap() const @@ -161,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