Renderers: refactor recomposition methods
[profile/ivi/layer-management.git] / LayerManagerPlugins / Renderers / Graphic / include / WindowSystems / BaseWindowSystem.h
1 /***************************************************************************
2  *
3  * Copyright 2010,2011 BMW Car IT GmbH
4  *
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *        http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  ****************************************************************************/
19
20 #ifndef _BASEWINDOWSYSTEM_H_
21 #define _BASEWINDOWSYSTEM_H_
22
23 #include "Scene.h"
24
25 class BaseWindowSystem
26 {
27 public:
28     BaseWindowSystem(Scene* pScene, InputManager* pInputManager )
29     : m_pScene(pScene)
30     , m_pInputManager(pInputManager)
31     , m_damaged(false)
32     {
33     }
34
35     virtual ~BaseWindowSystem()
36     {
37     }
38
39     virtual bool start() = 0;
40     virtual void stop() = 0;
41     virtual void allocatePlatformSurface(Surface *surface) = 0;
42     virtual void doScreenShot(std::string fileName) = 0;
43     virtual void doScreenShotOfLayer(std::string fileName, const uint id) = 0;
44     virtual void doScreenShotOfSurface(std::string fileName, const uint id, const uint layer_id) = 0;
45
46 protected:
47     virtual void ClearDamage();
48     Scene* m_pScene;
49     InputManager* m_pInputManager;
50
51 public:
52     bool m_damaged;
53     bool m_forceComposition;
54 };
55
56 #endif /* _BASEWINDOWSYSTEM_H_ */