Revert "License conversion from Flora to Apache 2.0"
[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) 2014 Samsung Electronics Co., Ltd.
6 //
7 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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 // INTERNAL INCLUDES
21 #include <dali/internal/update/controllers/scene-controller.h>
22 #include <dali/internal/update/controllers/light-controller.h>
23
24 namespace Dali
25 {
26
27 namespace Internal
28 {
29
30 namespace SceneGraph
31 {
32
33 /**
34  * concrete implementation of the scene controller interface
35  */
36 class SceneControllerImpl: public SceneController
37 {
38
39 public:
40
41   /**
42    * Constructor
43    * @param[in] context  dali context
44    * @param[in] rendererDispatcher Used for passing ownership of renderers to the render-thread.
45    * @param[in] renderQueue  The renderQueue
46    * @param[in] discardQueue The discardQueue
47    * @param[in] completeStatusTracker The resource complete status tracker
48    */
49   SceneControllerImpl( RenderMessageDispatcher& renderMessageDispatcher, RenderQueue& renderQueue, DiscardQueue& discardQueue, TextureCache& textureCache, CompleteStatusManager& completeStatusManager );
50
51   /**
52    * Destructor
53    */
54   virtual ~SceneControllerImpl();
55
56 public:  // for scene controller interface
57
58   /**
59    * Get the light  controller
60    * @return  reference to a light controller
61    */
62   virtual LightController& GetLightController() { return *mLightController; }
63
64   /**
65    * Return the renderer dispatcher
66    * @return A reference to the renderer dispatcher
67    */
68   virtual RenderMessageDispatcher& GetRenderMessageDispatcher() { return mRenderMessageDispatcher; }
69
70   /**
71    * Return the render queue
72    * @return A reference to the render queue
73    */
74   virtual RenderQueue& GetRenderQueue() { return mRenderQueue; }
75
76   /**
77    * Return the discard queue
78    * @return A reference to the discard queue
79    */
80   virtual DiscardQueue& GetDiscardQueue() { return mDiscardQueue; }
81
82   /**
83    * Return the texture cache
84    * @note USE ONLY IN RENDER THREAD OBJECTS
85    * @return The texture cache
86    */
87   virtual TextureCache& GetTextureCache() { return mTextureCache; }
88
89   /**
90    * @return the complete status tracker
91    */
92   virtual CompleteStatusManager& GetCompleteStatusManager() { return mCompleteStatusManager;  }
93
94 private:
95
96   // Undefined copy constructor.
97   SceneControllerImpl( const SceneControllerImpl& );
98
99   // Undefined assignment operator.
100   SceneControllerImpl& operator=( const SceneControllerImpl& );
101
102 private:
103
104   LightController*       mLightController;       ///< light controller
105   RenderMessageDispatcher& mRenderMessageDispatcher;    ///< Used for passing messages to the render-thread
106   RenderQueue&           mRenderQueue;           ///< render queue
107   DiscardQueue&          mDiscardQueue;          ///< discard queue
108   TextureCache&          mTextureCache;          ///< texture cache
109   CompleteStatusManager& mCompleteStatusManager; ///< Complete Status manager
110 };
111
112 } // namespace SceneGraph
113
114 } // namespace Internal
115
116 } // namespace Dali
117
118 #endif // __DALI_INTERNAL_SCENE_GRAPH_SCENE_CONTROLLER_IMPL_H__