1 #ifndef DALI_INTERNAL_SCENEGRAPH_RESETTER_MANAGER_H
2 #define DALI_INTERNAL_SCENEGRAPH_RESETTER_MANAGER_H
5 * Copyright (c) 2023 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
21 #include <dali/internal/common/owner-pointer.h>
22 #include <dali/internal/update/common/property-resetter.h>
24 namespace Dali::Internal::SceneGraph
30 * Abstract interface for passing a Resetter object add.
36 * Add a property resetter. ResetterManager takes ownership of the object.
37 * It will be killed by ResetterManager when the associated animator or
38 * constraint has finished; or the property owner of the property is destroyed.
40 virtual void AddPropertyResetter(OwnerPointer<PropertyResetterBase>& propertyResetter) = 0;
43 * Add a node resetter. ResetterManager takes ownership of the object.
44 * It will be killed by ResetterManager when the node is disconnected from the scene graph;
45 * or when the node is destroyed.
47 virtual void AddNodeResetter(const Node& node) = 0;
50 * Add a renderer resetter. ResetterManager takes ownership of the object.
51 * It will be killed by ResetterManager when the renderer is destroyed
53 virtual void AddRendererResetter(const Renderer& renderer) = 0;
57 * Destructor. Protected as no derived class should ever be deleted
58 * through a reference to this pure abstract interface.
60 virtual ~ResetterManager() = default;
63 } // namespace Dali::Internal::SceneGraph
65 #endif //DALI_INTERNAL_SCENEGRAPH_RESETTER_MANAGER_H