1 #ifndef __DALI_INTERNAL_SCENE_GRAPH_SCENE_CONTROLLER_IMPL_H__
2 #define __DALI_INTERNAL_SCENE_GRAPH_SCENE_CONTROLLER_IMPL_H__
5 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
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
11 // http://floralicense.org/license/
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/update/controllers/scene-controller.h>
22 #include <dali/internal/update/controllers/light-controller.h>
34 * concrete implementation of the scene controller interface
36 class SceneControllerImpl: public SceneController
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
49 SceneControllerImpl( RenderMessageDispatcher& renderMessageDispatcher, RenderQueue& renderQueue, DiscardQueue& discardQueue, TextureCache& textureCache, CompleteStatusManager& completeStatusManager );
54 virtual ~SceneControllerImpl();
56 public: // for scene controller interface
59 * Get the light controller
60 * @return reference to a light controller
62 virtual LightController& GetLightController() { return *mLightController; }
65 * Return the renderer dispatcher
66 * @return A reference to the renderer dispatcher
68 virtual RenderMessageDispatcher& GetRenderMessageDispatcher() { return mRenderMessageDispatcher; }
71 * Return the render queue
72 * @return A reference to the render queue
74 virtual RenderQueue& GetRenderQueue() { return mRenderQueue; }
77 * Return the discard queue
78 * @return A reference to the discard queue
80 virtual DiscardQueue& GetDiscardQueue() { return mDiscardQueue; }
83 * Return the texture cache
84 * @note USE ONLY IN RENDER THREAD OBJECTS
85 * @return The texture cache
87 virtual TextureCache& GetTextureCache() { return mTextureCache; }
90 * @return the complete status tracker
92 virtual CompleteStatusManager& GetCompleteStatusManager() { return mCompleteStatusManager; }
96 // Undefined copy constructor.
97 SceneControllerImpl( const SceneControllerImpl& );
99 // Undefined assignment operator.
100 SceneControllerImpl& operator=( const SceneControllerImpl& );
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
112 } // namespace SceneGraph
114 } // namespace Internal
118 #endif // __DALI_INTERNAL_SCENE_GRAPH_SCENE_CONTROLLER_IMPL_H__