Ghost Context Refactor
[blender-staging.git] / extern / glew-es / include / GL / eglew.h
1 /*
2 ** The OpenGL Extension Wrangler Library
3 ** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
4 ** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
5 ** Copyright (C) 2002, Lev Povalahev
6 ** All rights reserved.
7 ** 
8 ** Redistribution and use in source and binary forms, with or without 
9 ** modification, are permitted provided that the following conditions are met:
10 ** 
11 ** * Redistributions of source code must retain the above copyright notice, 
12 **   this list of conditions and the following disclaimer.
13 ** * Redistributions in binary form must reproduce the above copyright notice, 
14 **   this list of conditions and the following disclaimer in the documentation 
15 **   and/or other materials provided with the distribution.
16 ** * The name of the author may be used to endorse or promote products 
17 **   derived from this software without specific prior written permission.
18 **
19 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
20 ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
21 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
23 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
24 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
25 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
29 ** THE POSSIBILITY OF SUCH DAMAGE.
30 */
31
32 /*
33 ** Copyright (c) 2007 The Khronos Group Inc.
34 ** 
35 ** Permission is hereby granted, free of charge, to any person obtaining a
36 ** copy of this software and/or associated documentation files (the
37 ** "Materials"), to deal in the Materials without restriction, including
38 ** without limitation the rights to use, copy, modify, merge, publish,
39 ** distribute, sublicense, and/or sell copies of the Materials, and to
40 ** permit persons to whom the Materials are furnished to do so, subject to
41 ** the following conditions:
42 ** 
43 ** The above copyright notice and this permission notice shall be included
44 ** in all copies or substantial portions of the Materials.
45 ** 
46 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
47 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
48 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
49 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
50 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
51 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
52 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
53 */
54
55 /*
56 ** License Applicability. Except to the extent portions of this file are
57 ** made subject to an alternative license as permitted in the SGI Free
58 ** Software License B, Version 1.0 (the "License"), the contents of this
59 ** file are subject only to the provisions of the License. You may not use
60 ** this file except in compliance with the License. You may obtain a copy
61 ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
62 ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
63 **
64 ** http://oss.sgi.com/projects/FreeB
65 **
66 ** Note that, as provided in the License, the Software is distributed on an
67 ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
68 ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
69 ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
70 ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
71 **
72 ** Original Code. The Original Code is: OpenGL Sample Implementation,
73 ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
74 ** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc.
75 ** Copyright in any portions created by third parties is as indicated
76 ** elsewhere herein. All Rights Reserved.
77 **
78 ** Additional Notice Provisions: The application programming interfaces
79 ** established by SGI in conjunction with the Original Code are The
80 ** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
81 ** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
82 ** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
83 ** Window System(R) (Version 1.3), released October 19, 1998. This software
84 ** was created using the OpenGL(R) version 1.2.1 Sample Implementation
85 ** published by SGI, but has not been independently verified as being
86 ** compliant with the OpenGL(R) version 1.2.1 Specification.
87 */
88
89 /*
90 ** Copyright (c) 2007-2009 The Khronos Group Inc.
91 **
92 ** Permission is hereby granted, free of charge, to any person obtaining a
93 ** copy of this software and/or associated documentation files (the
94 ** "Materials"), to deal in the Materials without restriction, including
95 ** without limitation the rights to use, copy, modify, merge, publish,
96 ** distribute, sublicense, and/or sell copies of the Materials, and to
97 ** permit persons to whom the Materials are furnished to do so, subject to
98 ** the following conditions:
99 **
100 ** The above copyright notice and this permission notice shall be included
101 ** in all copies or substantial portions of the Materials.
102 **
103 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
104 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
105 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
106 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
107 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
108 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
109 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
110 */
111
112 /* Platform-specific types and definitions for egl.h
113  * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $
114  *
115  * Adopters may modify khrplatform.h and this file to suit their platform.
116  * You are encouraged to submit all modifications to the Khronos group so that
117  * they can be included in future versions of this file.  Please submit changes
118  * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
119  * by filing a bug against product "EGL" component "Registry".
120  */
121
122 /* Copyright © 2011 Linaro Limited
123  */
124
125 #ifndef __eglew_h__
126 #define __eglew_h__
127 #define __EGLEW_H__
128
129
130 #if defined(__egl_h_) || defined (__EGL_H_)
131 #error egl.h included before glew.h
132 #endif
133 #if defined(__eglext_h_) || defined (__EGLEXT_H_)
134 #error eglext.h included before glew.h
135 #endif
136 #if defined(__eglplatform_h_) || defined (__EGLPLATFORM_H_)
137 #error eglplatform.h included before glew.h
138 #endif
139 #if defined(GLES_EGLTYPES_H) || defined (gles_egltypes_h)
140 #error egltypes.h.h included before glew.h
141 #endif
142
143 #define __egl_h_
144 #define __EGL_H_
145 #define __eglext_h_
146 #define __EGLEXT_H_
147 #define GLES_EGLTYPES_H
148 #define gles_egltypes_h
149 #define __eglplatform_h_
150 #define __EGLPLATFORM_H_
151
152 /* TODO insert license */
153
154 /* Includes */
155 #include <GL/glew.h>
156
157 /* Macros used in EGL function prototype declarations.
158  *
159  * EGL functions should be prototyped as:
160  *
161  * EGLAPI return-type EGLAPIENTRY eglFunction(arguments);
162  * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments);
163  *
164  * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h
165  */
166
167 #ifndef EGLAPI
168 #define EGLAPI KHRONOS_APICALL
169 #endif
170
171 #ifndef EGLAPIENTRY
172 #define EGLAPIENTRY  KHRONOS_APIENTRY
173 #endif
174 #define EGLAPIENTRYP EGLAPIENTRY*
175
176 /* The types NativeDisplayType, NativeWindowType, and NativePixmapType
177  * are aliases of window-system-dependent types, such as X Display * or
178  * Windows Device Context. They must be defined in platform-specific
179  * code below. The EGL-prefixed versions of Native*Type are the same
180  * types, renamed in EGL 1.3 so all types in the API start with "EGL".
181  *
182  * Khronos STRONGLY RECOMMENDS that you use the default definitions
183  * provided below, since these changes affect both binary and source
184  * portability of applications using EGL running on different EGL
185  * implementations.
186  */
187
188 #if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
189 #ifndef WIN32_LEAN_AND_MEAN
190 #define WIN32_LEAN_AND_MEAN 1
191 #endif
192 #include <windows.h>
193
194 typedef HDC     EGLNativeDisplayType;
195 typedef HBITMAP EGLNativePixmapType;
196 typedef HWND    EGLNativeWindowType;
197
198 #elif defined(__WINSCW__) || defined(__SYMBIAN32__)  /* Symbian */
199
200 typedef int   EGLNativeDisplayType;
201 typedef void *EGLNativeWindowType;
202 typedef void *EGLNativePixmapType;
203
204 #elif defined(__unix__)
205
206 /* X11 (tentative)  */
207 #include <X11/Xlib.h>
208 #include <X11/Xutil.h>
209
210 typedef Display *EGLNativeDisplayType;
211 typedef Pixmap   EGLNativePixmapType;
212 typedef Window   EGLNativeWindowType;
213
214 #elif defined(__APPLE__)
215
216 typedef void *EGLNativeDisplayType;
217 typedef void *EGLNativePixmapType;
218 typedef void *EGLNativeWindowType;
219
220 #endif
221
222 /* EGL 1.2 types, renamed for consistency in EGL 1.3 */
223 typedef EGLNativeDisplayType NativeDisplayType;
224 typedef EGLNativePixmapType  NativePixmapType;
225 typedef EGLNativeWindowType  NativeWindowType;
226
227
228 /* Define EGLint. This must be a signed integral type large enough to contain
229  * all legal attribute names and values passed into and out of EGL, whether
230  * their type is boolean, bitmask, enumerant (symbolic constant), integer,
231  * handle, or other.  While in general a 32-bit integer will suffice, if
232  * handles are 64 bit types, then EGLint should be defined as a signed 64-bit
233  * integer type.
234  */
235 typedef khronos_int32_t EGLint;
236
237
238 /* Basic types */
239 typedef int EGLBoolean;
240
241 /* Internal types */
242 typedef void *EGLDisplay;
243 typedef void *EGLConfig;
244 typedef void *EGLSurface;
245 typedef void *EGLContext;
246
247 /* Handle values */
248 #define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)-1)
249 #define EGL_NO_CONTEXT ((EGLContext)0)
250 #define EGL_NO_DISPLAY ((EGLDisplay)0)
251 #define EGL_NO_SURFACE ((EGLSurface)0)
252 #define EGL_UNKNOWN     ((EGLint)-1)
253
254 #ifdef __cplusplus
255 extern "C" {
256 #endif
257
258 /* ----------------------------- EGL_VERSION_1_1 ---------------------------- */
259
260 #ifndef EGL_VERSION_1_1
261 #define EGL_VERSION_1_0         1
262 #define EGL_VERSION_1_1         1
263
264 /*
265 ** Boolean
266 */
267 #define EGL_FALSE                      0
268 #define EGL_TRUE                       1
269
270 /*
271 ** Errors
272 */
273 #define EGL_SUCCESS                    0x3000
274 #define EGL_NOT_INITIALIZED            0x3001
275 #define EGL_BAD_ACCESS                 0x3002
276 #define EGL_BAD_ALLOC                  0x3003
277 #define EGL_BAD_ATTRIBUTE              0x3004
278 #define EGL_BAD_CONFIG                 0x3005
279 #define EGL_BAD_CONTEXT                0x3006
280 #define EGL_BAD_CURRENT_SURFACE        0x3007
281 #define EGL_BAD_DISPLAY                0x3008
282 #define EGL_BAD_MATCH                  0x3009
283 #define EGL_BAD_NATIVE_PIXMAP          0x300A
284 #define EGL_BAD_NATIVE_WINDOW          0x300B
285 #define EGL_BAD_PARAMETER              0x300C
286 #define EGL_BAD_SURFACE                0x300D
287 #define EGL_CONTEXT_LOST               0x300E
288 /* 0x300F - 0x301F reserved for additional errors. */
289
290 /*
291 ** Config attributes
292 */
293 #define EGL_BUFFER_SIZE                0x3020
294 #define EGL_ALPHA_SIZE                 0x3021
295 #define EGL_BLUE_SIZE                  0x3022
296 #define EGL_GREEN_SIZE                 0x3023
297 #define EGL_RED_SIZE                   0x3024
298 #define EGL_DEPTH_SIZE                 0x3025
299 #define EGL_STENCIL_SIZE               0x3026
300 #define EGL_CONFIG_CAVEAT              0x3027
301 #define EGL_CONFIG_ID                  0x3028
302 #define EGL_LEVEL                      0x3029
303 #define EGL_MAX_PBUFFER_HEIGHT         0x302A
304 #define EGL_MAX_PBUFFER_PIXELS         0x302B
305 #define EGL_MAX_PBUFFER_WIDTH          0x302C
306 #define EGL_NATIVE_RENDERABLE          0x302D
307 #define EGL_NATIVE_VISUAL_ID           0x302E
308 #define EGL_NATIVE_VISUAL_TYPE         0x302F
309 /*#define EGL_PRESERVED_RESOURCES        0x3030*/
310 #define EGL_SAMPLES                    0x3031
311 #define EGL_SAMPLE_BUFFERS             0x3032
312 #define EGL_SURFACE_TYPE               0x3033
313 #define EGL_TRANSPARENT_TYPE           0x3034
314 #define EGL_TRANSPARENT_BLUE_VALUE     0x3035
315 #define EGL_TRANSPARENT_GREEN_VALUE    0x3036
316 #define EGL_TRANSPARENT_RED_VALUE      0x3037
317 #define EGL_NONE                       0x3038   /* Also a config value */
318 #define EGL_BIND_TO_TEXTURE_RGB        0x3039
319 #define EGL_BIND_TO_TEXTURE_RGBA       0x303A
320 #define EGL_MIN_SWAP_INTERVAL          0x303B
321 #define EGL_MAX_SWAP_INTERVAL          0x303C
322
323 /*
324 ** Config values
325 */
326 #define EGL_DONT_CARE                  ((EGLint) -1)
327
328 #define EGL_SLOW_CONFIG                0x3050   /* EGL_CONFIG_CAVEAT value */
329 #define EGL_NON_CONFORMANT_CONFIG      0x3051   /* " */
330 #define EGL_TRANSPARENT_RGB            0x3052   /* EGL_TRANSPARENT_TYPE value */
331 #define EGL_NO_TEXTURE                 0x305C   /* EGL_TEXTURE_FORMAT/TARGET value */
332 #define EGL_TEXTURE_RGB                0x305D   /* EGL_TEXTURE_FORMAT value */
333 #define EGL_TEXTURE_RGBA               0x305E   /* " */
334 #define EGL_TEXTURE_2D                 0x305F   /* EGL_TEXTURE_TARGET value */
335
336 /*
337 ** Config attribute mask bits
338 */
339 #define EGL_PBUFFER_BIT                0x01     /* EGL_SURFACE_TYPE mask bit */
340 #define EGL_PIXMAP_BIT                 0x02     /* " */
341 #define EGL_WINDOW_BIT                 0x04     /* " */
342
343 /*
344 ** String names
345 */
346 #define EGL_VENDOR                     0x3053   /* eglQueryString target */
347 #define EGL_VERSION                    0x3054   /* " */
348 #define EGL_EXTENSIONS                 0x3055   /* " */
349
350 /*
351 ** Surface attributes
352 */
353 #define EGL_HEIGHT                     0x3056
354 #define EGL_WIDTH                      0x3057
355 #define EGL_LARGEST_PBUFFER            0x3058
356 #define EGL_TEXTURE_FORMAT             0x3080   /* For pbuffers bound as textures */
357 #define EGL_TEXTURE_TARGET             0x3081   /* " */
358 #define EGL_MIPMAP_TEXTURE             0x3082   /* " */
359 #define EGL_MIPMAP_LEVEL               0x3083   /* " */
360
361 /*
362 ** BindTexImage / ReleaseTexImage buffer target
363 */
364 #define EGL_BACK_BUFFER                0x3084
365
366 /*
367 ** Current surfaces
368 */
369 #define EGL_DRAW                       0x3059
370 #define EGL_READ                       0x305A
371
372 /*
373 ** Engines
374 */
375 #define EGL_CORE_NATIVE_ENGINE         0x305B
376
377 /* 0x305C-0x3FFFF reserved for future use */
378
379 /*
380 ** Functions
381 */
382
383 EGLAPI EGLint EGLAPIENTRY eglGetError (void);
384
385 EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay (NativeDisplayType display);
386 EGLAPI EGLBoolean EGLAPIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor);
387 EGLAPI EGLBoolean EGLAPIENTRY eglTerminate (EGLDisplay dpy);
388 EGLAPI const char * EGLAPIENTRY eglQueryString (EGLDisplay dpy, EGLint name);
389 EGLAPI void (* EGLAPIENTRY eglGetProcAddress (const char *procname))();
390
391 EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
392 EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
393 EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
394
395 EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, NativeWindowType window, const EGLint *attrib_list);
396 EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, NativePixmapType pixmap, const EGLint *attrib_list);
397 EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
398 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface);
399 EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
400
401 /* EGL 1.1 render-to-texture APIs */
402 EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
403 EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
404 EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
405
406 /* EGL 1.1 swap control API */
407 EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
408
409 EGLAPI EGLContext EGLAPIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_list, const EGLint *attrib_list);
410 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx);
411 EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
412 EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext (void);
413 EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface (EGLint readdraw);
414 EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay (void);
415 EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
416
417 EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL (void);
418 EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative (EGLint engine);
419 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface draw);
420 EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, NativePixmapType target);
421
422 #define EGLEW_VERSION_1_1 EGLEW_GET_VAR(__EGLEW_VERSION_1_1)
423
424 #endif /* EGL_VERSION_1_1 */
425
426 /* ---------------------------- EGL_VERSION_1_2 ---------------------------- */
427
428 #if !defined(EGL_VERSION_1_2) 
429 #define EGL_VERSION_1_2 1
430
431 #define EGL_OPENGL_ES_BIT 0x01
432 #define EGL_OPENVG_BIT 0x02
433 #define EGL_PRESERVED_RESOURCES 0x3030
434 #define EGL_LUMINANCE_SIZE 0x303D
435 #define EGL_ALPHA_MASK_SIZE 0x303E
436 #define EGL_COLOR_BUFFER_TYPE 0x303F
437 #define EGL_RENDERABLE_TYPE 0x3040
438 #define EGL_SINGLE_BUFFER 0x3085
439 #define EGL_RENDER_BUFFER 0x3086
440 #define EGL_COLORSPACE 0x3087
441 #define EGL_ALPHA_FORMAT 0x3088
442 #define EGL_COLORSPACE_sRGB 0x3089
443 #define EGL_COLORSPACE_LINEAR 0x308A
444 #define EGL_ALPHA_FORMAT_NONPRE 0x308B
445 #define EGL_ALPHA_FORMAT_PRE 0x308C
446 #define EGL_CLIENT_APIS 0x308D
447 #define EGL_RGB_BUFFER 0x308E
448 #define EGL_LUMINANCE_BUFFER 0x308F
449 #define EGL_HORIZONTAL_RESOLUTION 0x3090
450 #define EGL_VERTICAL_RESOLUTION 0x3091
451 #define EGL_PIXEL_ASPECT_RATIO 0x3092
452 #define EGL_SWAP_BEHAVIOR 0x3093
453 #define EGL_BUFFER_PRESERVED 0x3094
454 #define EGL_BUFFER_DESTROYED 0x3095
455 #define EGL_OPENVG_IMAGE 0x3096
456 #define EGL_CONTEXT_CLIENT_TYPE 0x3097
457 #define EGL_OPENGL_ES_API 0x30A0
458 #define EGL_OPENVG_API 0x30A1
459 #define EGL_DISPLAY_SCALING 10000
460
461 typedef unsigned int EGLenum;
462 typedef void *EGLClientBuffer;
463
464 typedef EGLBoolean (EGLAPIENTRY * PFNEGLBINDAPIPROC) (EGLenum);
465 typedef EGLSurface (EGLAPIENTRY * PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC) (EGLDisplay, EGLenum, EGLClientBuffer, EGLConfig, const EGLint *);
466 typedef EGLenum (EGLAPIENTRY * PFNEGLQUERYAPIPROC) (void);
467 typedef EGLBoolean (EGLAPIENTRY * PFNEGLRELEASETHREADPROC) (void);
468 typedef EGLBoolean (EGLAPIENTRY * PFNEGLWAITCLIENTPROC) (void);
469
470 #define eglBindAPI EGLEW_GET_FUN(__eglewBindAPI)
471 #define eglCreatePbufferFromClientBuffer EGLEW_GET_FUN(__eglewCreatePbufferFromClientBuffer)
472 #define eglQueryAPI EGLEW_GET_FUN(__eglewQueryAPI)
473 #define eglReleaseThread EGLEW_GET_FUN(__eglewReleaseThread)
474 #define eglWaitClient EGLEW_GET_FUN(__eglewWaitClient)
475
476 #define EGLEW_VERSION_1_2 EGLEW_GET_VAR(__EGLEW_VERSION_1_2)
477
478 #endif /* !EGL_VERSION_1_2 */
479
480 /* ---------------------------- EGL_VERSION_1_3 ---------------------------- */
481
482 #if !defined(EGL_VERSION_1_3) 
483 #define EGL_VERSION_1_3 1
484
485 #define EGL_OPENGL_ES2_BIT 0x04
486 #define EGL_MATCH_NATIVE_PIXMAP 0x3041
487 #define EGL_CONTEXT_CLIENT_VERSION 0x3098
488
489 #define EGLEW_VERSION_1_3 EGLEW_GET_VAR(__EGLEW_VERSION_1_3)
490
491 #endif /* !EGL_VERSION_1_3 */
492
493 /* ---------------------------- EGL_VERSION_1_4 ---------------------------- */
494
495 #if !defined(EGL_VERSION_1_4) 
496 #define EGL_VERSION_1_4 1
497
498 #define EGL_OPENGL_BIT 0x0008
499 #define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020
500 #define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040
501 #define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200
502 #define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400
503 #define EGL_VG_COLORSPACE 0x3087
504 #define EGL_VG_ALPHA_FORMAT 0x3088
505 #define EGL_VG_COLORSPACE_sRGB 0x3089
506 #define EGL_VG_COLORSPACE_LINEAR 0x308A
507 #define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B
508 #define EGL_VG_ALPHA_FORMAT_PRE 0x308C
509 #define EGL_MULTISAMPLE_RESOLVE 0x3099
510 #define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A
511 #define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B
512 #define EGL_OPENGL_API 0x30A2
513
514 typedef void (*__eglMustCastToProperFunctionPointerType)(void);
515
516 #define EGLEW_VERSION_1_4 EGLEW_GET_VAR(__EGLEW_VERSION_1_4)
517
518 #endif /* !EGL_VERSION_1_4 */
519
520 /* ---------------------------- EGL_VERSION_1_5 ---------------------------- */
521
522 #if !defined(EGL_VERSION_1_5) 
523 #define EGL_VERSION_1_5 1
524
525 typedef void *EGLSync;
526 typedef intptr_t EGLAttrib;
527 typedef khronos_utime_nanoseconds_t EGLTime;
528 #define EGL_CONTEXT_MAJOR_VERSION         0x3098
529 #define EGL_CONTEXT_MINOR_VERSION         0x30FB
530 #define EGL_CONTEXT_OPENGL_PROFILE_MASK   0x30FD
531 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
532 #define EGL_NO_RESET_NOTIFICATION         0x31BE
533 #define EGL_LOSE_CONTEXT_ON_RESET         0x31BF
534 #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001
535 #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002
536 #define EGL_CONTEXT_OPENGL_DEBUG          0x31B0
537 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1
538 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS  0x31B2
539 #define EGL_OPENGL_ES3_BIT                0x00000040
540 #define EGL_CL_EVENT_HANDLE               0x309C
541 #define EGL_SYNC_CL_EVENT                 0x30FE
542 #define EGL_SYNC_CL_EVENT_COMPLETE        0x30FF
543 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE  0x30F0
544 #define EGL_SYNC_TYPE                     0x30F7
545 #define EGL_SYNC_STATUS                   0x30F1
546 #define EGL_SYNC_CONDITION                0x30F8
547 #define EGL_SIGNALED                      0x30F2
548 #define EGL_UNSIGNALED                    0x30F3
549 #define EGL_SYNC_FLUSH_COMMANDS_BIT       0x0001
550 #define EGL_FOREVER                       0xFFFFFFFFFFFFFFFFull
551 #define EGL_TIMEOUT_EXPIRED               0x30F5
552 #define EGL_CONDITION_SATISFIED           0x30F6
553 #define EGL_NO_SYNC                       ((EGLSync)0)
554 #define EGL_SYNC_FENCE                    0x30F9
555 #define EGL_GL_COLORSPACE                 0x309D
556 #define EGL_GL_COLORSPACE_SRGB            0x3089
557 #define EGL_GL_COLORSPACE_LINEAR          0x308A
558 #define EGL_GL_RENDERBUFFER               0x30B9
559 #define EGL_GL_TEXTURE_2D                 0x30B1
560 #define EGL_GL_TEXTURE_LEVEL              0x30BC
561 #define EGL_GL_TEXTURE_3D                 0x30B2
562 #define EGL_GL_TEXTURE_ZOFFSET            0x30BD
563 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3
564 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4
565 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5
566 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6
567 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7
568 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8
569
570 typedef EGLSync    (EGLAPIENTRY * PFNCREATESYNC                 ) (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list);
571 typedef EGLBoolean (EGLAPIENTRY * PFNDESTROYSYNC                ) (EGLDisplay dpy, EGLSync sync);
572 typedef EGLint     (EGLAPIENTRY * PFNCLIENTWAITSYNC             ) (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
573 typedef EGLBoolean (EGLAPIENTRY * PFNGETSYNCATTRIB              ) (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value);
574 typedef EGLDisplay (EGLAPIENTRY * PFNGETPLATFORMDISPLAY         ) (EGLenum platform, void *native_display, const EGLAttrib *attrib_list);
575 typedef EGLSurface (EGLAPIENTRY * PFNCREATEPLATFORMWINDOWSURFACE) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list);
576 typedef EGLSurface (EGLAPIENTRY * PFNCREATEPLATFORMPIXMAPSURFACE) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list);
577 typedef EGLBoolean (EGLAPIENTRY * PFNWAITSYNC                   ) (EGLDisplay dpy, EGLSync sync, EGLint flags);
578
579 #define eglCreateSync                  EGLEW_GET_FUN(__eglewCreateSync                 )
580 #define eglDestroySync                 EGLEW_GET_FUN(__eglewDestroySync                )
581 #define eglClientWaitSync              EGLEW_GET_FUN(__eglewClientWaitSync             )
582 #define eglGetSyncAttrib               EGLEW_GET_FUN(__eglewGetSyncAttrib              )
583 #define eglGetPlatformDisplay          EGLEW_GET_FUN(__eglewGetPlatformDisplay         )
584 #define eglCreatePlatformWindowSurface EGLEW_GET_FUN(__eglewCreatePlatformWindowSurface)
585 #define eglCreatePlatformPixmapSurface EGLEW_GET_FUN(__eglewCreatePlatformPixmapSurface)
586 #define eglWaitSync                    EGLEW_GET_FUN(__eglewWaitSync                   )
587
588 #define EGLEW_VERSION_1_5 EGLEW_GET_VAR(__EGLEW_VERSION_1_5)
589
590 #endif /* !EGL_VERSION_1_5 */
591
592 /* ------------------------- EGL_ANDROID_blob_cache ------------------------ */
593
594 #if !defined(EGL_ANDROID_blob_cache) 
595 #define EGL_ANDROID_blob_cache 1
596
597 typedef khronos_ssize_t EGLsizeiANDROID; // XXX jwilkins: missing typedef
598 typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void* key, EGLsizeiANDROID keySize, void* value, EGLsizeiANDROID valueSize); // XXX jwilkins: missing typedef
599 typedef void (*EGLSetBlobFuncANDROID) (const void* key, EGLsizeiANDROID keySize, const void* value, EGLsizeiANDROID valueSize); // XXX jwilkins: missing typedef
600
601 typedef void (EGLAPIENTRY * PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
602
603 #define eglSetBlobCacheFuncsANDROID EGLEW_GET_FUN(__eglewSetBlobCacheFuncsANDROID)
604
605 #define EGLEW_ANDROID_blob_cache EGLEW_GET_VAR(__EGLEW_ANDROID_blob_cache)
606
607 #endif /* !EGL_ANDROID_blob_cache */
608
609 /* --------------------- EGL_ANDROID_framebuffer_target -------------------- */
610
611 #if !defined(EGL_ANDROID_framebuffer_target) 
612 #define EGL_ANDROID_framebuffer_target 1
613
614 #define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147
615
616 #define EGLEW_ANDROID_framebuffer_target EGLEW_GET_VAR(__EGLEW_ANDROID_framebuffer_target)
617
618 #endif /* !EGL_ANDROID_framebuffer_target */
619
620 /* -------------------- EGL_ANDROID_image_native_buffer -------------------- */
621
622 #if !defined(EGL_ANDROID_image_native_buffer) 
623 #define EGL_ANDROID_image_native_buffer 1
624
625 #define EGL_NATIVE_BUFFER_ANDROID 0x3140
626
627 #define EGLEW_ANDROID_image_native_buffer EGLEW_GET_VAR(__EGLEW_ANDROID_image_native_buffer)
628
629 #endif /* !EGL_ANDROID_image_native_buffer */
630
631 /* --------------------- EGL_ANDROID_native_fence_sync --------------------- */
632
633 #if !defined(EGL_ANDROID_native_fence_sync) 
634 #define EGL_ANDROID_native_fence_sync 1
635
636 typedef void* EGLSyncKHR; // XXX jwilkins: missing typedef
637
638 #define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144
639 #define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145
640 #define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146
641
642 typedef EGLint (EGLAPIENTRY * PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR);
643
644 #define eglDupNativeFenceFDANDROID EGLEW_GET_FUN(__eglewDupNativeFenceFDANDROID)
645
646 #define EGLEW_ANDROID_native_fence_sync EGLEW_GET_VAR(__EGLEW_ANDROID_native_fence_sync)
647
648 #endif /* !EGL_ANDROID_native_fence_sync */
649
650 /* ------------------------- EGL_ANDROID_recordable ------------------------ */
651
652 #if !defined(EGL_ANDROID_recordable) 
653 #define EGL_ANDROID_recordable 1
654
655 #define EGL_RECORDABLE_ANDROID 0x3142
656
657 #define EGLEW_ANDROID_recordable EGLEW_GET_VAR(__EGLEW_ANDROID_recordable)
658
659 #endif /* !EGL_ANDROID_recordable */
660
661 /* ---------------- EGL_ANGLE_d3d_share_handle_client_buffer --------------- */
662
663 #if !defined(EGL_ANGLE_d3d_share_handle_client_buffer) 
664 #define EGL_ANGLE_d3d_share_handle_client_buffer 1
665
666 #define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
667
668 #define EGLEW_ANGLE_d3d_share_handle_client_buffer EGLEW_GET_VAR(__EGLEW_ANGLE_d3d_share_handle_client_buffer)
669
670 #endif /* !EGL_ANGLE_d3d_share_handle_client_buffer */
671
672 /* -------------------- EGL_ANGLE_query_surface_pointer -------------------- */
673
674 #if !defined(EGL_ANGLE_query_surface_pointer) 
675 #define EGL_ANGLE_query_surface_pointer 1
676
677 typedef EGLBoolean (EGLAPIENTRY * PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void ** value);
678
679 #define eglQuerySurfacePointerANGLE EGLEW_GET_FUN(__eglewQuerySurfacePointerANGLE)
680
681 #define EGLEW_ANGLE_query_surface_pointer EGLEW_GET_VAR(__EGLEW_ANGLE_query_surface_pointer)
682
683 #endif /* !EGL_ANGLE_query_surface_pointer */
684
685 /* ------------- EGL_ANGLE_surface_d3d_texture_2d_share_handle ------------- */
686
687 #if !defined(EGL_ANGLE_surface_d3d_texture_2d_share_handle) 
688 #define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
689
690 #define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
691
692 #define EGLEW_ANGLE_surface_d3d_texture_2d_share_handle EGLEW_GET_VAR(__EGLEW_ANGLE_surface_d3d_texture_2d_share_handle)
693
694 #endif /* !EGL_ANGLE_surface_d3d_texture_2d_share_handle */
695
696 /* --------------------------- EGL_EXT_buffer_age -------------------------- */
697
698 #if !defined(EGL_EXT_buffer_age) 
699 #define EGL_EXT_buffer_age 1
700
701 #define EGL_BUFFER_AGE_EXT 0x313D
702
703 #define EGLEW_EXT_buffer_age EGLEW_GET_VAR(__EGLEW_EXT_buffer_age)
704
705 #endif /* !EGL_EXT_buffer_age */
706
707 /* ------------------- EGL_EXT_create_context_robustness ------------------- */
708
709 #if !defined(EGL_EXT_create_context_robustness) 
710 #define EGL_EXT_create_context_robustness 1
711
712 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF
713 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138
714 #define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE
715 #define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF
716
717 #define EGLEW_EXT_create_context_robustness EGLEW_GET_VAR(__EGLEW_EXT_create_context_robustness)
718
719 #endif /* !EGL_EXT_create_context_robustness */
720
721 /* ------------------------ EGL_EXT_multiview_window ----------------------- */
722
723 #if !defined(EGL_EXT_multiview_window) 
724 #define EGL_EXT_multiview_window 1
725
726 #define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134
727
728 #define EGLEW_EXT_multiview_window EGLEW_GET_VAR(__EGLEW_EXT_multiview_window)
729
730 #endif /* !EGL_EXT_multiview_window */
731
732 /* -------------------------- EGL_HI_clientpixmap -------------------------- */
733
734 #if !defined(EGL_HI_clientpixmap) 
735 #define EGL_HI_clientpixmap 1
736
737 #define EGLEW_HI_clientpixmap EGLEW_GET_VAR(__EGLEW_HI_clientpixmap)
738
739 #endif /* !EGL_HI_clientpixmap */
740
741 /* -------------------------- EGL_HI_colorformats -------------------------- */
742
743 #if !defined(EGL_HI_colorformats) 
744 #define EGL_HI_colorformats 1
745
746 #define EGL_COLOR_FORMAT_HI 0x8F70
747 #define EGL_COLOR_RGB_HI 0x8F71
748 #define EGL_COLOR_RGBA_HI 0x8F72
749 #define EGL_COLOR_ARGB_HI 0x8F73
750
751 #define EGLEW_HI_colorformats EGLEW_GET_VAR(__EGLEW_HI_colorformats)
752
753 #endif /* !EGL_HI_colorformats */
754
755 /* ------------------------ EGL_IMG_context_priority ----------------------- */
756
757 #if !defined(EGL_IMG_context_priority) 
758 #define EGL_IMG_context_priority 1
759
760 #define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100
761 #define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101
762 #define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102
763 #define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103
764
765 #define EGLEW_IMG_context_priority EGLEW_GET_VAR(__EGLEW_IMG_context_priority)
766
767 #endif /* !EGL_IMG_context_priority */
768
769 /* ------------------------- EGL_KHR_config_attribs ------------------------ */
770
771 #if !defined(EGL_KHR_config_attribs) 
772 #define EGL_KHR_config_attribs 1
773
774 #define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020
775 #define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040
776 #define EGL_CONFORMANT_KHR 0x3042
777
778 #define EGLEW_KHR_config_attribs EGLEW_GET_VAR(__EGLEW_KHR_config_attribs)
779
780 #endif /* !EGL_KHR_config_attribs */
781
782 /* ------------------------- EGL_KHR_create_context ------------------------ */
783
784 #if !defined(EGL_KHR_create_context) 
785 #define EGL_KHR_create_context 1
786
787 #define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001
788 #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001
789 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002
790 #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002
791 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004
792 #define EGL_OPENGL_ES3_BIT_KHR 0x0040
793 #define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098
794 #define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB
795 #define EGL_CONTEXT_FLAGS_KHR 0x30FC
796 #define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD
797 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD
798 #define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE
799 #define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF
800
801 #define EGLEW_KHR_create_context EGLEW_GET_VAR(__EGLEW_KHR_create_context)
802
803 #endif /* !EGL_KHR_create_context */
804
805 /* --------------------------- EGL_KHR_fence_sync -------------------------- */
806
807 #if !defined(EGL_KHR_fence_sync) 
808 #define EGL_KHR_fence_sync 1
809
810 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
811 #define EGL_SYNC_CONDITION_KHR 0x30F8
812 #define EGL_SYNC_FENCE_KHR 0x30F9
813
814 #define EGLEW_KHR_fence_sync EGLEW_GET_VAR(__EGLEW_KHR_fence_sync)
815
816 #endif /* !EGL_KHR_fence_sync */
817
818 /* --------------------- EGL_KHR_gl_renderbuffer_image --------------------- */
819
820 #if !defined(EGL_KHR_gl_renderbuffer_image) 
821 #define EGL_KHR_gl_renderbuffer_image 1
822
823 #define EGLEW_KHR_gl_renderbuffer_image EGLEW_GET_VAR(__EGLEW_KHR_gl_renderbuffer_image)
824
825 #endif /* !EGL_KHR_gl_renderbuffer_image */
826
827 /* ---------------------- EGL_KHR_gl_texture_2D_image ---------------------- */
828
829 #if !defined(EGL_KHR_gl_texture_2D_image) 
830 #define EGL_KHR_gl_texture_2D_image 1
831
832 #define EGL_GL_TEXTURE_2D_KHR 0x30B1
833 #define EGL_GL_TEXTURE_3D_KHR 0x30B2
834 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3
835 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4
836 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5
837 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6
838 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7
839 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8
840 #define EGL_GL_RENDERBUFFER_KHR 0x30B9
841 #define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC
842 #define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD
843
844 #define EGLEW_KHR_gl_texture_2D_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_2D_image)
845
846 #endif /* !EGL_KHR_gl_texture_2D_image */
847
848 /* ---------------------- EGL_KHR_gl_texture_3D_image ---------------------- */
849
850 #if !defined(EGL_KHR_gl_texture_3D_image) 
851 #define EGL_KHR_gl_texture_3D_image 1
852
853 #define EGLEW_KHR_gl_texture_3D_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_3D_image)
854
855 #endif /* !EGL_KHR_gl_texture_3D_image */
856
857 /* -------------------- EGL_KHR_gl_texture_cubemap_image ------------------- */
858
859 #if !defined(EGL_KHR_gl_texture_cubemap_image) 
860 #define EGL_KHR_gl_texture_cubemap_image 1
861
862 #define EGLEW_KHR_gl_texture_cubemap_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_cubemap_image)
863
864 #endif /* !EGL_KHR_gl_texture_cubemap_image */
865
866 /* ----------------------------- EGL_KHR_image ----------------------------- */
867
868 #if !defined(EGL_KHR_image) 
869 #define EGL_KHR_image 1
870
871 #define EGLEW_KHR_image EGLEW_GET_VAR(__EGLEW_KHR_image)
872
873 #endif /* !EGL_KHR_image */
874
875 /* --------------------------- EGL_KHR_image_base -------------------------- */
876
877 #if !defined(EGL_KHR_image_base) 
878 #define EGL_KHR_image_base 1
879
880 #define EGL_IMAGE_PRESERVED_KHR 0x30D2
881
882 typedef void *EGLImageKHR;
883
884 typedef EGLImageKHR (EGLAPIENTRY * PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint* attrib_list);
885 typedef EGLBoolean (EGLAPIENTRY * PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
886
887 #define eglCreateImageKHR EGLEW_GET_FUN(__eglewCreateImageKHR)
888 #define eglDestroyImageKHR EGLEW_GET_FUN(__eglewDestroyImageKHR)
889
890 #define EGLEW_KHR_image_base EGLEW_GET_VAR(__EGLEW_KHR_image_base)
891
892 #endif /* !EGL_KHR_image_base */
893
894 /* -------------------------- EGL_KHR_image_pixmap ------------------------- */
895
896 #if !defined(EGL_KHR_image_pixmap) 
897 #define EGL_KHR_image_pixmap 1
898
899 #define EGL_NATIVE_PIXMAP_KHR 0x30B0
900
901 #define EGLEW_KHR_image_pixmap EGLEW_GET_VAR(__EGLEW_KHR_image_pixmap)
902
903 #endif /* !EGL_KHR_image_pixmap */
904
905 /* -------------------------- EGL_KHR_lock_surface ------------------------- */
906
907 #if !defined(EGL_KHR_lock_surface) 
908 #define EGL_KHR_lock_surface 1
909
910 #define EGL_READ_SURFACE_BIT_KHR 0x0001
911 #define EGL_WRITE_SURFACE_BIT_KHR 0x0002
912 #define EGL_LOCK_SURFACE_BIT_KHR 0x0080
913 #define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100
914 #define EGL_MATCH_FORMAT_KHR 0x3043
915 #define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0
916 #define EGL_FORMAT_RGB_565_KHR 0x30C1
917 #define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2
918 #define EGL_FORMAT_RGBA_8888_KHR 0x30C3
919 #define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4
920 #define EGL_LOCK_USAGE_HINT_KHR 0x30C5
921 #define EGL_BITMAP_POINTER_KHR 0x30C6
922 #define EGL_BITMAP_PITCH_KHR 0x30C7
923 #define EGL_BITMAP_ORIGIN_KHR 0x30C8
924 #define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9
925 #define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
926 #define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB
927 #define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
928 #define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
929 #define EGL_LOWER_LEFT_KHR 0x30CE
930 #define EGL_UPPER_LEFT_KHR 0x30CF
931
932 typedef EGLBoolean (EGLAPIENTRY * PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface, const EGLint* attrib_list);
933 typedef EGLBoolean (EGLAPIENTRY * PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface);
934
935 #define eglLockSurfaceKHR EGLEW_GET_FUN(__eglewLockSurfaceKHR)
936 #define eglUnlockSurfaceKHR EGLEW_GET_FUN(__eglewUnlockSurfaceKHR)
937
938 #define EGLEW_KHR_lock_surface EGLEW_GET_VAR(__EGLEW_KHR_lock_surface)
939
940 #endif /* !EGL_KHR_lock_surface */
941
942 /* ------------------------- EGL_KHR_lock_surface2 ------------------------- */
943
944 #if !defined(EGL_KHR_lock_surface2) 
945 #define EGL_KHR_lock_surface2 1
946
947 #define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110
948
949 #define EGLEW_KHR_lock_surface2 EGLEW_GET_VAR(__EGLEW_KHR_lock_surface2)
950
951 #endif /* !EGL_KHR_lock_surface2 */
952
953 /* ------------------------- EGL_KHR_reusable_sync ------------------------- */
954
955 #if !defined(EGL_KHR_reusable_sync) 
956 #define EGL_KHR_reusable_sync 1
957
958 #define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
959 #define EGL_SYNC_STATUS_KHR 0x30F1
960 #define EGL_SIGNALED_KHR 0x30F2
961 #define EGL_UNSIGNALED_KHR 0x30F3
962 #define EGL_TIMEOUT_EXPIRED_KHR 0x30F5
963 #define EGL_CONDITION_SATISFIED_KHR 0x30F6
964 #define EGL_SYNC_TYPE_KHR 0x30F7
965 #define EGL_SYNC_REUSABLE_KHR 0x30FA
966 #define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFF
967
968 typedef khronos_utime_nanoseconds_t EGLTimeKHR;
969 typedef void* EGLSyncKHR;
970
971 typedef EGLint (EGLAPIENTRY * PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
972 typedef EGLSyncKHR (EGLAPIENTRY * PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint* attrib_list);
973 typedef EGLBoolean (EGLAPIENTRY * PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
974 typedef EGLBoolean (EGLAPIENTRY * PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint* value);
975 typedef EGLBoolean (EGLAPIENTRY * PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
976
977 #define eglClientWaitSyncKHR EGLEW_GET_FUN(__eglewClientWaitSyncKHR)
978 #define eglCreateSyncKHR EGLEW_GET_FUN(__eglewCreateSyncKHR)
979 #define eglDestroySyncKHR EGLEW_GET_FUN(__eglewDestroySyncKHR)
980 #define eglGetSyncAttribKHR EGLEW_GET_FUN(__eglewGetSyncAttribKHR)
981 #define eglSignalSyncKHR EGLEW_GET_FUN(__eglewSignalSyncKHR)
982
983 #define EGLEW_KHR_reusable_sync EGLEW_GET_VAR(__EGLEW_KHR_reusable_sync)
984
985 #endif /* !EGL_KHR_reusable_sync */
986
987 /* ----------------------------- EGL_KHR_stream ---------------------------- */
988
989 #if !defined(EGL_KHR_stream) 
990 #define EGL_KHR_stream 1
991
992 #define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210
993 #define EGL_PRODUCER_FRAME_KHR 0x3212
994 #define EGL_CONSUMER_FRAME_KHR 0x3213
995 #define EGL_STREAM_STATE_KHR 0x3214
996 #define EGL_STREAM_STATE_CREATED_KHR 0x3215
997 #define EGL_STREAM_STATE_CONNECTING_KHR 0x3216
998 #define EGL_STREAM_STATE_EMPTY_KHR 0x3217
999 #define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218
1000 #define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219
1001 #define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A
1002 #define EGL_BAD_STREAM_KHR 0x321B
1003 #define EGL_BAD_STATE_KHR 0x321C
1004
1005 #define EGLEW_KHR_stream EGLEW_GET_VAR(__EGLEW_KHR_stream)
1006
1007 #endif /* !EGL_KHR_stream */
1008
1009 /* ------------------- EGL_KHR_stream_consumer_gltexture ------------------- */
1010
1011 #if !defined(EGL_KHR_stream_consumer_gltexture) 
1012 #define EGL_KHR_stream_consumer_gltexture 1
1013
1014 #define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E
1015
1016 typedef void* EGLStreamKHR; // XXX jwilkins: missing typedef
1017
1018 typedef EGLBoolean (EGLAPIENTRY * PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
1019 typedef EGLBoolean (EGLAPIENTRY * PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
1020 typedef EGLBoolean (EGLAPIENTRY * PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
1021
1022 #define eglStreamConsumerAcquireKHR EGLEW_GET_FUN(__eglewStreamConsumerAcquireKHR)
1023 #define eglStreamConsumerGLTextureExternalKHR EGLEW_GET_FUN(__eglewStreamConsumerGLTextureExternalKHR)
1024 #define eglStreamConsumerReleaseKHR EGLEW_GET_FUN(__eglewStreamConsumerReleaseKHR)
1025
1026 #define EGLEW_KHR_stream_consumer_gltexture EGLEW_GET_VAR(__EGLEW_KHR_stream_consumer_gltexture)
1027
1028 #endif /* !EGL_KHR_stream_consumer_gltexture */
1029
1030 /* -------------------- EGL_KHR_stream_cross_process_fd -------------------- */
1031
1032 #if !defined(EGL_KHR_stream_cross_process_fd) 
1033 #define EGL_KHR_stream_cross_process_fd 1
1034
1035 typedef int EGLNativeFileDescriptorKHR; // XXX jwilkins: missing typedef
1036
1037 typedef EGLStreamKHR (EGLAPIENTRY * PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
1038 typedef EGLNativeFileDescriptorKHR (EGLAPIENTRY * PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
1039
1040 #define eglCreateStreamFromFileDescriptorKHR EGLEW_GET_FUN(__eglewCreateStreamFromFileDescriptorKHR)
1041 #define eglGetStreamFileDescriptorKHR EGLEW_GET_FUN(__eglewGetStreamFileDescriptorKHR)
1042
1043 #define EGLEW_KHR_stream_cross_process_fd EGLEW_GET_VAR(__EGLEW_KHR_stream_cross_process_fd)
1044
1045 #endif /* !EGL_KHR_stream_cross_process_fd */
1046
1047 /* -------------------------- EGL_KHR_stream_fifo -------------------------- */
1048
1049 #if !defined(EGL_KHR_stream_fifo) 
1050 #define EGL_KHR_stream_fifo 1
1051
1052 #define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC
1053 #define EGL_STREAM_TIME_NOW_KHR 0x31FD
1054 #define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE
1055 #define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF
1056
1057 #define EGLEW_KHR_stream_fifo EGLEW_GET_VAR(__EGLEW_KHR_stream_fifo)
1058
1059 #endif /* !EGL_KHR_stream_fifo */
1060
1061 /* ----------------- EGL_KHR_stream_producer_aldatalocator ----------------- */
1062
1063 #if !defined(EGL_KHR_stream_producer_aldatalocator) 
1064 #define EGL_KHR_stream_producer_aldatalocator 1
1065
1066 #define EGLEW_KHR_stream_producer_aldatalocator EGLEW_GET_VAR(__EGLEW_KHR_stream_producer_aldatalocator)
1067
1068 #endif /* !EGL_KHR_stream_producer_aldatalocator */
1069
1070 /* ------------------- EGL_KHR_stream_producer_eglsurface ------------------ */
1071
1072 #if !defined(EGL_KHR_stream_producer_eglsurface) 
1073 #define EGL_KHR_stream_producer_eglsurface 1
1074
1075 #define EGL_STREAM_BIT_KHR 0x0800
1076
1077 typedef EGLSurface (EGLAPIENTRY * PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint* attrib_list);
1078
1079 #define eglCreateStreamProducerSurfaceKHR EGLEW_GET_FUN(__eglewCreateStreamProducerSurfaceKHR)
1080
1081 #define EGLEW_KHR_stream_producer_eglsurface EGLEW_GET_VAR(__EGLEW_KHR_stream_producer_eglsurface)
1082
1083 #endif /* !EGL_KHR_stream_producer_eglsurface */
1084
1085 /* ---------------------- EGL_KHR_surfaceless_context ---------------------- */
1086
1087 #if !defined(EGL_KHR_surfaceless_context) 
1088 #define EGL_KHR_surfaceless_context 1
1089
1090 #define EGLEW_KHR_surfaceless_context EGLEW_GET_VAR(__EGLEW_KHR_surfaceless_context)
1091
1092 #endif /* !EGL_KHR_surfaceless_context */
1093
1094 /* ------------------------ EGL_KHR_vg_parent_image ------------------------ */
1095
1096 #if !defined(EGL_KHR_vg_parent_image) 
1097 #define EGL_KHR_vg_parent_image 1
1098
1099 #define EGL_VG_PARENT_IMAGE_KHR 0x30BA
1100
1101 #define EGLEW_KHR_vg_parent_image EGLEW_GET_VAR(__EGLEW_KHR_vg_parent_image)
1102
1103 #endif /* !EGL_KHR_vg_parent_image */
1104
1105 /* --------------------------- EGL_KHR_wait_sync --------------------------- */
1106
1107 #if !defined(EGL_KHR_wait_sync) 
1108 #define EGL_KHR_wait_sync 1
1109
1110 typedef void* EGLSyncKHR; // XXX jwilkins: missing typedef
1111
1112 typedef EGLint (EGLAPIENTRY * PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
1113
1114 #define eglWaitSyncKHR EGLEW_GET_FUN(__eglewWaitSyncKHR)
1115
1116 #define EGLEW_KHR_wait_sync EGLEW_GET_VAR(__EGLEW_KHR_wait_sync)
1117
1118 #endif /* !EGL_KHR_wait_sync */
1119
1120 /* --------------------------- EGL_MESA_drm_image -------------------------- */
1121
1122 #if !defined(EGL_MESA_drm_image) 
1123 #define EGL_MESA_drm_image 1
1124
1125 #define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x0001
1126 #define EGL_DRM_BUFFER_USE_SHARE_MESA 0x0002
1127 #define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0
1128 #define EGL_DRM_BUFFER_USE_MESA 0x31D1
1129 #define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2
1130 #define EGL_DRM_BUFFER_MESA 0x31D3
1131 #define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4
1132
1133 typedef EGLImageKHR (EGLAPIENTRY * PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint* attrib_list);
1134 typedef EGLBoolean (EGLAPIENTRY * PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint* name, EGLint *handle, EGLint *stride);
1135
1136 #define eglCreateDRMImageMESA EGLEW_GET_FUN(__eglewCreateDRMImageMESA)
1137 #define eglExportDRMImageMESA EGLEW_GET_FUN(__eglewExportDRMImageMESA)
1138
1139 #define EGLEW_MESA_drm_image EGLEW_GET_VAR(__EGLEW_MESA_drm_image)
1140
1141 #endif /* !EGL_MESA_drm_image */
1142
1143 /* ------------------------ EGL_NV_3dvision_surface ------------------------ */
1144
1145 #if !defined(EGL_NV_3dvision_surface) 
1146 #define EGL_NV_3dvision_surface 1
1147
1148 #define EGL_AUTO_STEREO_NV 0x3136
1149
1150 #define EGLEW_NV_3dvision_surface EGLEW_GET_VAR(__EGLEW_NV_3dvision_surface)
1151
1152 #endif /* !EGL_NV_3dvision_surface */
1153
1154 /* ------------------------- EGL_NV_coverage_sample ------------------------ */
1155
1156 #if !defined(EGL_NV_coverage_sample) 
1157 #define EGL_NV_coverage_sample 1
1158
1159 #define EGL_COVERAGE_BUFFERS_NV 0x30E0
1160 #define EGL_COVERAGE_SAMPLES_NV 0x30E1
1161
1162 #define EGLEW_NV_coverage_sample EGLEW_GET_VAR(__EGLEW_NV_coverage_sample)
1163
1164 #endif /* !EGL_NV_coverage_sample */
1165
1166 /* --------------------- EGL_NV_coverage_sample_resolve -------------------- */
1167
1168 #if !defined(EGL_NV_coverage_sample_resolve) 
1169 #define EGL_NV_coverage_sample_resolve 1
1170
1171 #define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131
1172 #define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132
1173 #define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133
1174
1175 #define EGLEW_NV_coverage_sample_resolve EGLEW_GET_VAR(__EGLEW_NV_coverage_sample_resolve)
1176
1177 #endif /* !EGL_NV_coverage_sample_resolve */
1178
1179 /* ------------------------- EGL_NV_depth_nonlinear ------------------------ */
1180
1181 #if !defined(EGL_NV_depth_nonlinear) 
1182 #define EGL_NV_depth_nonlinear 1
1183
1184 #define EGL_DEPTH_ENCODING_NONE_NV 0
1185 #define EGL_DEPTH_ENCODING_NV 0x30E2
1186 #define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
1187
1188 #define EGLEW_NV_depth_nonlinear EGLEW_GET_VAR(__EGLEW_NV_depth_nonlinear)
1189
1190 #endif /* !EGL_NV_depth_nonlinear */
1191
1192 /* -------------------------- EGL_NV_native_query -------------------------- */
1193
1194 #if !defined(EGL_NV_native_query) 
1195 #define EGL_NV_native_query 1
1196
1197 typedef EGLBoolean (EGLAPIENTRY * PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType* display_id);
1198 typedef EGLBoolean (EGLAPIENTRY * PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType* pixmap);
1199 typedef EGLBoolean (EGLAPIENTRY * PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType* window);
1200
1201 #define eglQueryNativeDisplayNV EGLEW_GET_FUN(__eglewQueryNativeDisplayNV)
1202 #define eglQueryNativePixmapNV EGLEW_GET_FUN(__eglewQueryNativePixmapNV)
1203 #define eglQueryNativeWindowNV EGLEW_GET_FUN(__eglewQueryNativeWindowNV)
1204
1205 #define EGLEW_NV_native_query EGLEW_GET_VAR(__EGLEW_NV_native_query)
1206
1207 #endif /* !EGL_NV_native_query */
1208
1209 /* ---------------------- EGL_NV_post_convert_rounding --------------------- */
1210
1211 #if !defined(EGL_NV_post_convert_rounding) 
1212 #define EGL_NV_post_convert_rounding 1
1213
1214 #define EGLEW_NV_post_convert_rounding EGLEW_GET_VAR(__EGLEW_NV_post_convert_rounding)
1215
1216 #endif /* !EGL_NV_post_convert_rounding */
1217
1218 /* ------------------------- EGL_NV_post_sub_buffer ------------------------ */
1219
1220 #if !defined(EGL_NV_post_sub_buffer) 
1221 #define EGL_NV_post_sub_buffer 1
1222
1223 #define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE
1224
1225 typedef EGLBoolean (EGLAPIENTRY * PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
1226
1227 #define eglPostSubBufferNV EGLEW_GET_FUN(__eglewPostSubBufferNV)
1228
1229 #define EGLEW_NV_post_sub_buffer EGLEW_GET_VAR(__EGLEW_NV_post_sub_buffer)
1230
1231 #endif /* !EGL_NV_post_sub_buffer */
1232
1233 /* ------------------------------ EGL_NV_sync ------------------------------ */
1234
1235 #if !defined(EGL_NV_sync) 
1236 #define EGL_NV_sync 1
1237
1238 #define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001
1239 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6
1240 #define EGL_SYNC_STATUS_NV 0x30E7
1241 #define EGL_SIGNALED_NV 0x30E8
1242 #define EGL_UNSIGNALED_NV 0x30E9
1243 #define EGL_ALREADY_SIGNALED_NV 0x30EA
1244 #define EGL_TIMEOUT_EXPIRED_NV 0x30EB
1245 #define EGL_CONDITION_SATISFIED_NV 0x30EC
1246 #define EGL_SYNC_TYPE_NV 0x30ED
1247 #define EGL_SYNC_CONDITION_NV 0x30EE
1248 #define EGL_SYNC_FENCE_NV 0x30EF
1249 #define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFF
1250
1251 typedef khronos_utime_nanoseconds_t EGLTimeNV;
1252 typedef void* EGLSyncNV;
1253
1254 typedef EGLint (EGLAPIENTRY * PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
1255 typedef EGLSyncNV (EGLAPIENTRY * PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint* attrib_list);
1256 typedef EGLBoolean (EGLAPIENTRY * PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
1257 typedef EGLBoolean (EGLAPIENTRY * PFNEGLFENCENVPROC) (EGLSyncNV sync);
1258 typedef EGLBoolean (EGLAPIENTRY * PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint* value);
1259 typedef EGLBoolean (EGLAPIENTRY * PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
1260
1261 #define eglClientWaitSyncNV EGLEW_GET_FUN(__eglewClientWaitSyncNV)
1262 #define eglCreateFenceSyncNV EGLEW_GET_FUN(__eglewCreateFenceSyncNV)
1263 #define eglDestroySyncNV EGLEW_GET_FUN(__eglewDestroySyncNV)
1264 #define eglFenceNV EGLEW_GET_FUN(__eglewFenceNV)
1265 #define eglGetSyncAttribNV EGLEW_GET_FUN(__eglewGetSyncAttribNV)
1266 #define eglSignalSyncNV EGLEW_GET_FUN(__eglewSignalSyncNV)
1267
1268 #define EGLEW_NV_sync EGLEW_GET_VAR(__EGLEW_NV_sync)
1269
1270 #endif /* !EGL_NV_sync */
1271
1272 /* --------------------------- EGL_NV_system_time -------------------------- */
1273
1274 #if !defined(EGL_NV_system_time) 
1275 #define EGL_NV_system_time 1
1276
1277 typedef khronos_utime_nanoseconds_t EGLuint64NV;
1278
1279 typedef EGLuint64NV (EGLAPIENTRY * PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void);
1280 typedef EGLuint64NV (EGLAPIENTRY * PFNEGLGETSYSTEMTIMENVPROC) (void);
1281
1282 #define eglGetSystemTimeFrequencyNV EGLEW_GET_FUN(__eglewGetSystemTimeFrequencyNV)
1283 #define eglGetSystemTimeNV EGLEW_GET_FUN(__eglewGetSystemTimeNV)
1284
1285 #define EGLEW_NV_system_time EGLEW_GET_VAR(__EGLEW_NV_system_time)
1286
1287 #endif /* !EGL_NV_system_time */
1288
1289 /* ------------------------------------------------------------------------- */
1290
1291 #if defined(GLEW_MX) && defined(_WIN32)
1292  #define EGLEW_FUN_EXPORT 
1293  #else 
1294  #define EGLEW_FUN_EXPORT GLEWAPI 
1295  #endif /* GLEW_MX */
1296
1297 #if defined(GLEW_MX)
1298  #define EGLEW_VAR_EXPORT
1299 #else
1300 #define EGLEW_VAR_EXPORT GLEWAPI 
1301  #endif /* GLEW_MX */
1302
1303 #if defined (GLEW_MX) && defined(_WIN32)
1304 struct EGLEWContextStruct
1305 {
1306 #endif /* GLEW_MX */
1307
1308 EGLEW_FUN_EXPORT PFNCREATESYNC                  __eglewCreateSync;
1309 EGLEW_FUN_EXPORT PFNDESTROYSYNC                 __eglewDestroySync;
1310 EGLEW_FUN_EXPORT PFNCLIENTWAITSYNC              __eglewClientWaitSync;
1311 EGLEW_FUN_EXPORT PFNGETSYNCATTRIB               __eglewGetSyncAttrib;
1312 EGLEW_FUN_EXPORT PFNGETPLATFORMDISPLAY          __eglewGetPlatformDisplay;
1313 EGLEW_FUN_EXPORT PFNCREATEPLATFORMWINDOWSURFACE __eglewCreatePlatformWindowSurface;
1314 EGLEW_FUN_EXPORT PFNCREATEPLATFORMPIXMAPSURFACE __eglewCreatePlatformPixmapSurface;
1315 EGLEW_FUN_EXPORT PFNWAITSYNC                    __eglewWaitSync;
1316
1317 EGLEW_FUN_EXPORT PFNEGLBINDAPIPROC __eglewBindAPI;
1318 EGLEW_FUN_EXPORT PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC __eglewCreatePbufferFromClientBuffer;
1319 EGLEW_FUN_EXPORT PFNEGLQUERYAPIPROC __eglewQueryAPI;
1320 EGLEW_FUN_EXPORT PFNEGLRELEASETHREADPROC __eglewReleaseThread;
1321 EGLEW_FUN_EXPORT PFNEGLWAITCLIENTPROC __eglewWaitClient;
1322
1323 EGLEW_FUN_EXPORT PFNEGLSETBLOBCACHEFUNCSANDROIDPROC __eglewSetBlobCacheFuncsANDROID;
1324
1325 EGLEW_FUN_EXPORT PFNEGLDUPNATIVEFENCEFDANDROIDPROC __eglewDupNativeFenceFDANDROID;
1326
1327 EGLEW_FUN_EXPORT PFNEGLQUERYSURFACEPOINTERANGLEPROC __eglewQuerySurfacePointerANGLE;
1328
1329 EGLEW_FUN_EXPORT PFNEGLCREATEIMAGEKHRPROC __eglewCreateImageKHR;
1330 EGLEW_FUN_EXPORT PFNEGLDESTROYIMAGEKHRPROC __eglewDestroyImageKHR;
1331
1332 EGLEW_FUN_EXPORT PFNEGLLOCKSURFACEKHRPROC __eglewLockSurfaceKHR;
1333 EGLEW_FUN_EXPORT PFNEGLUNLOCKSURFACEKHRPROC __eglewUnlockSurfaceKHR;
1334
1335 EGLEW_FUN_EXPORT PFNEGLCLIENTWAITSYNCKHRPROC __eglewClientWaitSyncKHR;
1336 EGLEW_FUN_EXPORT PFNEGLCREATESYNCKHRPROC __eglewCreateSyncKHR;
1337 EGLEW_FUN_EXPORT PFNEGLDESTROYSYNCKHRPROC __eglewDestroySyncKHR;
1338 EGLEW_FUN_EXPORT PFNEGLGETSYNCATTRIBKHRPROC __eglewGetSyncAttribKHR;
1339 EGLEW_FUN_EXPORT PFNEGLSIGNALSYNCKHRPROC __eglewSignalSyncKHR;
1340
1341 EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERACQUIREKHRPROC __eglewStreamConsumerAcquireKHR;
1342 EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC __eglewStreamConsumerGLTextureExternalKHR;
1343 EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERRELEASEKHRPROC __eglewStreamConsumerReleaseKHR;
1344
1345 EGLEW_FUN_EXPORT PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC __eglewCreateStreamFromFileDescriptorKHR;
1346 EGLEW_FUN_EXPORT PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC __eglewGetStreamFileDescriptorKHR;
1347
1348 EGLEW_FUN_EXPORT PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC __eglewCreateStreamProducerSurfaceKHR;
1349
1350 EGLEW_FUN_EXPORT PFNEGLWAITSYNCKHRPROC __eglewWaitSyncKHR;
1351
1352 EGLEW_FUN_EXPORT PFNEGLCREATEDRMIMAGEMESAPROC __eglewCreateDRMImageMESA;
1353 EGLEW_FUN_EXPORT PFNEGLEXPORTDRMIMAGEMESAPROC __eglewExportDRMImageMESA;
1354
1355 EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEDISPLAYNVPROC __eglewQueryNativeDisplayNV;
1356 EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEPIXMAPNVPROC __eglewQueryNativePixmapNV;
1357 EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEWINDOWNVPROC __eglewQueryNativeWindowNV;
1358
1359 EGLEW_FUN_EXPORT PFNEGLPOSTSUBBUFFERNVPROC __eglewPostSubBufferNV;
1360
1361 EGLEW_FUN_EXPORT PFNEGLCLIENTWAITSYNCNVPROC __eglewClientWaitSyncNV;
1362 EGLEW_FUN_EXPORT PFNEGLCREATEFENCESYNCNVPROC __eglewCreateFenceSyncNV;
1363 EGLEW_FUN_EXPORT PFNEGLDESTROYSYNCNVPROC __eglewDestroySyncNV;
1364 EGLEW_FUN_EXPORT PFNEGLFENCENVPROC __eglewFenceNV;
1365 EGLEW_FUN_EXPORT PFNEGLGETSYNCATTRIBNVPROC __eglewGetSyncAttribNV;
1366 EGLEW_FUN_EXPORT PFNEGLSIGNALSYNCNVPROC __eglewSignalSyncNV;
1367
1368 EGLEW_FUN_EXPORT PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC __eglewGetSystemTimeFrequencyNV;
1369 EGLEW_FUN_EXPORT PFNEGLGETSYSTEMTIMENVPROC __eglewGetSystemTimeNV;
1370
1371 #if defined(GLEW_MX) && !defined(_WIN32)
1372 struct EGLEWContextStruct
1373 {
1374 #endif /* GLEW_MX */
1375
1376 EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_1;
1377 EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_2;
1378 EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_3;
1379 EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_4;
1380 EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_5;
1381 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_blob_cache;
1382 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_framebuffer_target;
1383 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_image_native_buffer;
1384 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_native_fence_sync;
1385 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_recordable;
1386 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_d3d_share_handle_client_buffer;
1387 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_query_surface_pointer;
1388 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_surface_d3d_texture_2d_share_handle;
1389 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_buffer_age;
1390 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_create_context_robustness;
1391 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_multiview_window;
1392 EGLEW_VAR_EXPORT GLboolean __EGLEW_HI_clientpixmap;
1393 EGLEW_VAR_EXPORT GLboolean __EGLEW_HI_colorformats;
1394 EGLEW_VAR_EXPORT GLboolean __EGLEW_IMG_context_priority;
1395 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_config_attribs;
1396 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_create_context;
1397 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_fence_sync;
1398 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_renderbuffer_image;
1399 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_2D_image;
1400 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_3D_image;
1401 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_cubemap_image;
1402 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image;
1403 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image_base;
1404 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image_pixmap;
1405 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_lock_surface;
1406 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_lock_surface2;
1407 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_reusable_sync;
1408 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream;
1409 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_consumer_gltexture;
1410 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_cross_process_fd;
1411 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_fifo;
1412 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_producer_aldatalocator;
1413 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_producer_eglsurface;
1414 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_surfaceless_context;
1415 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_vg_parent_image;
1416 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_wait_sync;
1417 EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_drm_image;
1418 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_3dvision_surface;
1419 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_coverage_sample;
1420 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_coverage_sample_resolve;
1421 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_depth_nonlinear;
1422 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_native_query;
1423 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_post_convert_rounding;
1424 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_post_sub_buffer;
1425 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_sync;
1426 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_system_time;
1427
1428 #ifdef GLEW_MX
1429 }; /* EGLEWContextStruct */
1430 #endif /* GLEW_MX */
1431
1432 /* ------------------------------------------------------------------------ */
1433
1434 #ifdef GLEW_MX
1435
1436 typedef struct EGLEWContextStruct EGLEWContext;
1437 extern GLenum eglewContextInit (EGLDisplay display, EGLEWContext* ctx);
1438 extern GLboolean eglewContextIsSupported (const EGLEWContext* ctx, const char* name);
1439
1440 #define eglewInit(display) eglewContextInit(display, eglewGetContext())
1441 #define eglewIsSupported(x) eglewContextIsSupported(eglewGetContext(), x)
1442
1443 #define EGLEW_GET_VAR(x) (*(const GLboolean*)&(eglewGetContext()->x))
1444 #ifdef _WIN32
1445 #  define EGLEW_GET_FUN(x) eglewGetContext()->x
1446 #else
1447 #  define EGLEW_GET_FUN(x) x
1448 #endif
1449
1450 #else /* GLEW_MX */
1451
1452 #define EGLEW_GET_VAR(x) (*(const GLboolean*)&x)
1453 #define EGLEW_GET_FUN(x) x
1454
1455 extern GLenum eglewContextInit(EGLDisplay display); // XXX jwilkins: context handling not really written yet?
1456 #define eglewInit eglewContextInit // XXX jwilkins:  context handling not really written yet?
1457
1458 extern GLboolean eglewIsSupported (const char* name);
1459
1460 #endif /* GLEW_MX */
1461
1462 extern GLboolean eglewGetExtension (const char* name);
1463
1464 #ifdef __cplusplus
1465 }
1466 #endif
1467
1468 #undef GLEWAPI
1469
1470 #endif /* __eglew_h__ */