Changed SceneHolder's RenderTarget initialization
[platform/core/uifw/dali-core.git] / dali / internal / update / controllers / scene-controller.h
1 #ifndef DALI_INTERNAL_SCENE_GRAPH_SCENE_CONTROLLER_H
2 #define DALI_INTERNAL_SCENE_GRAPH_SCENE_CONTROLLER_H
3
4 /*
5  * Copyright (c) 2021 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 namespace Dali
22 {
23 namespace Internal
24 {
25 namespace SceneGraph
26 {
27 class RenderMessageDispatcher;
28 class RenderQueue;
29 class DiscardQueue;
30
31 /**
32  * Abstract interface for the scene controller
33  */
34 class SceneController
35 {
36 public:
37   /**
38    * Constructor
39    */
40   SceneController() = default;
41
42   /**
43    * Destructor
44    */
45   virtual ~SceneController() = default;
46
47   /**
48    * Return the render message dispatcher
49    * @return A reference to the render message dispatcher
50    */
51   virtual RenderMessageDispatcher& GetRenderMessageDispatcher() = 0;
52
53   /**
54    * Return the render queue
55    * @return A reference to the render queue
56    */
57   virtual RenderQueue& GetRenderQueue() = 0;
58
59   /**
60    * Return the discard queue
61    * @return A reference to the discard queue
62    */
63   virtual DiscardQueue& GetDiscardQueue() = 0;
64
65 private:
66   // Undefined copy constructor.
67   SceneController(const SceneController&);
68
69   // Undefined assignment operator.
70   SceneController& operator=(const SceneController&);
71 };
72
73 } // namespace SceneGraph
74
75 } // namespace Internal
76
77 } // namespace Dali
78
79 #endif // DALI_INTERNAL_SCENE_GRAPH_SCENE_CONTROLLER_H