eglext.h revision 5dc0f49084f322dd8ff6eb585212eea8b50e3377
1#ifndef __eglext_h_
2#define __eglext_h_
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8/*
9** Copyright (c) 2007-2009 The Khronos Group Inc.
10**
11** Permission is hereby granted, free of charge, to any person obtaining a
12** copy of this software and/or associated documentation files (the
13** "Materials"), to deal in the Materials without restriction, including
14** without limitation the rights to use, copy, modify, merge, publish,
15** distribute, sublicense, and/or sell copies of the Materials, and to
16** permit persons to whom the Materials are furnished to do so, subject to
17** the following conditions:
18**
19** The above copyright notice and this permission notice shall be included
20** in all copies or substantial portions of the Materials.
21**
22** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
26** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
27** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
28** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
29*/
30
31#include <EGL/eglplatform.h>
32
33/*************************************************************/
34
35/* Header file version number */
36/* Current version at http://www.khronos.org/registry/egl/ */
37/* $Revision: 10185 $ on $Date: 2010-01-22 11:38:01 -0800 (Fri, 22 Jan 2010) $ */
38#define EGL_EGLEXT_VERSION 5
39
40#ifndef EGL_KHR_config_attribs
41#define EGL_KHR_config_attribs 1
42#define EGL_CONFORMANT_KHR			0x3042	/* EGLConfig attribute */
43#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR	0x0020	/* EGL_SURFACE_TYPE bitfield */
44#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR		0x0040	/* EGL_SURFACE_TYPE bitfield */
45#endif
46
47#ifndef EGL_KHR_lock_surface
48#define EGL_KHR_lock_surface 1
49#define EGL_READ_SURFACE_BIT_KHR		0x0001	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
50#define EGL_WRITE_SURFACE_BIT_KHR		0x0002	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
51#define EGL_LOCK_SURFACE_BIT_KHR		0x0080	/* EGL_SURFACE_TYPE bitfield */
52#define EGL_OPTIMAL_FORMAT_BIT_KHR		0x0100	/* EGL_SURFACE_TYPE bitfield */
53#define EGL_MATCH_FORMAT_KHR			0x3043	/* EGLConfig attribute */
54#define EGL_FORMAT_RGB_565_EXACT_KHR		0x30C0	/* EGL_MATCH_FORMAT_KHR value */
55#define EGL_FORMAT_RGB_565_KHR			0x30C1	/* EGL_MATCH_FORMAT_KHR value */
56#define EGL_FORMAT_RGBA_8888_EXACT_KHR		0x30C2	/* EGL_MATCH_FORMAT_KHR value */
57#define EGL_FORMAT_RGBA_8888_KHR		0x30C3	/* EGL_MATCH_FORMAT_KHR value */
58#define EGL_MAP_PRESERVE_PIXELS_KHR		0x30C4	/* eglLockSurfaceKHR attribute */
59#define EGL_LOCK_USAGE_HINT_KHR			0x30C5	/* eglLockSurfaceKHR attribute */
60#define EGL_BITMAP_POINTER_KHR			0x30C6	/* eglQuerySurface attribute */
61#define EGL_BITMAP_PITCH_KHR			0x30C7	/* eglQuerySurface attribute */
62#define EGL_BITMAP_ORIGIN_KHR			0x30C8	/* eglQuerySurface attribute */
63#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR		0x30C9	/* eglQuerySurface attribute */
64#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR	0x30CA	/* eglQuerySurface attribute */
65#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR	0x30CB	/* eglQuerySurface attribute */
66#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR	0x30CC	/* eglQuerySurface attribute */
67#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR	0x30CD	/* eglQuerySurface attribute */
68#define EGL_LOWER_LEFT_KHR			0x30CE	/* EGL_BITMAP_ORIGIN_KHR value */
69#define EGL_UPPER_LEFT_KHR			0x30CF	/* EGL_BITMAP_ORIGIN_KHR value */
70#ifdef EGL_EGLEXT_PROTOTYPES
71EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
72EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay display, EGLSurface surface);
73#endif /* EGL_EGLEXT_PROTOTYPES */
74typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
75typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface);
76#endif
77
78#ifndef EGL_KHR_image
79#define EGL_KHR_image 1
80#define EGL_NATIVE_PIXMAP_KHR			0x30B0	/* eglCreateImageKHR target */
81typedef void *EGLImageKHR;
82#define EGL_NO_IMAGE_KHR			((EGLImageKHR)0)
83#ifdef EGL_EGLEXT_PROTOTYPES
84EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
85EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
86#endif /* EGL_EGLEXT_PROTOTYPES */
87typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
88typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
89#endif
90
91#ifndef EGL_KHR_vg_parent_image
92#define EGL_KHR_vg_parent_image 1
93#define EGL_VG_PARENT_IMAGE_KHR			0x30BA	/* eglCreateImageKHR target */
94#endif
95
96#ifndef EGL_KHR_gl_texture_2D_image
97#define EGL_KHR_gl_texture_2D_image 1
98#define EGL_GL_TEXTURE_2D_KHR			0x30B1	/* eglCreateImageKHR target */
99#define EGL_GL_TEXTURE_LEVEL_KHR		0x30BC	/* eglCreateImageKHR attribute */
100#endif
101
102#ifndef EGL_KHR_gl_texture_cubemap_image
103#define EGL_KHR_gl_texture_cubemap_image 1
104#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR	0x30B3	/* eglCreateImageKHR target */
105#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR	0x30B4	/* eglCreateImageKHR target */
106#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR	0x30B5	/* eglCreateImageKHR target */
107#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR	0x30B6	/* eglCreateImageKHR target */
108#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR	0x30B7	/* eglCreateImageKHR target */
109#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR	0x30B8	/* eglCreateImageKHR target */
110#endif
111
112#ifndef EGL_KHR_gl_texture_3D_image
113#define EGL_KHR_gl_texture_3D_image 1
114#define EGL_GL_TEXTURE_3D_KHR			0x30B2	/* eglCreateImageKHR target */
115#define EGL_GL_TEXTURE_ZOFFSET_KHR		0x30BD	/* eglCreateImageKHR attribute */
116#endif
117
118#ifndef EGL_KHR_gl_renderbuffer_image
119#define EGL_KHR_gl_renderbuffer_image 1
120#define EGL_GL_RENDERBUFFER_KHR			0x30B9	/* eglCreateImageKHR target */
121#endif
122
123#ifndef EGL_KHR_reusable_sync
124#define EGL_KHR_reusable_sync 1
125
126typedef void* EGLSyncKHR;
127typedef khronos_utime_nanoseconds_t EGLTimeKHR;
128
129#define EGL_SYNC_STATUS_KHR			0x30F1
130#define EGL_SIGNALED_KHR			0x30F2
131#define EGL_UNSIGNALED_KHR			0x30F3
132#define EGL_TIMEOUT_EXPIRED_KHR			0x30F5
133#define EGL_CONDITION_SATISFIED_KHR		0x30F6
134#define EGL_SYNC_TYPE_KHR			0x30F7
135#define EGL_SYNC_REUSABLE_KHR			0x30FA
136#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR		0x0001	/* eglClientWaitSyncKHR <flags> bitfield */
137#define EGL_FOREVER_KHR				0xFFFFFFFFFFFFFFFFull
138#define EGL_NO_SYNC_KHR				((EGLSyncKHR)0)
139#ifdef EGL_EGLEXT_PROTOTYPES
140EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
141EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync);
142EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
143EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
144EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
145#endif /* EGL_EGLEXT_PROTOTYPES */
146typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
147typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
148typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
149typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
150typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
151#endif
152
153/* EGL_MESA_screen extension  >>> PRELIMINARY <<< */
154#ifndef EGL_MESA_screen_surface
155#define EGL_MESA_screen_surface 1
156
157#define EGL_BAD_SCREEN_MESA                    0x4000
158#define EGL_BAD_MODE_MESA                      0x4001
159#define EGL_SCREEN_COUNT_MESA                  0x4002
160#define EGL_SCREEN_POSITION_MESA               0x4003
161#define EGL_SCREEN_POSITION_GRANULARITY_MESA   0x4004
162#define EGL_MODE_ID_MESA                       0x4005
163#define EGL_REFRESH_RATE_MESA                  0x4006
164#define EGL_OPTIMAL_MESA                       0x4007
165#define EGL_INTERLACED_MESA                    0x4008
166#define EGL_SCREEN_BIT_MESA                    0x08
167
168typedef uint32_t EGLScreenMESA;
169typedef uint32_t EGLModeMESA;
170
171#ifdef EGL_EGLEXT_PROTOTYPES
172EGLAPI EGLBoolean EGLAPIENTRY eglChooseModeMESA(EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
173EGLAPI EGLBoolean EGLAPIENTRY eglGetModesMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
174EGLAPI EGLBoolean EGLAPIENTRY eglGetModeAttribMESA(EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value);
175EGLAPI EGLBoolean EGLAPIENTRY eglGetScreensMESA(EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens);
176EGLAPI EGLSurface EGLAPIENTRY eglCreateScreenSurfaceMESA(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
177EGLAPI EGLBoolean EGLAPIENTRY eglShowScreenSurfaceMESA(EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode);
178EGLAPI EGLBoolean EGLAPIENTRY eglScreenPositionMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y);
179EGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value);
180EGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenSurfaceMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface);
181EGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenModeMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode);
182EGLAPI const char * EGLAPIENTRY eglQueryModeStringMESA(EGLDisplay dpy, EGLModeMESA mode);
183#endif /* EGL_EGLEXT_PROTOTYPES */
184
185typedef EGLBoolean (EGLAPIENTRYP PFNEGLCHOOSEMODEMESA) (EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
186typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMODESMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
187typedef EGLBoolean (EGLAPIENTRYP PFNEGLGetModeATTRIBMESA) (EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value);
188typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSCRREENSMESA) (EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens);
189typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESCREENSURFACEMESA) (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
190typedef EGLBoolean (EGLAPIENTRYP PFNEGLSHOWSCREENSURFACEMESA) (EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode);
191typedef EGLBoolean (EGLAPIENTRYP PFNEGLSCREENPOSIITONMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y);
192typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value);
193typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENSURFACEMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface);
194typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENMODEMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode);
195typedef const char * (EGLAPIENTRYP PFNEGLQUERYMODESTRINGMESA) (EGLDisplay dpy, EGLModeMESA mode);
196
197#endif /* EGL_MESA_screen_surface */
198
199
200#ifndef EGL_MESA_copy_context
201#define EGL_MESA_copy_context 1
202
203#ifdef EGL_EGLEXT_PROTOTYPES
204EGLAPI EGLBoolean EGLAPIENTRY eglCopyContextMESA(EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask);
205#endif /* EGL_EGLEXT_PROTOTYPES */
206
207typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOPYCONTEXTMESA) (EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask);
208
209#endif /* EGL_MESA_copy_context */
210
211#ifndef EGL_KHR_image_base
212#define EGL_KHR_image_base 1
213/* Most interfaces defined by EGL_KHR_image_pixmap above */
214#define EGL_IMAGE_PRESERVED_KHR			0x30D2	/* eglCreateImageKHR attribute */
215#endif
216
217#ifndef EGL_KHR_image_pixmap
218#define EGL_KHR_image_pixmap 1
219/* Interfaces defined by EGL_KHR_image above */
220#endif
221
222#ifndef EGL_IMG_context_priority
223#define EGL_IMG_context_priority 1
224#define EGL_CONTEXT_PRIORITY_LEVEL_IMG		0x3100
225#define EGL_CONTEXT_PRIORITY_HIGH_IMG		0x3101
226#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG		0x3102
227#define EGL_CONTEXT_PRIORITY_LOW_IMG		0x3103
228#endif
229
230
231#ifndef EGL_NOK_swap_region
232#define EGL_NOK_swap_region 1
233
234#ifdef EGL_EGLEXT_PROTOTYPES
235EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK(EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects);
236#endif
237
238typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOK) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects);
239#endif
240
241
242#ifndef EGL_NOK_texture_from_pixmap
243#define EGL_NOK_texture_from_pixmap 1
244
245#define EGL_Y_INVERTED_NOK			0x307F
246#endif /* EGL_NOK_texture_from_pixmap */
247
248
249#ifdef __cplusplus
250}
251#endif
252
253#endif
254