1 /***************************************************************************
3 * Copyright 2010 BMW Car IT GmbH
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
10 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 ****************************************************************************/
20 #ifndef _GLESGRAPHICSYSTEM_H_
21 #define _GLESGRAPHICSYSTEM_H_
23 #include "GraphicSystems/BaseGraphicSystem.h"
24 #include "ShaderProgramFactory.h"
28 /* uncomment if layer drawing needed */
29 /* #define DRAW_LAYER_DEBUG */
30 class GLESGraphicsystem : public BaseGraphicSystem {
32 GLESGraphicsystem(PfnShaderProgramCreator shaderProgram, ITextureBinder* binder);
34 bool init(void* display, void* WindowID,int WindowHeight, int WindowWidth);
35 void clearBackground();
37 void drawSurface(Layer* currentLayer, Surface* surface);
38 bool initOpenGLES(EGLint displayWidth, EGLint displayHeight);
39 void resize(EGLint displayWidth, EGLint displayHeight);
40 void doScreenShot(std::string fileToSave);
42 PfnShaderProgramCreator m_shaderCreatorFunc;
43 EGLConfig m_eglConfig;
44 EGLContext m_eglContext;
45 EGLSurface m_eglSurface;
46 EGLDisplay m_eglDisplay;
48 EGLint m_displayWidth;
49 EGLint m_displayHeight;
50 EGLBoolean m_blendingStatus;
51 Shader* m_defaultShader;
52 #ifdef DRAW_LAYER_DEBUG
53 Shader* m_layerShader;
56 void saveScreenShot();
57 std::string screenShotFile;
61 #endif /* _GLESGRAPHICSYSTEM_H_ */