X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fupdate%2Fcommon%2Fproperty-owner.cpp;h=b094a437f5f85f0facc698aab0f561125d785e4b;hb=b43741a90b40ca9dfbd33d6a9d390d3c09230e89;hp=e6cfa77e695016c2b68dd26f10854093cd3cceb9;hpb=431fdb6a62babf5e0d757b59a85de4ec460e18c0;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 old mode 100644 new mode 100755 index e6cfa77..b094a43 --- a/dali/internal/update/common/property-owner.cpp +++ b/dali/internal/update/common/property-owner.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2018 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. @@ -110,48 +110,25 @@ void PropertyOwner::DisconnectFromSceneGraph( BufferIndex updateBufferIndex ) mConstraints.Clear(); } -void PropertyOwner::InstallCustomProperty(PropertyBase* property) +void PropertyOwner::InstallCustomProperty( OwnerPointer& property ) { - DALI_ASSERT_DEBUG( NULL != property ); - - mCustomProperties.PushBack( property ); + mCustomProperties.PushBack( property.Release() ); } -void PropertyOwner::ResetToBaseValues( BufferIndex updateBufferIndex ) -{ - // Reset custom properties - const OwnedPropertyIter endIter = mCustomProperties.End(); - for ( OwnedPropertyIter iter = mCustomProperties.Begin(); endIter != iter; ++iter ) - { - (*iter)->ResetToBaseValue( updateBufferIndex ); - } - - // Reset constraint weights - const ConstraintIter constraintEndIter = mConstraints.End(); - for( ConstraintIter iter = mConstraints.Begin(); constraintEndIter != iter; ++iter ) - { - (*iter)->mWeight.ResetToBaseValue( updateBufferIndex ); - } - - // Notification for derived classes, to reset default properties - ResetDefaultProperties( updateBufferIndex ); -} ConstraintOwnerContainer& PropertyOwner::GetConstraints() { return mConstraints; } -void PropertyOwner::ApplyConstraint( ConstraintBase* constraint ) +void PropertyOwner::ApplyConstraint( OwnerPointer& constraint ) { - mConstraints.PushBack( constraint ); - constraint->OnConnect(); + mConstraints.PushBack( constraint.Release() ); } void PropertyOwner::RemoveConstraint( ConstraintBase* constraint ) { - // Reset constraint weights const ConstraintIter constraintEndIter = mConstraints.End(); for( ConstraintIter iter = mConstraints.Begin(); constraintEndIter != iter; ++iter ) { @@ -162,12 +139,47 @@ void PropertyOwner::RemoveConstraint( ConstraintBase* constraint ) } } - // Should not come here - DALI_ASSERT_DEBUG( false && "Constraint missing in RemoveConstraint" ); + //it may be that the constraint has already been removed e.g. from disconnection from scene graph, so nothing needs to be done } PropertyOwner::PropertyOwner() +:mPropertyDirty( false ) +{ +} + +void PropertyOwner::AddUniformMapping( OwnerPointer< UniformPropertyMapping >& map ) +{ + mUniformMaps.Add( map.Release() ); +} + +void PropertyOwner::RemoveUniformMapping( const std::string& uniformName ) +{ + mUniformMaps.Remove( uniformName ); +} + +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 ); +} + +void PropertyOwner::SetPropertyDirty( bool value ) +{ + mPropertyDirty = value; +} + +bool PropertyOwner::IsPropertyDirty() const { + return mPropertyDirty; } } // namespace SceneGraph