Initial Version of LayerManagementService added.
[profile/ivi/layer-management.git] / LayerManagerPlugins / Renderers / Graphic / include / TextureBinders / X11EglImage.h
1 /***************************************************************************
2 *
3 * Copyright 2010 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 _X11EGLIMAGE_H_
21 #define _X11EGLIMAGE_H_
22
23 #include "TextureBinders/ITextureBinder.h"
24 #include "X11/extensions/Xcomposite.h"
25 #include <EGL/egl.h>
26 #include <EGL/eglext.h>
27 #include <GLES2/gl2.h>
28 #include <GLES2/gl2ext.h>
29
30 class X11EglImage : public ITextureBinder {
31 public:
32         X11EglImage(Display* x11display);
33         void bindSurfaceTexture(Surface*s);
34         void unbindSurfaceTexture(Surface*s);
35         void createClientBuffer(Surface* surface);
36         void destroyClientBuffer(Surface* surface);
37         virtual PlatformSurface* createPlatformSurface(Surface* s);
38
39 private:
40         PFNEGLCREATEIMAGEKHRPROC                m_pfEglCreateImageKHR;
41         PFNEGLDESTROYIMAGEKHRPROC           m_pfEglDestroyImageKHR;
42         PFNGLEGLIMAGETARGETTEXTURE2DOESPROC m_pfGLEglImageTargetTexture2DOES;
43         EGLDisplay m_eglDisplay;
44         Display* m_x11display;
45 };
46
47 #endif /* _X11EGLIMAGE_H_ */