X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fupdate%2Fcommon%2Fproperty-owner.h;h=637d82b6aaef14499fcdcfdc510f9db6ffc5a683;hb=b43741a90b40ca9dfbd33d6a9d390d3c09230e89;hp=b60a838606c430f7f4e85a085b7405f7c09d3f44;hpb=961d9deaed9265389c6ff5fa86c5b4df2bb06a98;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/update/common/property-owner.h b/dali/internal/update/common/property-owner.h old mode 100644 new mode 100755 index b60a838..637d82b --- a/dali/internal/update/common/property-owner.h +++ b/dali/internal/update/common/property-owner.h @@ -1,8 +1,8 @@ -#ifndef __DALI_INTERNAL_SCENE_GRAPH_PROPERTY_OWNER_H__ -#define __DALI_INTERNAL_SCENE_GRAPH_PROPERTY_OWNER_H__ +#ifndef DALI_INTERNAL_SCENE_GRAPH_PROPERTY_OWNER_H +#define DALI_INTERNAL_SCENE_GRAPH_PROPERTY_OWNER_H /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2019 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. @@ -18,16 +18,16 @@ * */ -// EXTERNAL INCLUDES - // INTERNAL INCLUDES #include +#include #include -#include #include #include +#include #include + namespace Dali { @@ -74,6 +74,14 @@ public: * may not be called (i.e. when shutting down). */ virtual void PropertyOwnerDestroyed( PropertyOwner& owner ) = 0; + + protected: + + /** + * Virtual destructor, no deletion through this interface + */ + virtual ~Observer() {} + }; /** @@ -132,7 +140,7 @@ public: * @post The PropertyOwner takes ownership of the property. * @param[in] property A pointer to a newly allocated property. */ - void InstallCustomProperty(PropertyBase* property); + void InstallCustomProperty( OwnerPointer& property ); /** * Retrieve the custom properties owned by the object. @@ -152,12 +160,6 @@ public: return mCustomProperties; } - /** - * Reset animatable properties to the corresponding base values. - * @param[in] currentBufferIndex The buffer to reset. - * @post The ResetDefaultProperties method is called, during which derived classes can reset default properties. - */ - void ResetToBaseValues( BufferIndex updateBufferIndex ); // Constraints @@ -165,7 +167,7 @@ public: * Apply a constraint. * @param[in] constraint The constraint to apply. */ - void ApplyConstraint( ConstraintBase* constraint ); + void ApplyConstraint( OwnerPointer& constraint ); /** * Begin removal of constraints. @@ -179,6 +181,44 @@ public: */ ConstraintOwnerContainer& GetConstraints(); + /** + * @copydoc UniformMap::Add + */ + virtual void AddUniformMapping( OwnerPointer< UniformPropertyMapping >& map ); + + /** + * @copydoc UniformMap::Remove + */ + virtual void RemoveUniformMapping( const std::string& uniformName ); + + /** + * Get the mappings table + */ + const UniformMap& GetUniformMap() const; + + /** + * @copydoc UniformMap::AddUniformMapObserver + */ + void AddUniformMapObserver( UniformMap::Observer& observer ); + + /** + * @copydoc UniformMap::RemoveUniformMapObserver + */ + void RemoveUniformMapObserver( UniformMap::Observer& observer ); + + /** + * Set whether property has changed to run following a render. + * @param[in] value Set to true if the property has changed + */ + virtual void SetPropertyDirty( bool value ); + + /** + * Query the property status following rendering of a frame. + * @return True if the property has changed + */ + virtual bool IsPropertyDirty() const; + + protected: /** @@ -194,15 +234,11 @@ private: // Undefined PropertyOwner& operator=(const PropertyOwner& rhs); - /** - * Called after ResetToBaseValues; derived classes should reset any default properties. - * @param[in] currentBufferIndex The buffer to reset. - */ - virtual void ResetDefaultProperties( BufferIndex updateBufferIndex ) {} - protected: OwnedPropertyContainer mCustomProperties; ///< Properties provided with InstallCustomProperty() + UniformMap mUniformMaps; ///< Container of owned uniform maps + bool mPropertyDirty:1; ///< Required for marking it dirty in case of partial update. private: @@ -213,7 +249,6 @@ private: ObserverContainer mObservers; ///< Container of observer raw-pointers (not owned) ConstraintOwnerContainer mConstraints; ///< Container of owned constraints - }; } // namespace SceneGraph @@ -222,4 +257,4 @@ private: } // namespace Dali -#endif // __DALI_INTERNAL_SCENE_GRAPH_PROPERTY_OWNER_H__ +#endif // DALI_INTERNAL_SCENE_GRAPH_PROPERTY_OWNER_H