5cee933f7e0fae0a57158227383f80a42a260558
[platform/core/uifw/dali-core.git] / dali / integration-api / render-controller.h
1 #ifndef __DALI_INTEGRATION_RENDER_CONTROLLER_H__
2 #define __DALI_INTEGRATION_RENDER_CONTROLLER_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 namespace Dali
21 {
22
23 namespace Integration
24 {
25
26 /**
27  * Abstract interface for an object which controls rendering.
28  * This will be informed when Dali has new content to render.
29  */
30 class DALI_IMPORT_API RenderController
31 {
32 protected:
33
34   /**
35    * Virtual protected destructor, no deletion through this interface
36    */
37   virtual ~RenderController() {}
38
39 public:
40
41   /**
42    * Requests a future call to Dali::Integration::Core::Update().
43    * This is called when Dali has new content, typically in response to Actors/Animations being added.
44    * Multi-threading note: this method will be called from the main thread only.
45    */
46   virtual void RequestUpdate() = 0;
47
48   /**
49    * Requests a future call to Dali::Integration::Core::ProcessEvents(), when the application is idle.
50    * Multi-threading note: this method will be called from the main thread only.
51    */
52   virtual void RequestProcessEventsOnIdle() = 0;
53
54 };
55
56 } // namespace Integration
57
58 } // namespace Dali
59
60 #endif // __DALI_INTEGRATION_RENDER_CONTROLLER_H__