[dali_2.3.33] Merge branch 'devel/master'
[platform/core/uifw/dali-core.git] / dali / internal / update / controllers / scene-controller-impl.h
1 #ifndef DALI_INTERNAL_SCENE_GRAPH_SCENE_CONTROLLER_IMPL_H
2 #define DALI_INTERNAL_SCENE_GRAPH_SCENE_CONTROLLER_IMPL_H
3
4 /*
5  * Copyright (c) 2022 Samsung Electronics Co., Ltd.
6  *
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
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
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.
18  *
19  */
20
21 // INTERNAL INCLUDES
22 #include <dali/internal/update/controllers/scene-controller.h>
23
24 namespace Dali
25 {
26 namespace Internal
27 {
28 namespace SceneGraph
29 {
30 /**
31  * concrete implementation of the scene controller interface
32  */
33 class SceneControllerImpl : public SceneController
34 {
35 public:
36   /**
37    * Constructor
38    * @param[in] rendererDispatcher Used for passing ownership of renderers to the render-thread.
39    * @param[in] renderQueue  The renderQueue
40    */
41   SceneControllerImpl(RenderMessageDispatcher& renderMessageDispatcher,
42                       RenderQueue&             renderQueue);
43
44   /**
45    * Destructor
46    */
47   ~SceneControllerImpl() override;
48
49 public: // from SceneController
50   /**
51    * @copydoc SceneController::GetRenderMessageDispatcher()
52    */
53   RenderMessageDispatcher& GetRenderMessageDispatcher() override
54   {
55     return mRenderMessageDispatcher;
56   }
57
58   /**
59    * @copydoc SceneController::GetRenderQueue()
60    */
61   RenderQueue& GetRenderQueue() override
62   {
63     return mRenderQueue;
64   }
65
66 private:
67   // Undefined copy constructor.
68   SceneControllerImpl(const SceneControllerImpl&);
69
70   // Undefined assignment operator.
71   SceneControllerImpl& operator=(const SceneControllerImpl&);
72
73 private:
74   RenderMessageDispatcher& mRenderMessageDispatcher; ///< Used for passing messages to the render-thread
75   RenderQueue&             mRenderQueue;             ///< render queue
76 };
77
78 } // namespace SceneGraph
79
80 } // namespace Internal
81
82 } // namespace Dali
83
84 #endif // DALI_INTERNAL_SCENE_GRAPH_SCENE_CONTROLLER_IMPL_H