348f29211e8290adb626ddd81b0170af76b316ab
[platform/core/uifw/dali-core.git] / dali / integration-api / context-notifier.h
1 #ifndef __DALI_INTEGRATION_CONTEXT_NOTIFIER_H__
2 #define __DALI_INTEGRATION_CONTEXT_NOTIFIER_H__
3
4 /*
5  * Copyright (c) 2014 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 namespace Dali
21 {
22 namespace Integration
23 {
24
25 /**
26  * Interface to inform dali core of context loss and regain
27  */
28 class ContextNotifierInterface
29 {
30 public:
31   /**
32    * Notify that the GL context has been lost, e.g. during ReplaceSurface
33    * or Pause.
34    *
35    * Multi-threading note: this method should be called from the main thread
36    */
37   virtual void NotifyContextLost() = 0;
38
39   /**
40    * Notify that the GL context has been re-created, e.g. after ReplaceSurface
41    * or Context loss.
42    *
43    * In the case of ReplaceSurface, both ContextDestroyed() and ContextCreated() will have
44    * been called on the render thread before this is called on the event thread.
45    *
46    * Multi-threading note: this method should be called from the main thread
47    */
48   virtual void NotifyContextRegained() = 0;
49 };
50
51 } // namespace Integration
52 } // namespace Dali
53
54
55 #endif // __DALI_INTEGRATION_CONTEXT_NOTIFICATION_H__