getting stuff working on windows again
[vg.git] / dep / sdl / include / SDL_egl.h
1 /*
2 Simple DirectMedia Layer
3 Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
4
5 This software is provided 'as-is', without any express or implied
6 warranty. In no event will the authors be held liable for any damages
7 arising from the use of this software.
8
9 Permission is granted to anyone to use this software for any purpose,
10 including commercial applications, and to alter it and redistribute it
11 freely, subject to the following restrictions:
12
13 1. The origin of this software must not be misrepresented; you must not
14 claim that you wrote the original software. If you use this software
15 in a product, an acknowledgment in the product documentation would be
16 appreciated but is not required.
17 2. Altered source versions must be plainly marked as such, and must not be
18 misrepresented as being the original software.
19 3. This notice may not be removed or altered from any source distribution.
20 */
21
22 /**
23 * \file SDL_egl.h
24 *
25 * This is a simple file to encapsulate the EGL API headers.
26 */
27 #if !defined(_MSC_VER) && !defined(__ANDROID__) && !defined(SDL_USE_BUILTIN_OPENGL_DEFINITIONS)
28
29 #if defined(__vita__) || defined(__psp2__)
30 #include <psp2/types.h>
31 #endif
32
33 #include <EGL/egl.h>
34 #include <EGL/eglext.h>
35
36 #else /* _MSC_VER */
37
38 /* EGL headers for Visual Studio */
39
40 #ifndef __khrplatform_h_
41 #define __khrplatform_h_
42
43 /*
44 ** Copyright (c) 2008-2018 The Khronos Group Inc.
45 **
46 ** Permission is hereby granted, free of charge, to any person obtaining a
47 ** copy of this software and/or associated documentation files (the
48 ** "Materials"), to deal in the Materials without restriction, including
49 ** without limitation the rights to use, copy, modify, merge, publish,
50 ** distribute, sublicense, and/or sell copies of the Materials, and to
51 ** permit persons to whom the Materials are furnished to do so, subject to
52 ** the following conditions:
53 **
54 ** The above copyright notice and this permission notice shall be included
55 ** in all copies or substantial portions of the Materials.
56 **
57 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
58 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
59 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
60 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
61 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
62 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
63 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
64 */
65
66 /* Khronos platform-specific types and definitions.
67 *
68 * The master copy of khrplatform.h is maintained in the Khronos EGL
69 * Registry repository at https://github.com/KhronosGroup/EGL-Registry
70 * The last semantic modification to khrplatform.h was at commit ID:
71 * 67a3e0864c2d75ea5287b9f3d2eb74a745936692
72 *
73 * Adopters may modify this file to suit their platform. Adopters are
74 * encouraged to submit platform specific modifications to the Khronos
75 * group so that they can be included in future versions of this file.
76 * Please submit changes by filing pull requests or issues on
77 * the EGL Registry repository linked above.
78 *
79 *
80 * See the Implementer's Guidelines for information about where this file
81 * should be located on your system and for more details of its use:
82 * http://www.khronos.org/registry/implementers_guide.pdf
83 *
84 * This file should be included as
85 * #include <KHR/khrplatform.h>
86 * by Khronos client API header files that use its types and defines.
87 *
88 * The types in khrplatform.h should only be used to define API-specific types.
89 *
90 * Types defined in khrplatform.h:
91 * khronos_int8_t signed 8 bit
92 * khronos_uint8_t unsigned 8 bit
93 * khronos_int16_t signed 16 bit
94 * khronos_uint16_t unsigned 16 bit
95 * khronos_int32_t signed 32 bit
96 * khronos_uint32_t unsigned 32 bit
97 * khronos_int64_t signed 64 bit
98 * khronos_uint64_t unsigned 64 bit
99 * khronos_intptr_t signed same number of bits as a pointer
100 * khronos_uintptr_t unsigned same number of bits as a pointer
101 * khronos_ssize_t signed size
102 * khronos_usize_t unsigned size
103 * khronos_float_t signed 32 bit floating point
104 * khronos_time_ns_t unsigned 64 bit time in nanoseconds
105 * khronos_utime_nanoseconds_t unsigned time interval or absolute time in
106 * nanoseconds
107 * khronos_stime_nanoseconds_t signed time interval in nanoseconds
108 * khronos_boolean_enum_t enumerated boolean type. This should
109 * only be used as a base type when a client API's boolean type is
110 * an enum. Client APIs which use an integer or other type for
111 * booleans cannot use this as the base type for their boolean.
112 *
113 * Tokens defined in khrplatform.h:
114 *
115 * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
116 *
117 * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
118 * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
119 *
120 * Calling convention macros defined in this file:
121 * KHRONOS_APICALL
122 * KHRONOS_APIENTRY
123 * KHRONOS_APIATTRIBUTES
124 *
125 * These may be used in function prototypes as:
126 *
127 * KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
128 * int arg1,
129 * int arg2) KHRONOS_APIATTRIBUTES;
130 */
131
132 #if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
133 # define KHRONOS_STATIC 1
134 #endif
135
136 /*-------------------------------------------------------------------------
137 * Definition of KHRONOS_APICALL
138 *-------------------------------------------------------------------------
139 * This precedes the return type of the function in the function prototype.
140 */
141 #if defined(KHRONOS_STATIC)
142 /* If the preprocessor constant KHRONOS_STATIC is defined, make the
143 * header compatible with static linking. */
144 # define KHRONOS_APICALL
145 #elif defined(_WIN32)
146 # define KHRONOS_APICALL __declspec(dllimport)
147 #elif defined (__SYMBIAN32__)
148 # define KHRONOS_APICALL IMPORT_C
149 #elif defined(__ANDROID__)
150 # define KHRONOS_APICALL __attribute__((visibility("default")))
151 #else
152 # define KHRONOS_APICALL
153 #endif
154
155 /*-------------------------------------------------------------------------
156 * Definition of KHRONOS_APIENTRY
157 *-------------------------------------------------------------------------
158 * This follows the return type of the function and precedes the function
159 * name in the function prototype.
160 */
161 #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
162 /* Win32 but not WinCE */
163 # define KHRONOS_APIENTRY __stdcall
164 #else
165 # define KHRONOS_APIENTRY
166 #endif
167
168 /*-------------------------------------------------------------------------
169 * Definition of KHRONOS_APIATTRIBUTES
170 *-------------------------------------------------------------------------
171 * This follows the closing parenthesis of the function prototype arguments.
172 */
173 #if defined (__ARMCC_2__)
174 #define KHRONOS_APIATTRIBUTES __softfp
175 #else
176 #define KHRONOS_APIATTRIBUTES
177 #endif
178
179 /*-------------------------------------------------------------------------
180 * basic type definitions
181 *-----------------------------------------------------------------------*/
182 #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
183
184
185 /*
186 * Using <stdint.h>
187 */
188 #include <stdint.h>
189 typedef int32_t khronos_int32_t;
190 typedef uint32_t khronos_uint32_t;
191 typedef int64_t khronos_int64_t;
192 typedef uint64_t khronos_uint64_t;
193 #define KHRONOS_SUPPORT_INT64 1
194 #define KHRONOS_SUPPORT_FLOAT 1
195 /*
196 * To support platform where unsigned long cannot be used interchangeably with
197 * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t.
198 * Ideally, we could just use (u)intptr_t everywhere, but this could result in
199 * ABI breakage if khronos_uintptr_t is changed from unsigned long to
200 * unsigned long long or similar (this results in different C++ name mangling).
201 * To avoid changes for existing platforms, we restrict usage of intptr_t to
202 * platforms where the size of a pointer is larger than the size of long.
203 */
204 #if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__)
205 #if __SIZEOF_POINTER__ > __SIZEOF_LONG__
206 #define KHRONOS_USE_INTPTR_T
207 #endif
208 #endif
209
210 #elif defined(__VMS ) || defined(__sgi)
211
212 /*
213 * Using <inttypes.h>
214 */
215 #include <inttypes.h>
216 typedef int32_t khronos_int32_t;
217 typedef uint32_t khronos_uint32_t;
218 typedef int64_t khronos_int64_t;
219 typedef uint64_t khronos_uint64_t;
220 #define KHRONOS_SUPPORT_INT64 1
221 #define KHRONOS_SUPPORT_FLOAT 1
222
223 #elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
224
225 /*
226 * Win32
227 */
228 typedef __int32 khronos_int32_t;
229 typedef unsigned __int32 khronos_uint32_t;
230 typedef __int64 khronos_int64_t;
231 typedef unsigned __int64 khronos_uint64_t;
232 #define KHRONOS_SUPPORT_INT64 1
233 #define KHRONOS_SUPPORT_FLOAT 1
234
235 #elif defined(__sun__) || defined(__digital__)
236
237 /*
238 * Sun or Digital
239 */
240 typedef int khronos_int32_t;
241 typedef unsigned int khronos_uint32_t;
242 #if defined(__arch64__) || defined(_LP64)
243 typedef long int khronos_int64_t;
244 typedef unsigned long int khronos_uint64_t;
245 #else
246 typedef long long int khronos_int64_t;
247 typedef unsigned long long int khronos_uint64_t;
248 #endif /* __arch64__ */
249 #define KHRONOS_SUPPORT_INT64 1
250 #define KHRONOS_SUPPORT_FLOAT 1
251
252 #elif 0
253
254 /*
255 * Hypothetical platform with no float or int64 support
256 */
257 typedef int khronos_int32_t;
258 typedef unsigned int khronos_uint32_t;
259 #define KHRONOS_SUPPORT_INT64 0
260 #define KHRONOS_SUPPORT_FLOAT 0
261
262 #else
263
264 /*
265 * Generic fallback
266 */
267 #include <stdint.h>
268 typedef int32_t khronos_int32_t;
269 typedef uint32_t khronos_uint32_t;
270 typedef int64_t khronos_int64_t;
271 typedef uint64_t khronos_uint64_t;
272 #define KHRONOS_SUPPORT_INT64 1
273 #define KHRONOS_SUPPORT_FLOAT 1
274
275 #endif
276
277
278 /*
279 * Types that are (so far) the same on all platforms
280 */
281 typedef signed char khronos_int8_t;
282 typedef unsigned char khronos_uint8_t;
283 typedef signed short int khronos_int16_t;
284 typedef unsigned short int khronos_uint16_t;
285
286 /*
287 * Types that differ between LLP64 and LP64 architectures - in LLP64,
288 * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
289 * to be the only LLP64 architecture in current use.
290 */
291 #ifdef KHRONOS_USE_INTPTR_T
292 typedef intptr_t khronos_intptr_t;
293 typedef uintptr_t khronos_uintptr_t;
294 #elif defined(_WIN64)
295 typedef signed long long int khronos_intptr_t;
296 typedef unsigned long long int khronos_uintptr_t;
297 #else
298 typedef signed long int khronos_intptr_t;
299 typedef unsigned long int khronos_uintptr_t;
300 #endif
301
302 #if defined(_WIN64)
303 typedef signed long long int khronos_ssize_t;
304 typedef unsigned long long int khronos_usize_t;
305 #else
306 typedef signed long int khronos_ssize_t;
307 typedef unsigned long int khronos_usize_t;
308 #endif
309
310 #if KHRONOS_SUPPORT_FLOAT
311 /*
312 * Float type
313 */
314 typedef float khronos_float_t;
315 #endif
316
317 #if KHRONOS_SUPPORT_INT64
318 /* Time types
319 *
320 * These types can be used to represent a time interval in nanoseconds or
321 * an absolute Unadjusted System Time. Unadjusted System Time is the number
322 * of nanoseconds since some arbitrary system event (e.g. since the last
323 * time the system booted). The Unadjusted System Time is an unsigned
324 * 64 bit value that wraps back to 0 every 584 years. Time intervals
325 * may be either signed or unsigned.
326 */
327 typedef khronos_uint64_t khronos_utime_nanoseconds_t;
328 typedef khronos_int64_t khronos_stime_nanoseconds_t;
329 #endif
330
331 /*
332 * Dummy value used to pad enum types to 32 bits.
333 */
334 #ifndef KHRONOS_MAX_ENUM
335 #define KHRONOS_MAX_ENUM 0x7FFFFFFF
336 #endif
337
338 /*
339 * Enumerated boolean type
340 *
341 * Values other than zero should be considered to be true. Therefore
342 * comparisons should not be made against KHRONOS_TRUE.
343 */
344 typedef enum {
345 KHRONOS_FALSE = 0,
346 KHRONOS_TRUE = 1,
347 KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
348 } khronos_boolean_enum_t;
349
350 #endif /* __khrplatform_h_ */
351
352
353 #ifndef __eglplatform_h_
354 #define __eglplatform_h_
355
356 /*
357 ** Copyright 2007-2020 The Khronos Group Inc.
358 ** SPDX-License-Identifier: Apache-2.0
359 */
360
361 /* Platform-specific types and definitions for egl.h
362 *
363 * Adopters may modify khrplatform.h and this file to suit their platform.
364 * You are encouraged to submit all modifications to the Khronos group so that
365 * they can be included in future versions of this file. Please submit changes
366 * by filing an issue or pull request on the public Khronos EGL Registry, at
367 * https://www.github.com/KhronosGroup/EGL-Registry/
368 */
369
370 /*#include <KHR/khrplatform.h>*/
371
372 /* Macros used in EGL function prototype declarations.
373 *
374 * EGL functions should be prototyped as:
375 *
376 * EGLAPI return-type EGLAPIENTRY eglFunction(arguments);
377 * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments);
378 *
379 * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h
380 */
381
382 #ifndef EGLAPI
383 #define EGLAPI KHRONOS_APICALL
384 #endif
385
386 #ifndef EGLAPIENTRY
387 #define EGLAPIENTRY KHRONOS_APIENTRY
388 #endif
389 #define EGLAPIENTRYP EGLAPIENTRY*
390
391 /* The types NativeDisplayType, NativeWindowType, and NativePixmapType
392 * are aliases of window-system-dependent types, such as X Display * or
393 * Windows Device Context. They must be defined in platform-specific
394 * code below. The EGL-prefixed versions of Native*Type are the same
395 * types, renamed in EGL 1.3 so all types in the API start with "EGL".
396 *
397 * Khronos STRONGLY RECOMMENDS that you use the default definitions
398 * provided below, since these changes affect both binary and source
399 * portability of applications using EGL running on different EGL
400 * implementations.
401 */
402
403 #if defined(EGL_NO_PLATFORM_SPECIFIC_TYPES)
404
405 typedef void *EGLNativeDisplayType;
406 typedef void *EGLNativePixmapType;
407 typedef void *EGLNativeWindowType;
408
409 #elif defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
410 #ifndef WIN32_LEAN_AND_MEAN
411 #define WIN32_LEAN_AND_MEAN 1
412 #endif
413 #include <windows.h>
414
415 typedef HDC EGLNativeDisplayType;
416 typedef HBITMAP EGLNativePixmapType;
417 typedef HWND EGLNativeWindowType;
418
419 #elif defined(__EMSCRIPTEN__)
420
421 typedef int EGLNativeDisplayType;
422 typedef int EGLNativePixmapType;
423 typedef int EGLNativeWindowType;
424
425 #elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */
426
427 typedef int EGLNativeDisplayType;
428 typedef void *EGLNativePixmapType;
429 typedef void *EGLNativeWindowType;
430
431 #elif defined(WL_EGL_PLATFORM)
432
433 typedef struct wl_display *EGLNativeDisplayType;
434 typedef struct wl_egl_pixmap *EGLNativePixmapType;
435 typedef struct wl_egl_window *EGLNativeWindowType;
436
437 #elif defined(__GBM__)
438
439 typedef struct gbm_device *EGLNativeDisplayType;
440 typedef struct gbm_bo *EGLNativePixmapType;
441 typedef void *EGLNativeWindowType;
442
443 #elif defined(__ANDROID__) || defined(ANDROID)
444
445 struct ANativeWindow;
446 struct egl_native_pixmap_t;
447
448 typedef void* EGLNativeDisplayType;
449 typedef struct egl_native_pixmap_t* EGLNativePixmapType;
450 typedef struct ANativeWindow* EGLNativeWindowType;
451
452 #elif defined(USE_OZONE)
453
454 typedef intptr_t EGLNativeDisplayType;
455 typedef intptr_t EGLNativePixmapType;
456 typedef intptr_t EGLNativeWindowType;
457
458 #elif defined(USE_X11)
459
460 /* X11 (tentative) */
461 #include <X11/Xlib.h>
462 #include <X11/Xutil.h>
463
464 typedef Display *EGLNativeDisplayType;
465 typedef Pixmap EGLNativePixmapType;
466 typedef Window EGLNativeWindowType;
467
468 #elif defined(__unix__)
469
470 typedef void *EGLNativeDisplayType;
471 typedef khronos_uintptr_t EGLNativePixmapType;
472 typedef khronos_uintptr_t EGLNativeWindowType;
473
474 #elif defined(__APPLE__)
475
476 typedef int EGLNativeDisplayType;
477 typedef void *EGLNativePixmapType;
478 typedef void *EGLNativeWindowType;
479
480 #elif defined(__HAIKU__)
481
482 #include <kernel/image.h>
483
484 typedef void *EGLNativeDisplayType;
485 typedef khronos_uintptr_t EGLNativePixmapType;
486 typedef khronos_uintptr_t EGLNativeWindowType;
487
488 #elif defined(__Fuchsia__)
489
490 typedef void *EGLNativeDisplayType;
491 typedef khronos_uintptr_t EGLNativePixmapType;
492 typedef khronos_uintptr_t EGLNativeWindowType;
493
494 #else
495 #error "Platform not recognized"
496 #endif
497
498 /* EGL 1.2 types, renamed for consistency in EGL 1.3 */
499 typedef EGLNativeDisplayType NativeDisplayType;
500 typedef EGLNativePixmapType NativePixmapType;
501 typedef EGLNativeWindowType NativeWindowType;
502
503
504 /* Define EGLint. This must be a signed integral type large enough to contain
505 * all legal attribute names and values passed into and out of EGL, whether
506 * their type is boolean, bitmask, enumerant (symbolic constant), integer,
507 * handle, or other. While in general a 32-bit integer will suffice, if
508 * handles are 64 bit types, then EGLint should be defined as a signed 64-bit
509 * integer type.
510 */
511 typedef khronos_int32_t EGLint;
512
513
514 /* C++ / C typecast macros for special EGL handle values */
515 #if defined(__cplusplus)
516 #define EGL_CAST(type, value) (static_cast<type>(value))
517 #else
518 #define EGL_CAST(type, value) ((type) (value))
519 #endif
520
521 #endif /* __eglplatform_h */
522
523
524 #ifndef __egl_h_
525 #define __egl_h_ 1
526
527 #ifdef __cplusplus
528 extern "C" {
529 #endif
530
531 /*
532 ** Copyright 2013-2020 The Khronos Group Inc.
533 ** SPDX-License-Identifier: Apache-2.0
534 **
535 ** This header is generated from the Khronos EGL XML API Registry.
536 ** The current version of the Registry, generator scripts
537 ** used to make the header, and the header can be found at
538 ** http://www.khronos.org/registry/egl
539 **
540 ** Khronos $Git commit SHA1: 6fb1daea15 $ on $Git commit date: 2022-05-25 09:41:13 -0600 $
541 */
542
543 /*#include <EGL/eglplatform.h>*/
544
545 #ifndef EGL_EGL_PROTOTYPES
546 #define EGL_EGL_PROTOTYPES 1
547 #endif
548
549 /* Generated on date 20220525 */
550
551 /* Generated C header for:
552 * API: egl
553 * Versions considered: .*
554 * Versions emitted: .*
555 * Default extensions included: None
556 * Additional extensions included: _nomatch_^
557 * Extensions removed: _nomatch_^
558 */
559
560 #ifndef EGL_VERSION_1_0
561 #define EGL_VERSION_1_0 1
562 typedef unsigned int EGLBoolean;
563 typedef void *EGLDisplay;
564 /*#include <KHR/khrplatform.h>*/
565 /*#include <EGL/eglplatform.h>*/
566 typedef void *EGLConfig;
567 typedef void *EGLSurface;
568 typedef void *EGLContext;
569 typedef void (*__eglMustCastToProperFunctionPointerType)(void);
570 #define EGL_ALPHA_SIZE 0x3021
571 #define EGL_BAD_ACCESS 0x3002
572 #define EGL_BAD_ALLOC 0x3003
573 #define EGL_BAD_ATTRIBUTE 0x3004
574 #define EGL_BAD_CONFIG 0x3005
575 #define EGL_BAD_CONTEXT 0x3006
576 #define EGL_BAD_CURRENT_SURFACE 0x3007
577 #define EGL_BAD_DISPLAY 0x3008
578 #define EGL_BAD_MATCH 0x3009
579 #define EGL_BAD_NATIVE_PIXMAP 0x300A
580 #define EGL_BAD_NATIVE_WINDOW 0x300B
581 #define EGL_BAD_PARAMETER 0x300C
582 #define EGL_BAD_SURFACE 0x300D
583 #define EGL_BLUE_SIZE 0x3022
584 #define EGL_BUFFER_SIZE 0x3020
585 #define EGL_CONFIG_CAVEAT 0x3027
586 #define EGL_CONFIG_ID 0x3028
587 #define EGL_CORE_NATIVE_ENGINE 0x305B
588 #define EGL_DEPTH_SIZE 0x3025
589 #define EGL_DONT_CARE EGL_CAST(EGLint,-1)
590 #define EGL_DRAW 0x3059
591 #define EGL_EXTENSIONS 0x3055
592 #define EGL_FALSE 0
593 #define EGL_GREEN_SIZE 0x3023
594 #define EGL_HEIGHT 0x3056
595 #define EGL_LARGEST_PBUFFER 0x3058
596 #define EGL_LEVEL 0x3029
597 #define EGL_MAX_PBUFFER_HEIGHT 0x302A
598 #define EGL_MAX_PBUFFER_PIXELS 0x302B
599 #define EGL_MAX_PBUFFER_WIDTH 0x302C
600 #define EGL_NATIVE_RENDERABLE 0x302D
601 #define EGL_NATIVE_VISUAL_ID 0x302E
602 #define EGL_NATIVE_VISUAL_TYPE 0x302F
603 #define EGL_NONE 0x3038
604 #define EGL_NON_CONFORMANT_CONFIG 0x3051
605 #define EGL_NOT_INITIALIZED 0x3001
606 #define EGL_NO_CONTEXT EGL_CAST(EGLContext,0)
607 #define EGL_NO_DISPLAY EGL_CAST(EGLDisplay,0)
608 #define EGL_NO_SURFACE EGL_CAST(EGLSurface,0)
609 #define EGL_PBUFFER_BIT 0x0001
610 #define EGL_PIXMAP_BIT 0x0002
611 #define EGL_READ 0x305A
612 #define EGL_RED_SIZE 0x3024
613 #define EGL_SAMPLES 0x3031
614 #define EGL_SAMPLE_BUFFERS 0x3032
615 #define EGL_SLOW_CONFIG 0x3050
616 #define EGL_STENCIL_SIZE 0x3026
617 #define EGL_SUCCESS 0x3000
618 #define EGL_SURFACE_TYPE 0x3033
619 #define EGL_TRANSPARENT_BLUE_VALUE 0x3035
620 #define EGL_TRANSPARENT_GREEN_VALUE 0x3036
621 #define EGL_TRANSPARENT_RED_VALUE 0x3037
622 #define EGL_TRANSPARENT_RGB 0x3052
623 #define EGL_TRANSPARENT_TYPE 0x3034
624 #define EGL_TRUE 1
625 #define EGL_VENDOR 0x3053
626 #define EGL_VERSION 0x3054
627 #define EGL_WIDTH 0x3057
628 #define EGL_WINDOW_BIT 0x0004
629 typedef EGLBoolean (EGLAPIENTRYP PFNEGLCHOOSECONFIGPROC) (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
630 typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOPYBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
631 typedef EGLContext (EGLAPIENTRYP PFNEGLCREATECONTEXTPROC) (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list);
632 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPBUFFERSURFACEPROC) (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
633 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list);
634 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list);
635 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx);
636 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface);
637 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCONFIGATTRIBPROC) (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
638 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCONFIGSPROC) (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
639 typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETCURRENTDISPLAYPROC) (void);
640 typedef EGLSurface (EGLAPIENTRYP PFNEGLGETCURRENTSURFACEPROC) (EGLint readdraw);
641 typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETDISPLAYPROC) (EGLNativeDisplayType display_id);
642 typedef EGLint (EGLAPIENTRYP PFNEGLGETERRORPROC) (void);
643 typedef __eglMustCastToProperFunctionPointerType (EGLAPIENTRYP PFNEGLGETPROCADDRESSPROC) (const char *procname);
644 typedef EGLBoolean (EGLAPIENTRYP PFNEGLINITIALIZEPROC) (EGLDisplay dpy, EGLint *major, EGLint *minor);
645 typedef EGLBoolean (EGLAPIENTRYP PFNEGLMAKECURRENTPROC) (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
646 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
647 typedef const char *(EGLAPIENTRYP PFNEGLQUERYSTRINGPROC) (EGLDisplay dpy, EGLint name);
648 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
649 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface);
650 typedef EGLBoolean (EGLAPIENTRYP PFNEGLTERMINATEPROC) (EGLDisplay dpy);
651 typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITGLPROC) (void);
652 typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITNATIVEPROC) (EGLint engine);
653 #if EGL_EGL_PROTOTYPES
654 EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
655 EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
656 EGLAPI EGLContext EGLAPIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list);
657 EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
658 EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list);
659 EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list);
660 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx);
661 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface);
662 EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
663 EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
664 EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay (void);
665 EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface (EGLint readdraw);
666 EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay (EGLNativeDisplayType display_id);
667 EGLAPI EGLint EGLAPIENTRY eglGetError (void);
668 EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname);
669 EGLAPI EGLBoolean EGLAPIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor);
670 EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
671 EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
672 EGLAPI const char *EGLAPIENTRY eglQueryString (EGLDisplay dpy, EGLint name);
673 EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
674 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface surface);
675 EGLAPI EGLBoolean EGLAPIENTRY eglTerminate (EGLDisplay dpy);
676 EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL (void);
677 EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative (EGLint engine);
678 #endif
679 #endif /* EGL_VERSION_1_0 */
680
681 #ifndef EGL_VERSION_1_1
682 #define EGL_VERSION_1_1 1
683 #define EGL_BACK_BUFFER 0x3084
684 #define EGL_BIND_TO_TEXTURE_RGB 0x3039
685 #define EGL_BIND_TO_TEXTURE_RGBA 0x303A
686 #define EGL_CONTEXT_LOST 0x300E
687 #define EGL_MIN_SWAP_INTERVAL 0x303B
688 #define EGL_MAX_SWAP_INTERVAL 0x303C
689 #define EGL_MIPMAP_TEXTURE 0x3082
690 #define EGL_MIPMAP_LEVEL 0x3083
691 #define EGL_NO_TEXTURE 0x305C
692 #define EGL_TEXTURE_2D 0x305F
693 #define EGL_TEXTURE_FORMAT 0x3080
694 #define EGL_TEXTURE_RGB 0x305D
695 #define EGL_TEXTURE_RGBA 0x305E
696 #define EGL_TEXTURE_TARGET 0x3081
697 typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDTEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
698 typedef EGLBoolean (EGLAPIENTRYP PFNEGLRELEASETEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
699 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSURFACEATTRIBPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
700 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPINTERVALPROC) (EGLDisplay dpy, EGLint interval);
701 #if EGL_EGL_PROTOTYPES
702 EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
703 EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
704 EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
705 EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval (EGLDisplay dpy, EGLint interval);
706 #endif
707 #endif /* EGL_VERSION_1_1 */
708
709 #ifndef EGL_VERSION_1_2
710 #define EGL_VERSION_1_2 1
711 typedef unsigned int EGLenum;
712 typedef void *EGLClientBuffer;
713 #define EGL_ALPHA_FORMAT 0x3088
714 #define EGL_ALPHA_FORMAT_NONPRE 0x308B
715 #define EGL_ALPHA_FORMAT_PRE 0x308C
716 #define EGL_ALPHA_MASK_SIZE 0x303E
717 #define EGL_BUFFER_PRESERVED 0x3094
718 #define EGL_BUFFER_DESTROYED 0x3095
719 #define EGL_CLIENT_APIS 0x308D
720 #define EGL_COLORSPACE 0x3087
721 #define EGL_COLORSPACE_sRGB 0x3089
722 #define EGL_COLORSPACE_LINEAR 0x308A
723 #define EGL_COLOR_BUFFER_TYPE 0x303F
724 #define EGL_CONTEXT_CLIENT_TYPE 0x3097
725 #define EGL_DISPLAY_SCALING 10000
726 #define EGL_HORIZONTAL_RESOLUTION 0x3090
727 #define EGL_LUMINANCE_BUFFER 0x308F
728 #define EGL_LUMINANCE_SIZE 0x303D
729 #define EGL_OPENGL_ES_BIT 0x0001
730 #define EGL_OPENVG_BIT 0x0002
731 #define EGL_OPENGL_ES_API 0x30A0
732 #define EGL_OPENVG_API 0x30A1
733 #define EGL_OPENVG_IMAGE 0x3096
734 #define EGL_PIXEL_ASPECT_RATIO 0x3092
735 #define EGL_RENDERABLE_TYPE 0x3040
736 #define EGL_RENDER_BUFFER 0x3086
737 #define EGL_RGB_BUFFER 0x308E
738 #define EGL_SINGLE_BUFFER 0x3085
739 #define EGL_SWAP_BEHAVIOR 0x3093
740 #define EGL_UNKNOWN EGL_CAST(EGLint,-1)
741 #define EGL_VERTICAL_RESOLUTION 0x3091
742 typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDAPIPROC) (EGLenum api);
743 typedef EGLenum (EGLAPIENTRYP PFNEGLQUERYAPIPROC) (void);
744 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC) (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list);
745 typedef EGLBoolean (EGLAPIENTRYP PFNEGLRELEASETHREADPROC) (void);
746 typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITCLIENTPROC) (void);
747 #if EGL_EGL_PROTOTYPES
748 EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI (EGLenum api);
749 EGLAPI EGLenum EGLAPIENTRY eglQueryAPI (void);
750 EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list);
751 EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread (void);
752 EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient (void);
753 #endif
754 #endif /* EGL_VERSION_1_2 */
755
756 #ifndef EGL_VERSION_1_3
757 #define EGL_VERSION_1_3 1
758 #define EGL_CONFORMANT 0x3042
759 #define EGL_CONTEXT_CLIENT_VERSION 0x3098
760 #define EGL_MATCH_NATIVE_PIXMAP 0x3041
761 #define EGL_OPENGL_ES2_BIT 0x0004
762 #define EGL_VG_ALPHA_FORMAT 0x3088
763 #define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B
764 #define EGL_VG_ALPHA_FORMAT_PRE 0x308C
765 #define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040
766 #define EGL_VG_COLORSPACE 0x3087
767 #define EGL_VG_COLORSPACE_sRGB 0x3089
768 #define EGL_VG_COLORSPACE_LINEAR 0x308A
769 #define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020
770 #endif /* EGL_VERSION_1_3 */
771
772 #ifndef EGL_VERSION_1_4
773 #define EGL_VERSION_1_4 1
774 #define EGL_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType,0)
775 #define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200
776 #define EGL_MULTISAMPLE_RESOLVE 0x3099
777 #define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A
778 #define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B
779 #define EGL_OPENGL_API 0x30A2
780 #define EGL_OPENGL_BIT 0x0008
781 #define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400
782 typedef EGLContext (EGLAPIENTRYP PFNEGLGETCURRENTCONTEXTPROC) (void);
783 #if EGL_EGL_PROTOTYPES
784 EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext (void);
785 #endif
786 #endif /* EGL_VERSION_1_4 */
787
788 #ifndef EGL_VERSION_1_5
789 #define EGL_VERSION_1_5 1
790 typedef void *EGLSync;
791 typedef intptr_t EGLAttrib;
792 typedef khronos_utime_nanoseconds_t EGLTime;
793 typedef void *EGLImage;
794 #define EGL_CONTEXT_MAJOR_VERSION 0x3098
795 #define EGL_CONTEXT_MINOR_VERSION 0x30FB
796 #define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD
797 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
798 #define EGL_NO_RESET_NOTIFICATION 0x31BE
799 #define EGL_LOSE_CONTEXT_ON_RESET 0x31BF
800 #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001
801 #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002
802 #define EGL_CONTEXT_OPENGL_DEBUG 0x31B0
803 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1
804 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2
805 #define EGL_OPENGL_ES3_BIT 0x00000040
806 #define EGL_CL_EVENT_HANDLE 0x309C
807 #define EGL_SYNC_CL_EVENT 0x30FE
808 #define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF
809 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0
810 #define EGL_SYNC_TYPE 0x30F7
811 #define EGL_SYNC_STATUS 0x30F1
812 #define EGL_SYNC_CONDITION 0x30F8
813 #define EGL_SIGNALED 0x30F2
814 #define EGL_UNSIGNALED 0x30F3
815 #define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001
816 #define EGL_FOREVER 0xFFFFFFFFFFFFFFFFull
817 #define EGL_TIMEOUT_EXPIRED 0x30F5
818 #define EGL_CONDITION_SATISFIED 0x30F6
819 #define EGL_NO_SYNC EGL_CAST(EGLSync,0)
820 #define EGL_SYNC_FENCE 0x30F9
821 #define EGL_GL_COLORSPACE 0x309D
822 #define EGL_GL_COLORSPACE_SRGB 0x3089
823 #define EGL_GL_COLORSPACE_LINEAR 0x308A
824 #define EGL_GL_RENDERBUFFER 0x30B9
825 #define EGL_GL_TEXTURE_2D 0x30B1
826 #define EGL_GL_TEXTURE_LEVEL 0x30BC
827 #define EGL_GL_TEXTURE_3D 0x30B2
828 #define EGL_GL_TEXTURE_ZOFFSET 0x30BD
829 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3
830 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4
831 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5
832 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6
833 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7
834 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8
835 #define EGL_IMAGE_PRESERVED 0x30D2
836 #define EGL_NO_IMAGE EGL_CAST(EGLImage,0)
837 typedef EGLSync (EGLAPIENTRYP PFNEGLCREATESYNCPROC) (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list);
838 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCPROC) (EGLDisplay dpy, EGLSync sync);
839 typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
840 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBPROC) (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value);
841 typedef EGLImage (EGLAPIENTRYP PFNEGLCREATEIMAGEPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list);
842 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEPROC) (EGLDisplay dpy, EGLImage image);
843 typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYPROC) (EGLenum platform, void *native_display, const EGLAttrib *attrib_list);
844 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list);
845 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list);
846 typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags);
847 #if EGL_EGL_PROTOTYPES
848 EGLAPI EGLSync EGLAPIENTRY eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list);
849 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync (EGLDisplay dpy, EGLSync sync);
850 EGLAPI EGLint EGLAPIENTRY eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
851 EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value);
852 EGLAPI EGLImage EGLAPIENTRY eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list);
853 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage (EGLDisplay dpy, EGLImage image);
854 EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay (EGLenum platform, void *native_display, const EGLAttrib *attrib_list);
855 EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list);
856 EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list);
857 EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags);
858 #endif
859 #endif /* EGL_VERSION_1_5 */
860
861 #ifdef __cplusplus
862 }
863 #endif
864
865 #endif /* __egl_h_ */
866
867
868 #ifndef __eglext_h_
869 #define __eglext_h_ 1
870
871 #ifdef __cplusplus
872 extern "C" {
873 #endif
874
875 /*
876 ** Copyright 2013-2020 The Khronos Group Inc.
877 ** SPDX-License-Identifier: Apache-2.0
878 **
879 ** This header is generated from the Khronos EGL XML API Registry.
880 ** The current version of the Registry, generator scripts
881 ** used to make the header, and the header can be found at
882 ** http://www.khronos.org/registry/egl
883 **
884 ** Khronos $Git commit SHA1: 6fb1daea15 $ on $Git commit date: 2022-05-25 09:41:13 -0600 $
885 */
886
887 /*#include <EGL/eglplatform.h>*/
888
889 #define EGL_EGLEXT_VERSION 20220525
890
891 /* Generated C header for:
892 * API: egl
893 * Versions considered: .*
894 * Versions emitted: _nomatch_^
895 * Default extensions included: egl
896 * Additional extensions included: _nomatch_^
897 * Extensions removed: _nomatch_^
898 */
899
900 #ifndef EGL_KHR_cl_event
901 #define EGL_KHR_cl_event 1
902 #define EGL_CL_EVENT_HANDLE_KHR 0x309C
903 #define EGL_SYNC_CL_EVENT_KHR 0x30FE
904 #define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF
905 #endif /* EGL_KHR_cl_event */
906
907 #ifndef EGL_KHR_cl_event2
908 #define EGL_KHR_cl_event2 1
909 typedef void *EGLSyncKHR;
910 typedef intptr_t EGLAttribKHR;
911 typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list);
912 #ifdef EGL_EGLEXT_PROTOTYPES
913 EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list);
914 #endif
915 #endif /* EGL_KHR_cl_event2 */
916
917 #ifndef EGL_KHR_client_get_all_proc_addresses
918 #define EGL_KHR_client_get_all_proc_addresses 1
919 #endif /* EGL_KHR_client_get_all_proc_addresses */
920
921 #ifndef EGL_KHR_config_attribs
922 #define EGL_KHR_config_attribs 1
923 #define EGL_CONFORMANT_KHR 0x3042
924 #define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020
925 #define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040
926 #endif /* EGL_KHR_config_attribs */
927
928 #ifndef EGL_KHR_context_flush_control
929 #define EGL_KHR_context_flush_control 1
930 #define EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR 0
931 #define EGL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x2097
932 #define EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x2098
933 #endif /* EGL_KHR_context_flush_control */
934
935 #ifndef EGL_KHR_create_context
936 #define EGL_KHR_create_context 1
937 #define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098
938 #define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB
939 #define EGL_CONTEXT_FLAGS_KHR 0x30FC
940 #define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD
941 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD
942 #define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE
943 #define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF
944 #define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001
945 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002
946 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004
947 #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001
948 #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002
949 #define EGL_OPENGL_ES3_BIT_KHR 0x00000040
950 #endif /* EGL_KHR_create_context */
951
952 #ifndef EGL_KHR_create_context_no_error
953 #define EGL_KHR_create_context_no_error 1
954 #define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3
955 #endif /* EGL_KHR_create_context_no_error */
956
957 #ifndef EGL_KHR_debug
958 #define EGL_KHR_debug 1
959 typedef void *EGLLabelKHR;
960 typedef void *EGLObjectKHR;
961 typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);
962 #define EGL_OBJECT_THREAD_KHR 0x33B0
963 #define EGL_OBJECT_DISPLAY_KHR 0x33B1
964 #define EGL_OBJECT_CONTEXT_KHR 0x33B2
965 #define EGL_OBJECT_SURFACE_KHR 0x33B3
966 #define EGL_OBJECT_IMAGE_KHR 0x33B4
967 #define EGL_OBJECT_SYNC_KHR 0x33B5
968 #define EGL_OBJECT_STREAM_KHR 0x33B6
969 #define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9
970 #define EGL_DEBUG_MSG_ERROR_KHR 0x33BA
971 #define EGL_DEBUG_MSG_WARN_KHR 0x33BB
972 #define EGL_DEBUG_MSG_INFO_KHR 0x33BC
973 #define EGL_DEBUG_CALLBACK_KHR 0x33B8
974 typedef EGLint (EGLAPIENTRYP PFNEGLDEBUGMESSAGECONTROLKHRPROC) (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list);
975 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEBUGKHRPROC) (EGLint attribute, EGLAttrib *value);
976 typedef EGLint (EGLAPIENTRYP PFNEGLLABELOBJECTKHRPROC) (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label);
977 #ifdef EGL_EGLEXT_PROTOTYPES
978 EGLAPI EGLint EGLAPIENTRY eglDebugMessageControlKHR (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list);
979 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDebugKHR (EGLint attribute, EGLAttrib *value);
980 EGLAPI EGLint EGLAPIENTRY eglLabelObjectKHR (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label);
981 #endif
982 #endif /* EGL_KHR_debug */
983
984 #ifndef EGL_KHR_display_reference
985 #define EGL_KHR_display_reference 1
986 #define EGL_TRACK_REFERENCES_KHR 0x3352
987 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBKHRPROC) (EGLDisplay dpy, EGLint name, EGLAttrib *value);
988 #ifdef EGL_EGLEXT_PROTOTYPES
989 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribKHR (EGLDisplay dpy, EGLint name, EGLAttrib *value);
990 #endif
991 #endif /* EGL_KHR_display_reference */
992
993 #ifndef EGL_KHR_fence_sync
994 #define EGL_KHR_fence_sync 1
995 typedef khronos_utime_nanoseconds_t EGLTimeKHR;
996 #ifdef KHRONOS_SUPPORT_INT64
997 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
998 #define EGL_SYNC_CONDITION_KHR 0x30F8
999 #define EGL_SYNC_FENCE_KHR 0x30F9
1000 typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
1001 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
1002 typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
1003 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
1004 #ifdef EGL_EGLEXT_PROTOTYPES
1005 EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
1006 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync);
1007 EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
1008 EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
1009 #endif
1010 #endif /* KHRONOS_SUPPORT_INT64 */
1011 #endif /* EGL_KHR_fence_sync */
1012
1013 #ifndef EGL_KHR_get_all_proc_addresses
1014 #define EGL_KHR_get_all_proc_addresses 1
1015 #endif /* EGL_KHR_get_all_proc_addresses */
1016
1017 #ifndef EGL_KHR_gl_colorspace
1018 #define EGL_KHR_gl_colorspace 1
1019 #define EGL_GL_COLORSPACE_KHR 0x309D
1020 #define EGL_GL_COLORSPACE_SRGB_KHR 0x3089
1021 #define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A
1022 #endif /* EGL_KHR_gl_colorspace */
1023
1024 #ifndef EGL_KHR_gl_renderbuffer_image
1025 #define EGL_KHR_gl_renderbuffer_image 1
1026 #define EGL_GL_RENDERBUFFER_KHR 0x30B9
1027 #endif /* EGL_KHR_gl_renderbuffer_image */
1028
1029 #ifndef EGL_KHR_gl_texture_2D_image
1030 #define EGL_KHR_gl_texture_2D_image 1
1031 #define EGL_GL_TEXTURE_2D_KHR 0x30B1
1032 #define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC
1033 #endif /* EGL_KHR_gl_texture_2D_image */
1034
1035 #ifndef EGL_KHR_gl_texture_3D_image
1036 #define EGL_KHR_gl_texture_3D_image 1
1037 #define EGL_GL_TEXTURE_3D_KHR 0x30B2
1038 #define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD
1039 #endif /* EGL_KHR_gl_texture_3D_image */
1040
1041 #ifndef EGL_KHR_gl_texture_cubemap_image
1042 #define EGL_KHR_gl_texture_cubemap_image 1
1043 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3
1044 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4
1045 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5
1046 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6
1047 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7
1048 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8
1049 #endif /* EGL_KHR_gl_texture_cubemap_image */
1050
1051 #ifndef EGL_KHR_image
1052 #define EGL_KHR_image 1
1053 typedef void *EGLImageKHR;
1054 #define EGL_NATIVE_PIXMAP_KHR 0x30B0
1055 #define EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0)
1056 typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
1057 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
1058 #ifdef EGL_EGLEXT_PROTOTYPES
1059 EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
1060 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
1061 #endif
1062 #endif /* EGL_KHR_image */
1063
1064 #ifndef EGL_KHR_image_base
1065 #define EGL_KHR_image_base 1
1066 #define EGL_IMAGE_PRESERVED_KHR 0x30D2
1067 #endif /* EGL_KHR_image_base */
1068
1069 #ifndef EGL_KHR_image_pixmap
1070 #define EGL_KHR_image_pixmap 1
1071 #endif /* EGL_KHR_image_pixmap */
1072
1073 #ifndef EGL_KHR_lock_surface
1074 #define EGL_KHR_lock_surface 1
1075 #define EGL_READ_SURFACE_BIT_KHR 0x0001
1076 #define EGL_WRITE_SURFACE_BIT_KHR 0x0002
1077 #define EGL_LOCK_SURFACE_BIT_KHR 0x0080
1078 #define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100
1079 #define EGL_MATCH_FORMAT_KHR 0x3043
1080 #define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0
1081 #define EGL_FORMAT_RGB_565_KHR 0x30C1
1082 #define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2
1083 #define EGL_FORMAT_RGBA_8888_KHR 0x30C3
1084 #define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4
1085 #define EGL_LOCK_USAGE_HINT_KHR 0x30C5
1086 #define EGL_BITMAP_POINTER_KHR 0x30C6
1087 #define EGL_BITMAP_PITCH_KHR 0x30C7
1088 #define EGL_BITMAP_ORIGIN_KHR 0x30C8
1089 #define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9
1090 #define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
1091 #define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB
1092 #define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
1093 #define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
1094 #define EGL_LOWER_LEFT_KHR 0x30CE
1095 #define EGL_UPPER_LEFT_KHR 0x30CF
1096 typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list);
1097 typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface);
1098 #ifdef EGL_EGLEXT_PROTOTYPES
1099 EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list);
1100 EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface);
1101 #endif
1102 #endif /* EGL_KHR_lock_surface */
1103
1104 #ifndef EGL_KHR_lock_surface2
1105 #define EGL_KHR_lock_surface2 1
1106 #define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110
1107 #endif /* EGL_KHR_lock_surface2 */
1108
1109 #ifndef EGL_KHR_lock_surface3
1110 #define EGL_KHR_lock_surface3 1
1111 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value);
1112 #ifdef EGL_EGLEXT_PROTOTYPES
1113 EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value);
1114 #endif
1115 #endif /* EGL_KHR_lock_surface3 */
1116
1117 #ifndef EGL_KHR_mutable_render_buffer
1118 #define EGL_KHR_mutable_render_buffer 1
1119 #define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000
1120 #endif /* EGL_KHR_mutable_render_buffer */
1121
1122 #ifndef EGL_KHR_no_config_context
1123 #define EGL_KHR_no_config_context 1
1124 #define EGL_NO_CONFIG_KHR EGL_CAST(EGLConfig,0)
1125 #endif /* EGL_KHR_no_config_context */
1126
1127 #ifndef EGL_KHR_partial_update
1128 #define EGL_KHR_partial_update 1
1129 #define EGL_BUFFER_AGE_KHR 0x313D
1130 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
1131 #ifdef EGL_EGLEXT_PROTOTYPES
1132 EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
1133 #endif
1134 #endif /* EGL_KHR_partial_update */
1135
1136 #ifndef EGL_KHR_platform_android
1137 #define EGL_KHR_platform_android 1
1138 #define EGL_PLATFORM_ANDROID_KHR 0x3141
1139 #endif /* EGL_KHR_platform_android */
1140
1141 #ifndef EGL_KHR_platform_gbm
1142 #define EGL_KHR_platform_gbm 1
1143 #define EGL_PLATFORM_GBM_KHR 0x31D7
1144 #endif /* EGL_KHR_platform_gbm */
1145
1146 #ifndef EGL_KHR_platform_wayland
1147 #define EGL_KHR_platform_wayland 1
1148 #define EGL_PLATFORM_WAYLAND_KHR 0x31D8
1149 #endif /* EGL_KHR_platform_wayland */
1150
1151 #ifndef EGL_KHR_platform_x11
1152 #define EGL_KHR_platform_x11 1
1153 #define EGL_PLATFORM_X11_KHR 0x31D5
1154 #define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6
1155 #endif /* EGL_KHR_platform_x11 */
1156
1157 #ifndef EGL_KHR_reusable_sync
1158 #define EGL_KHR_reusable_sync 1
1159 #ifdef KHRONOS_SUPPORT_INT64
1160 #define EGL_SYNC_STATUS_KHR 0x30F1
1161 #define EGL_SIGNALED_KHR 0x30F2
1162 #define EGL_UNSIGNALED_KHR 0x30F3
1163 #define EGL_TIMEOUT_EXPIRED_KHR 0x30F5
1164 #define EGL_CONDITION_SATISFIED_KHR 0x30F6
1165 #define EGL_SYNC_TYPE_KHR 0x30F7
1166 #define EGL_SYNC_REUSABLE_KHR 0x30FA
1167 #define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
1168 #define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull
1169 #define EGL_NO_SYNC_KHR EGL_CAST(EGLSyncKHR,0)
1170 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
1171 #ifdef EGL_EGLEXT_PROTOTYPES
1172 EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
1173 #endif
1174 #endif /* KHRONOS_SUPPORT_INT64 */
1175 #endif /* EGL_KHR_reusable_sync */
1176
1177 #ifndef EGL_KHR_stream
1178 #define EGL_KHR_stream 1
1179 typedef void *EGLStreamKHR;
1180 typedef khronos_uint64_t EGLuint64KHR;
1181 #ifdef KHRONOS_SUPPORT_INT64
1182 #define EGL_NO_STREAM_KHR EGL_CAST(EGLStreamKHR,0)
1183 #define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210
1184 #define EGL_PRODUCER_FRAME_KHR 0x3212
1185 #define EGL_CONSUMER_FRAME_KHR 0x3213
1186 #define EGL_STREAM_STATE_KHR 0x3214
1187 #define EGL_STREAM_STATE_CREATED_KHR 0x3215
1188 #define EGL_STREAM_STATE_CONNECTING_KHR 0x3216
1189 #define EGL_STREAM_STATE_EMPTY_KHR 0x3217
1190 #define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218
1191 #define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219
1192 #define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A
1193 #define EGL_BAD_STREAM_KHR 0x321B
1194 #define EGL_BAD_STATE_KHR 0x321C
1195 typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint *attrib_list);
1196 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
1197 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
1198 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value);
1199 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value);
1200 #ifdef EGL_EGLEXT_PROTOTYPES
1201 EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR (EGLDisplay dpy, const EGLint *attrib_list);
1202 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream);
1203 EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
1204 EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value);
1205 EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value);
1206 #endif
1207 #endif /* KHRONOS_SUPPORT_INT64 */
1208 #endif /* EGL_KHR_stream */
1209
1210 #ifndef EGL_KHR_stream_attrib
1211 #define EGL_KHR_stream_attrib 1
1212 #ifdef KHRONOS_SUPPORT_INT64
1213 typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMATTRIBKHRPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list);
1214 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value);
1215 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value);
1216 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
1217 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
1218 #ifdef EGL_EGLEXT_PROTOTYPES
1219 EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamAttribKHR (EGLDisplay dpy, const EGLAttrib *attrib_list);
1220 EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value);
1221 EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value);
1222 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
1223 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
1224 #endif
1225 #endif /* KHRONOS_SUPPORT_INT64 */
1226 #endif /* EGL_KHR_stream_attrib */
1227
1228 #ifndef EGL_KHR_stream_consumer_gltexture
1229 #define EGL_KHR_stream_consumer_gltexture 1
1230 #ifdef EGL_KHR_stream
1231 #define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E
1232 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
1233 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
1234 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
1235 #ifdef EGL_EGLEXT_PROTOTYPES
1236 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream);
1237 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream);
1238 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream);
1239 #endif
1240 #endif /* EGL_KHR_stream */
1241 #endif /* EGL_KHR_stream_consumer_gltexture */
1242
1243 #ifndef EGL_KHR_stream_cross_process_fd
1244 #define EGL_KHR_stream_cross_process_fd 1
1245 typedef int EGLNativeFileDescriptorKHR;
1246 #ifdef EGL_KHR_stream
1247 #define EGL_NO_FILE_DESCRIPTOR_KHR EGL_CAST(EGLNativeFileDescriptorKHR,-1)
1248 typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
1249 typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
1250 #ifdef EGL_EGLEXT_PROTOTYPES
1251 EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream);
1252 EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
1253 #endif
1254 #endif /* EGL_KHR_stream */
1255 #endif /* EGL_KHR_stream_cross_process_fd */
1256
1257 #ifndef EGL_KHR_stream_fifo
1258 #define EGL_KHR_stream_fifo 1
1259 #ifdef EGL_KHR_stream
1260 #define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC
1261 #define EGL_STREAM_TIME_NOW_KHR 0x31FD
1262 #define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE
1263 #define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF
1264 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value);
1265 #ifdef EGL_EGLEXT_PROTOTYPES
1266 EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value);
1267 #endif
1268 #endif /* EGL_KHR_stream */
1269 #endif /* EGL_KHR_stream_fifo */
1270
1271 #ifndef EGL_KHR_stream_producer_aldatalocator
1272 #define EGL_KHR_stream_producer_aldatalocator 1
1273 #ifdef EGL_KHR_stream
1274 #endif /* EGL_KHR_stream */
1275 #endif /* EGL_KHR_stream_producer_aldatalocator */
1276
1277 #ifndef EGL_KHR_stream_producer_eglsurface
1278 #define EGL_KHR_stream_producer_eglsurface 1
1279 #ifdef EGL_KHR_stream
1280 #define EGL_STREAM_BIT_KHR 0x0800
1281 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
1282 #ifdef EGL_EGLEXT_PROTOTYPES
1283 EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
1284 #endif
1285 #endif /* EGL_KHR_stream */
1286 #endif /* EGL_KHR_stream_producer_eglsurface */
1287
1288 #ifndef EGL_KHR_surfaceless_context
1289 #define EGL_KHR_surfaceless_context 1
1290 #endif /* EGL_KHR_surfaceless_context */
1291
1292 #ifndef EGL_KHR_swap_buffers_with_damage
1293 #define EGL_KHR_swap_buffers_with_damage 1
1294 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects);
1295 #ifdef EGL_EGLEXT_PROTOTYPES
1296 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects);
1297 #endif
1298 #endif /* EGL_KHR_swap_buffers_with_damage */
1299
1300 #ifndef EGL_KHR_vg_parent_image
1301 #define EGL_KHR_vg_parent_image 1
1302 #define EGL_VG_PARENT_IMAGE_KHR 0x30BA
1303 #endif /* EGL_KHR_vg_parent_image */
1304
1305 #ifndef EGL_KHR_wait_sync
1306 #define EGL_KHR_wait_sync 1
1307 typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
1308 #ifdef EGL_EGLEXT_PROTOTYPES
1309 EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
1310 #endif
1311 #endif /* EGL_KHR_wait_sync */
1312
1313 #ifndef EGL_ANDROID_GLES_layers
1314 #define EGL_ANDROID_GLES_layers 1
1315 #endif /* EGL_ANDROID_GLES_layers */
1316
1317 #ifndef EGL_ANDROID_blob_cache
1318 #define EGL_ANDROID_blob_cache 1
1319 typedef khronos_ssize_t EGLsizeiANDROID;
1320 typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
1321 typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
1322 typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
1323 #ifdef EGL_EGLEXT_PROTOTYPES
1324 EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
1325 #endif
1326 #endif /* EGL_ANDROID_blob_cache */
1327
1328 #ifndef EGL_ANDROID_create_native_client_buffer
1329 #define EGL_ANDROID_create_native_client_buffer 1
1330 #define EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143
1331 #define EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001
1332 #define EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002
1333 #define EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004
1334 typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) (const EGLint *attrib_list);
1335 #ifdef EGL_EGLEXT_PROTOTYPES
1336 EGLAPI EGLClientBuffer EGLAPIENTRY eglCreateNativeClientBufferANDROID (const EGLint *attrib_list);
1337 #endif
1338 #endif /* EGL_ANDROID_create_native_client_buffer */
1339
1340 #ifndef EGL_ANDROID_framebuffer_target
1341 #define EGL_ANDROID_framebuffer_target 1
1342 #define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147
1343 #endif /* EGL_ANDROID_framebuffer_target */
1344
1345 #ifndef EGL_ANDROID_front_buffer_auto_refresh
1346 #define EGL_ANDROID_front_buffer_auto_refresh 1
1347 #define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C
1348 #endif /* EGL_ANDROID_front_buffer_auto_refresh */
1349
1350 #ifndef EGL_ANDROID_get_frame_timestamps
1351 #define EGL_ANDROID_get_frame_timestamps 1
1352 typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
1353 #define EGL_TIMESTAMP_PENDING_ANDROID EGL_CAST(EGLnsecsANDROID,-2)
1354 #define EGL_TIMESTAMP_INVALID_ANDROID EGL_CAST(EGLnsecsANDROID,-1)
1355 #define EGL_TIMESTAMPS_ANDROID 0x3430
1356 #define EGL_COMPOSITE_DEADLINE_ANDROID 0x3431
1357 #define EGL_COMPOSITE_INTERVAL_ANDROID 0x3432
1358 #define EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433
1359 #define EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434
1360 #define EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435
1361 #define EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436
1362 #define EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437
1363 #define EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438
1364 #define EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439
1365 #define EGL_DISPLAY_PRESENT_TIME_ANDROID 0x343A
1366 #define EGL_DEQUEUE_READY_TIME_ANDROID 0x343B
1367 #define EGL_READS_DONE_TIME_ANDROID 0x343C
1368 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint name);
1369 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values);
1370 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETNEXTFRAMEIDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId);
1371 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
1372 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values);
1373 #ifdef EGL_EGLEXT_PROTOTYPES
1374 EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint name);
1375 EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingANDROID (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values);
1376 EGLAPI EGLBoolean EGLAPIENTRY eglGetNextFrameIdANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId);
1377 EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
1378 EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampsANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values);
1379 #endif
1380 #endif /* EGL_ANDROID_get_frame_timestamps */
1381
1382 #ifndef EGL_ANDROID_get_native_client_buffer
1383 #define EGL_ANDROID_get_native_client_buffer 1
1384 struct AHardwareBuffer;
1385 typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC) (const struct AHardwareBuffer *buffer);
1386 #ifdef EGL_EGLEXT_PROTOTYPES
1387 EGLAPI EGLClientBuffer EGLAPIENTRY eglGetNativeClientBufferANDROID (const struct AHardwareBuffer *buffer);
1388 #endif
1389 #endif /* EGL_ANDROID_get_native_client_buffer */
1390
1391 #ifndef EGL_ANDROID_image_native_buffer
1392 #define EGL_ANDROID_image_native_buffer 1
1393 #define EGL_NATIVE_BUFFER_ANDROID 0x3140
1394 #endif /* EGL_ANDROID_image_native_buffer */
1395
1396 #ifndef EGL_ANDROID_native_fence_sync
1397 #define EGL_ANDROID_native_fence_sync 1
1398 #define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144
1399 #define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145
1400 #define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146
1401 #define EGL_NO_NATIVE_FENCE_FD_ANDROID -1
1402 typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync);
1403 #ifdef EGL_EGLEXT_PROTOTYPES
1404 EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync);
1405 #endif
1406 #endif /* EGL_ANDROID_native_fence_sync */
1407
1408 #ifndef EGL_ANDROID_presentation_time
1409 #define EGL_ANDROID_presentation_time 1
1410 typedef EGLBoolean (EGLAPIENTRYP PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
1411 #ifdef EGL_EGLEXT_PROTOTYPES
1412 EGLAPI EGLBoolean EGLAPIENTRY eglPresentationTimeANDROID (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
1413 #endif
1414 #endif /* EGL_ANDROID_presentation_time */
1415
1416 #ifndef EGL_ANDROID_recordable
1417 #define EGL_ANDROID_recordable 1
1418 #define EGL_RECORDABLE_ANDROID 0x3142
1419 #endif /* EGL_ANDROID_recordable */
1420
1421 #ifndef EGL_ANGLE_d3d_share_handle_client_buffer
1422 #define EGL_ANGLE_d3d_share_handle_client_buffer 1
1423 #define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
1424 #endif /* EGL_ANGLE_d3d_share_handle_client_buffer */
1425
1426 #ifndef EGL_ANGLE_device_d3d
1427 #define EGL_ANGLE_device_d3d 1
1428 #define EGL_D3D9_DEVICE_ANGLE 0x33A0
1429 #define EGL_D3D11_DEVICE_ANGLE 0x33A1
1430 #endif /* EGL_ANGLE_device_d3d */
1431
1432 #ifndef EGL_ANGLE_query_surface_pointer
1433 #define EGL_ANGLE_query_surface_pointer 1
1434 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
1435 #ifdef EGL_EGLEXT_PROTOTYPES
1436 EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
1437 #endif
1438 #endif /* EGL_ANGLE_query_surface_pointer */
1439
1440 #ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle
1441 #define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
1442 #endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */
1443
1444 #ifndef EGL_ANGLE_sync_control_rate
1445 #define EGL_ANGLE_sync_control_rate 1
1446 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMSCRATEANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *numerator, EGLint *denominator);
1447 #ifdef EGL_EGLEXT_PROTOTYPES
1448 EGLAPI EGLBoolean EGLAPIENTRY eglGetMscRateANGLE (EGLDisplay dpy, EGLSurface surface, EGLint *numerator, EGLint *denominator);
1449 #endif
1450 #endif /* EGL_ANGLE_sync_control_rate */
1451
1452 #ifndef EGL_ANGLE_window_fixed_size
1453 #define EGL_ANGLE_window_fixed_size 1
1454 #define EGL_FIXED_SIZE_ANGLE 0x3201
1455 #endif /* EGL_ANGLE_window_fixed_size */
1456
1457 #ifndef EGL_ARM_image_format
1458 #define EGL_ARM_image_format 1
1459 #define EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM 0x3287
1460 #define EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM 0x3288
1461 #endif /* EGL_ARM_image_format */
1462
1463 #ifndef EGL_ARM_implicit_external_sync
1464 #define EGL_ARM_implicit_external_sync 1
1465 #define EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM 0x328A
1466 #endif /* EGL_ARM_implicit_external_sync */
1467
1468 #ifndef EGL_ARM_pixmap_multisample_discard
1469 #define EGL_ARM_pixmap_multisample_discard 1
1470 #define EGL_DISCARD_SAMPLES_ARM 0x3286
1471 #endif /* EGL_ARM_pixmap_multisample_discard */
1472
1473 #ifndef EGL_EXT_bind_to_front
1474 #define EGL_EXT_bind_to_front 1
1475 #define EGL_FRONT_BUFFER_EXT 0x3464
1476 #endif /* EGL_EXT_bind_to_front */
1477
1478 #ifndef EGL_EXT_buffer_age
1479 #define EGL_EXT_buffer_age 1
1480 #define EGL_BUFFER_AGE_EXT 0x313D
1481 #endif /* EGL_EXT_buffer_age */
1482
1483 #ifndef EGL_EXT_client_extensions
1484 #define EGL_EXT_client_extensions 1
1485 #endif /* EGL_EXT_client_extensions */
1486
1487 #ifndef EGL_EXT_client_sync
1488 #define EGL_EXT_client_sync 1
1489 #define EGL_SYNC_CLIENT_EXT 0x3364
1490 #define EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365
1491 typedef EGLBoolean (EGLAPIENTRYP PFNEGLCLIENTSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
1492 #ifdef EGL_EGLEXT_PROTOTYPES
1493 EGLAPI EGLBoolean EGLAPIENTRY eglClientSignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
1494 #endif
1495 #endif /* EGL_EXT_client_sync */
1496
1497 #ifndef EGL_EXT_compositor
1498 #define EGL_EXT_compositor 1
1499 #define EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT 0x3460
1500 #define EGL_EXTERNAL_REF_ID_EXT 0x3461
1501 #define EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT 0x3462
1502 #define EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT 0x3463
1503 typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC) (const EGLint *external_ref_ids, EGLint num_entries);
1504 typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC) (EGLint external_ref_id, const EGLint *context_attributes, EGLint num_entries);
1505 typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC) (EGLint external_ref_id, const EGLint *external_win_ids, EGLint num_entries);
1506 typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC) (EGLint external_win_id, const EGLint *window_attributes, EGLint num_entries);
1507 typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC) (EGLint external_win_id);
1508 typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETSIZEEXTPROC) (EGLint external_win_id, EGLint width, EGLint height);
1509 typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSWAPPOLICYEXTPROC) (EGLint external_win_id, EGLint policy);
1510 #ifdef EGL_EGLEXT_PROTOTYPES
1511 EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetContextListEXT (const EGLint *external_ref_ids, EGLint num_entries);
1512 EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetContextAttributesEXT (EGLint external_ref_id, const EGLint *context_attributes, EGLint num_entries);
1513 EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetWindowListEXT (EGLint external_ref_id, const EGLint *external_win_ids, EGLint num_entries);
1514 EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetWindowAttributesEXT (EGLint external_win_id, const EGLint *window_attributes, EGLint num_entries);
1515 EGLAPI EGLBoolean EGLAPIENTRY eglCompositorBindTexWindowEXT (EGLint external_win_id);
1516 EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetSizeEXT (EGLint external_win_id, EGLint width, EGLint height);
1517 EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSwapPolicyEXT (EGLint external_win_id, EGLint policy);
1518 #endif
1519 #endif /* EGL_EXT_compositor */
1520
1521 #ifndef EGL_EXT_config_select_group
1522 #define EGL_EXT_config_select_group 1
1523 #define EGL_CONFIG_SELECT_GROUP_EXT 0x34C0
1524 #endif /* EGL_EXT_config_select_group */
1525
1526 #ifndef EGL_EXT_create_context_robustness
1527 #define EGL_EXT_create_context_robustness 1
1528 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF
1529 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138
1530 #define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE
1531 #define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF
1532 #endif /* EGL_EXT_create_context_robustness */
1533
1534 #ifndef EGL_EXT_device_base
1535 #define EGL_EXT_device_base 1
1536 typedef void *EGLDeviceEXT;
1537 #define EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0)
1538 #define EGL_BAD_DEVICE_EXT 0x322B
1539 #define EGL_DEVICE_EXT 0x322C
1540 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value);
1541 typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name);
1542 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices);
1543 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
1544 #ifdef EGL_EGLEXT_PROTOTYPES
1545 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value);
1546 EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name);
1547 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices);
1548 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
1549 #endif
1550 #endif /* EGL_EXT_device_base */
1551
1552 #ifndef EGL_EXT_device_drm
1553 #define EGL_EXT_device_drm 1
1554 #define EGL_DRM_DEVICE_FILE_EXT 0x3233
1555 #define EGL_DRM_MASTER_FD_EXT 0x333C
1556 #endif /* EGL_EXT_device_drm */
1557
1558 #ifndef EGL_EXT_device_drm_render_node
1559 #define EGL_EXT_device_drm_render_node 1
1560 #define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377
1561 #endif /* EGL_EXT_device_drm_render_node */
1562
1563 #ifndef EGL_EXT_device_enumeration
1564 #define EGL_EXT_device_enumeration 1
1565 #endif /* EGL_EXT_device_enumeration */
1566
1567 #ifndef EGL_EXT_device_openwf
1568 #define EGL_EXT_device_openwf 1
1569 #define EGL_OPENWF_DEVICE_ID_EXT 0x3237
1570 #define EGL_OPENWF_DEVICE_EXT 0x333D
1571 #endif /* EGL_EXT_device_openwf */
1572
1573 #ifndef EGL_EXT_device_persistent_id
1574 #define EGL_EXT_device_persistent_id 1
1575 #define EGL_DEVICE_UUID_EXT 0x335C
1576 #define EGL_DRIVER_UUID_EXT 0x335D
1577 #define EGL_DRIVER_NAME_EXT 0x335E
1578 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEBINARYEXTPROC) (EGLDeviceEXT device, EGLint name, EGLint max_size, void *value, EGLint *size);
1579 #ifdef EGL_EGLEXT_PROTOTYPES
1580 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceBinaryEXT (EGLDeviceEXT device, EGLint name, EGLint max_size, void *value, EGLint *size);
1581 #endif
1582 #endif /* EGL_EXT_device_persistent_id */
1583
1584 #ifndef EGL_EXT_device_query
1585 #define EGL_EXT_device_query 1
1586 #endif /* EGL_EXT_device_query */
1587
1588 #ifndef EGL_EXT_device_query_name
1589 #define EGL_EXT_device_query_name 1
1590 #define EGL_RENDERER_EXT 0x335F
1591 #endif /* EGL_EXT_device_query_name */
1592
1593 #ifndef EGL_EXT_explicit_device
1594 #define EGL_EXT_explicit_device 1
1595 #endif /* EGL_EXT_explicit_device */
1596
1597 #ifndef EGL_EXT_gl_colorspace_bt2020_linear
1598 #define EGL_EXT_gl_colorspace_bt2020_linear 1
1599 #define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F
1600 #endif /* EGL_EXT_gl_colorspace_bt2020_linear */
1601
1602 #ifndef EGL_EXT_gl_colorspace_bt2020_pq
1603 #define EGL_EXT_gl_colorspace_bt2020_pq 1
1604 #define EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340
1605 #endif /* EGL_EXT_gl_colorspace_bt2020_pq */
1606
1607 #ifndef EGL_EXT_gl_colorspace_display_p3
1608 #define EGL_EXT_gl_colorspace_display_p3 1
1609 #define EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363
1610 #endif /* EGL_EXT_gl_colorspace_display_p3 */
1611
1612 #ifndef EGL_EXT_gl_colorspace_display_p3_linear
1613 #define EGL_EXT_gl_colorspace_display_p3_linear 1
1614 #define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362
1615 #endif /* EGL_EXT_gl_colorspace_display_p3_linear */
1616
1617 #ifndef EGL_EXT_gl_colorspace_display_p3_passthrough
1618 #define EGL_EXT_gl_colorspace_display_p3_passthrough 1
1619 #define EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490
1620 #endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */
1621
1622 #ifndef EGL_EXT_gl_colorspace_scrgb
1623 #define EGL_EXT_gl_colorspace_scrgb 1
1624 #define EGL_GL_COLORSPACE_SCRGB_EXT 0x3351
1625 #endif /* EGL_EXT_gl_colorspace_scrgb */
1626
1627 #ifndef EGL_EXT_gl_colorspace_scrgb_linear
1628 #define EGL_EXT_gl_colorspace_scrgb_linear 1
1629 #define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350
1630 #endif /* EGL_EXT_gl_colorspace_scrgb_linear */
1631
1632 #ifndef EGL_EXT_image_dma_buf_import
1633 #define EGL_EXT_image_dma_buf_import 1
1634 #define EGL_LINUX_DMA_BUF_EXT 0x3270
1635 #define EGL_LINUX_DRM_FOURCC_EXT 0x3271
1636 #define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272
1637 #define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273
1638 #define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274
1639 #define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275
1640 #define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276
1641 #define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277
1642 #define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278
1643 #define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279
1644 #define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A
1645 #define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B
1646 #define EGL_SAMPLE_RANGE_HINT_EXT 0x327C
1647 #define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
1648 #define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
1649 #define EGL_ITU_REC601_EXT 0x327F
1650 #define EGL_ITU_REC709_EXT 0x3280
1651 #define EGL_ITU_REC2020_EXT 0x3281
1652 #define EGL_YUV_FULL_RANGE_EXT 0x3282
1653 #define EGL_YUV_NARROW_RANGE_EXT 0x3283
1654 #define EGL_YUV_CHROMA_SITING_0_EXT 0x3284
1655 #define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285
1656 #endif /* EGL_EXT_image_dma_buf_import */
1657
1658 #ifndef EGL_EXT_image_dma_buf_import_modifiers
1659 #define EGL_EXT_image_dma_buf_import_modifiers 1
1660 #define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440
1661 #define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441
1662 #define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442
1663 #define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443
1664 #define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444
1665 #define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445
1666 #define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446
1667 #define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447
1668 #define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448
1669 #define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449
1670 #define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A
1671 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFFORMATSEXTPROC) (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats);
1672 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFMODIFIERSEXTPROC) (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers);
1673 #ifdef EGL_EGLEXT_PROTOTYPES
1674 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufFormatsEXT (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats);
1675 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufModifiersEXT (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers);
1676 #endif
1677 #endif /* EGL_EXT_image_dma_buf_import_modifiers */
1678
1679 #ifndef EGL_EXT_image_gl_colorspace
1680 #define EGL_EXT_image_gl_colorspace 1
1681 #define EGL_GL_COLORSPACE_DEFAULT_EXT 0x314D
1682 #endif /* EGL_EXT_image_gl_colorspace */
1683
1684 #ifndef EGL_EXT_image_implicit_sync_control
1685 #define EGL_EXT_image_implicit_sync_control 1
1686 #define EGL_IMPORT_SYNC_TYPE_EXT 0x3470
1687 #define EGL_IMPORT_IMPLICIT_SYNC_EXT 0x3471
1688 #define EGL_IMPORT_EXPLICIT_SYNC_EXT 0x3472
1689 #endif /* EGL_EXT_image_implicit_sync_control */
1690
1691 #ifndef EGL_EXT_multiview_window
1692 #define EGL_EXT_multiview_window 1
1693 #define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134
1694 #endif /* EGL_EXT_multiview_window */
1695
1696 #ifndef EGL_EXT_output_base
1697 #define EGL_EXT_output_base 1
1698 typedef void *EGLOutputLayerEXT;
1699 typedef void *EGLOutputPortEXT;
1700 #define EGL_NO_OUTPUT_LAYER_EXT EGL_CAST(EGLOutputLayerEXT,0)
1701 #define EGL_NO_OUTPUT_PORT_EXT EGL_CAST(EGLOutputPortEXT,0)
1702 #define EGL_BAD_OUTPUT_LAYER_EXT 0x322D
1703 #define EGL_BAD_OUTPUT_PORT_EXT 0x322E
1704 #define EGL_SWAP_INTERVAL_EXT 0x322F
1705 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers);
1706 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports);
1707 typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
1708 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value);
1709 typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
1710 typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
1711 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value);
1712 typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
1713 #ifdef EGL_EGLEXT_PROTOTYPES
1714 EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers);
1715 EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports);
1716 EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
1717 EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value);
1718 EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
1719 EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
1720 EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value);
1721 EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
1722 #endif
1723 #endif /* EGL_EXT_output_base */
1724
1725 #ifndef EGL_EXT_output_drm
1726 #define EGL_EXT_output_drm 1
1727 #define EGL_DRM_CRTC_EXT 0x3234
1728 #define EGL_DRM_PLANE_EXT 0x3235
1729 #define EGL_DRM_CONNECTOR_EXT 0x3236
1730 #endif /* EGL_EXT_output_drm */
1731
1732 #ifndef EGL_EXT_output_openwf
1733 #define EGL_EXT_output_openwf 1
1734 #define EGL_OPENWF_PIPELINE_ID_EXT 0x3238
1735 #define EGL_OPENWF_PORT_ID_EXT 0x3239
1736 #endif /* EGL_EXT_output_openwf */
1737
1738 #ifndef EGL_EXT_pixel_format_float
1739 #define EGL_EXT_pixel_format_float 1
1740 #define EGL_COLOR_COMPONENT_TYPE_EXT 0x3339
1741 #define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A
1742 #define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B
1743 #endif /* EGL_EXT_pixel_format_float */
1744
1745 #ifndef EGL_EXT_platform_base
1746 #define EGL_EXT_platform_base 1
1747 typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list);
1748 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list);
1749 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list);
1750 #ifdef EGL_EGLEXT_PROTOTYPES
1751 EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT (EGLenum platform, void *native_display, const EGLint *attrib_list);
1752 EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list);
1753 EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list);
1754 #endif
1755 #endif /* EGL_EXT_platform_base */
1756
1757 #ifndef EGL_EXT_platform_device
1758 #define EGL_EXT_platform_device 1
1759 #define EGL_PLATFORM_DEVICE_EXT 0x313F
1760 #endif /* EGL_EXT_platform_device */
1761
1762 #ifndef EGL_EXT_platform_wayland
1763 #define EGL_EXT_platform_wayland 1
1764 #define EGL_PLATFORM_WAYLAND_EXT 0x31D8
1765 #endif /* EGL_EXT_platform_wayland */
1766
1767 #ifndef EGL_EXT_platform_x11
1768 #define EGL_EXT_platform_x11 1
1769 #define EGL_PLATFORM_X11_EXT 0x31D5
1770 #define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6
1771 #endif /* EGL_EXT_platform_x11 */
1772
1773 #ifndef EGL_EXT_platform_xcb
1774 #define EGL_EXT_platform_xcb 1
1775 #define EGL_PLATFORM_XCB_EXT 0x31DC
1776 #define EGL_PLATFORM_XCB_SCREEN_EXT 0x31DE
1777 #endif /* EGL_EXT_platform_xcb */
1778
1779 #ifndef EGL_EXT_present_opaque
1780 #define EGL_EXT_present_opaque 1
1781 #define EGL_PRESENT_OPAQUE_EXT 0x31DF
1782 #endif /* EGL_EXT_present_opaque */
1783
1784 #ifndef EGL_EXT_protected_content
1785 #define EGL_EXT_protected_content 1
1786 #define EGL_PROTECTED_CONTENT_EXT 0x32C0
1787 #endif /* EGL_EXT_protected_content */
1788
1789 #ifndef EGL_EXT_protected_surface
1790 #define EGL_EXT_protected_surface 1
1791 #endif /* EGL_EXT_protected_surface */
1792
1793 #ifndef EGL_EXT_stream_consumer_egloutput
1794 #define EGL_EXT_stream_consumer_egloutput 1
1795 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
1796 #ifdef EGL_EGLEXT_PROTOTYPES
1797 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
1798 #endif
1799 #endif /* EGL_EXT_stream_consumer_egloutput */
1800
1801 #ifndef EGL_EXT_surface_CTA861_3_metadata
1802 #define EGL_EXT_surface_CTA861_3_metadata 1
1803 #define EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360
1804 #define EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361
1805 #endif /* EGL_EXT_surface_CTA861_3_metadata */
1806
1807 #ifndef EGL_EXT_surface_SMPTE2086_metadata
1808 #define EGL_EXT_surface_SMPTE2086_metadata 1
1809 #define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341
1810 #define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342
1811 #define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343
1812 #define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344
1813 #define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345
1814 #define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346
1815 #define EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347
1816 #define EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348
1817 #define EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349
1818 #define EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A
1819 #define EGL_METADATA_SCALING_EXT 50000
1820 #endif /* EGL_EXT_surface_SMPTE2086_metadata */
1821
1822 #ifndef EGL_EXT_surface_compression
1823 #define EGL_EXT_surface_compression 1
1824 #define EGL_SURFACE_COMPRESSION_EXT 0x34B0
1825 #define EGL_SURFACE_COMPRESSION_PLANE1_EXT 0x328E
1826 #define EGL_SURFACE_COMPRESSION_PLANE2_EXT 0x328F
1827 #define EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x34B1
1828 #define EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x34B2
1829 #define EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT 0x34B4
1830 #define EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT 0x34B5
1831 #define EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT 0x34B6
1832 #define EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT 0x34B7
1833 #define EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT 0x34B8
1834 #define EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT 0x34B9
1835 #define EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT 0x34BA
1836 #define EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT 0x34BB
1837 #define EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT 0x34BC
1838 #define EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT 0x34BD
1839 #define EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT 0x34BE
1840 #define EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT 0x34BF
1841 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSUPPORTEDCOMPRESSIONRATESEXTPROC) (EGLDisplay dpy, EGLConfig config, const EGLAttrib *attrib_list, EGLint *rates, EGLint rate_size, EGLint *num_rates);
1842 #ifdef EGL_EGLEXT_PROTOTYPES
1843 EGLAPI EGLBoolean EGLAPIENTRY eglQuerySupportedCompressionRatesEXT (EGLDisplay dpy, EGLConfig config, const EGLAttrib *attrib_list, EGLint *rates, EGLint rate_size, EGLint *num_rates);
1844 #endif
1845 #endif /* EGL_EXT_surface_compression */
1846
1847 #ifndef EGL_EXT_swap_buffers_with_damage
1848 #define EGL_EXT_swap_buffers_with_damage 1
1849 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects);
1850 #ifdef EGL_EGLEXT_PROTOTYPES
1851 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects);
1852 #endif
1853 #endif /* EGL_EXT_swap_buffers_with_damage */
1854
1855 #ifndef EGL_EXT_sync_reuse
1856 #define EGL_EXT_sync_reuse 1
1857 typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
1858 #ifdef EGL_EGLEXT_PROTOTYPES
1859 EGLAPI EGLBoolean EGLAPIENTRY eglUnsignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
1860 #endif
1861 #endif /* EGL_EXT_sync_reuse */
1862
1863 #ifndef EGL_EXT_yuv_surface
1864 #define EGL_EXT_yuv_surface 1
1865 #define EGL_YUV_ORDER_EXT 0x3301
1866 #define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311
1867 #define EGL_YUV_SUBSAMPLE_EXT 0x3312
1868 #define EGL_YUV_DEPTH_RANGE_EXT 0x3317
1869 #define EGL_YUV_CSC_STANDARD_EXT 0x330A
1870 #define EGL_YUV_PLANE_BPP_EXT 0x331A
1871 #define EGL_YUV_BUFFER_EXT 0x3300
1872 #define EGL_YUV_ORDER_YUV_EXT 0x3302
1873 #define EGL_YUV_ORDER_YVU_EXT 0x3303
1874 #define EGL_YUV_ORDER_YUYV_EXT 0x3304
1875 #define EGL_YUV_ORDER_UYVY_EXT 0x3305
1876 #define EGL_YUV_ORDER_YVYU_EXT 0x3306
1877 #define EGL_YUV_ORDER_VYUY_EXT 0x3307
1878 #define EGL_YUV_ORDER_AYUV_EXT 0x3308
1879 #define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313
1880 #define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314
1881 #define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315
1882 #define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318
1883 #define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319
1884 #define EGL_YUV_CSC_STANDARD_601_EXT 0x330B
1885 #define EGL_YUV_CSC_STANDARD_709_EXT 0x330C
1886 #define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D
1887 #define EGL_YUV_PLANE_BPP_0_EXT 0x331B
1888 #define EGL_YUV_PLANE_BPP_8_EXT 0x331C
1889 #define EGL_YUV_PLANE_BPP_10_EXT 0x331D
1890 #endif /* EGL_EXT_yuv_surface */
1891
1892 #ifndef EGL_HI_clientpixmap
1893 #define EGL_HI_clientpixmap 1
1894 struct EGLClientPixmapHI {
1895 void *pData;
1896 EGLint iWidth;
1897 EGLint iHeight;
1898 EGLint iStride;
1899 };
1900 #define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74
1901 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap);
1902 #ifdef EGL_EGLEXT_PROTOTYPES
1903 EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap);
1904 #endif
1905 #endif /* EGL_HI_clientpixmap */
1906
1907 #ifndef EGL_HI_colorformats
1908 #define EGL_HI_colorformats 1
1909 #define EGL_COLOR_FORMAT_HI 0x8F70
1910 #define EGL_COLOR_RGB_HI 0x8F71
1911 #define EGL_COLOR_RGBA_HI 0x8F72
1912 #define EGL_COLOR_ARGB_HI 0x8F73
1913 #endif /* EGL_HI_colorformats */
1914
1915 #ifndef EGL_IMG_context_priority
1916 #define EGL_IMG_context_priority 1
1917 #define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100
1918 #define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101
1919 #define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102
1920 #define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103
1921 #endif /* EGL_IMG_context_priority */
1922
1923 #ifndef EGL_IMG_image_plane_attribs
1924 #define EGL_IMG_image_plane_attribs 1
1925 #define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105
1926 #define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106
1927 #endif /* EGL_IMG_image_plane_attribs */
1928
1929 #ifndef EGL_MESA_drm_image
1930 #define EGL_MESA_drm_image 1
1931 #define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0
1932 #define EGL_DRM_BUFFER_USE_MESA 0x31D1
1933 #define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2
1934 #define EGL_DRM_BUFFER_MESA 0x31D3
1935 #define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4
1936 #define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001
1937 #define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002
1938 #define EGL_DRM_BUFFER_USE_CURSOR_MESA 0x00000004
1939 typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list);
1940 typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
1941 #ifdef EGL_EGLEXT_PROTOTYPES
1942 EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list);
1943 EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
1944 #endif
1945 #endif /* EGL_MESA_drm_image */
1946
1947 #ifndef EGL_MESA_image_dma_buf_export
1948 #define EGL_MESA_image_dma_buf_export 1
1949 typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers);
1950 typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
1951 #ifdef EGL_EGLEXT_PROTOTYPES
1952 EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers);
1953 EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
1954 #endif
1955 #endif /* EGL_MESA_image_dma_buf_export */
1956
1957 #ifndef EGL_MESA_platform_gbm
1958 #define EGL_MESA_platform_gbm 1
1959 #define EGL_PLATFORM_GBM_MESA 0x31D7
1960 #endif /* EGL_MESA_platform_gbm */
1961
1962 #ifndef EGL_MESA_platform_surfaceless
1963 #define EGL_MESA_platform_surfaceless 1
1964 #define EGL_PLATFORM_SURFACELESS_MESA 0x31DD
1965 #endif /* EGL_MESA_platform_surfaceless */
1966
1967 #ifndef EGL_MESA_query_driver
1968 #define EGL_MESA_query_driver 1
1969 typedef char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERCONFIGPROC) (EGLDisplay dpy);
1970 typedef const char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERNAMEPROC) (EGLDisplay dpy);
1971 #ifdef EGL_EGLEXT_PROTOTYPES
1972 EGLAPI char *EGLAPIENTRY eglGetDisplayDriverConfig (EGLDisplay dpy);
1973 EGLAPI const char *EGLAPIENTRY eglGetDisplayDriverName (EGLDisplay dpy);
1974 #endif
1975 #endif /* EGL_MESA_query_driver */
1976
1977 #ifndef EGL_NOK_swap_region
1978 #define EGL_NOK_swap_region 1
1979 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
1980 #ifdef EGL_EGLEXT_PROTOTYPES
1981 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
1982 #endif
1983 #endif /* EGL_NOK_swap_region */
1984
1985 #ifndef EGL_NOK_swap_region2
1986 #define EGL_NOK_swap_region2 1
1987 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
1988 #ifdef EGL_EGLEXT_PROTOTYPES
1989 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
1990 #endif
1991 #endif /* EGL_NOK_swap_region2 */
1992
1993 #ifndef EGL_NOK_texture_from_pixmap
1994 #define EGL_NOK_texture_from_pixmap 1
1995 #define EGL_Y_INVERTED_NOK 0x307F
1996 #endif /* EGL_NOK_texture_from_pixmap */
1997
1998 #ifndef EGL_NV_3dvision_surface
1999 #define EGL_NV_3dvision_surface 1
2000 #define EGL_AUTO_STEREO_NV 0x3136
2001 #endif /* EGL_NV_3dvision_surface */
2002
2003 #ifndef EGL_NV_context_priority_realtime
2004 #define EGL_NV_context_priority_realtime 1
2005 #define EGL_CONTEXT_PRIORITY_REALTIME_NV 0x3357
2006 #endif /* EGL_NV_context_priority_realtime */
2007
2008 #ifndef EGL_NV_coverage_sample
2009 #define EGL_NV_coverage_sample 1
2010 #define EGL_COVERAGE_BUFFERS_NV 0x30E0
2011 #define EGL_COVERAGE_SAMPLES_NV 0x30E1
2012 #endif /* EGL_NV_coverage_sample */
2013
2014 #ifndef EGL_NV_coverage_sample_resolve
2015 #define EGL_NV_coverage_sample_resolve 1
2016 #define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131
2017 #define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132
2018 #define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133
2019 #endif /* EGL_NV_coverage_sample_resolve */
2020
2021 #ifndef EGL_NV_cuda_event
2022 #define EGL_NV_cuda_event 1
2023 #define EGL_CUDA_EVENT_HANDLE_NV 0x323B
2024 #define EGL_SYNC_CUDA_EVENT_NV 0x323C
2025 #define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D
2026 #endif /* EGL_NV_cuda_event */
2027
2028 #ifndef EGL_NV_depth_nonlinear
2029 #define EGL_NV_depth_nonlinear 1
2030 #define EGL_DEPTH_ENCODING_NV 0x30E2
2031 #define EGL_DEPTH_ENCODING_NONE_NV 0
2032 #define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
2033 #endif /* EGL_NV_depth_nonlinear */
2034
2035 #ifndef EGL_NV_device_cuda
2036 #define EGL_NV_device_cuda 1
2037 #define EGL_CUDA_DEVICE_NV 0x323A
2038 #endif /* EGL_NV_device_cuda */
2039
2040 #ifndef EGL_NV_native_query
2041 #define EGL_NV_native_query 1
2042 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id);
2043 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window);
2044 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap);
2045 #ifdef EGL_EGLEXT_PROTOTYPES
2046 EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType *display_id);
2047 EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window);
2048 EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap);
2049 #endif
2050 #endif /* EGL_NV_native_query */
2051
2052 #ifndef EGL_NV_post_convert_rounding
2053 #define EGL_NV_post_convert_rounding 1
2054 #endif /* EGL_NV_post_convert_rounding */
2055
2056 #ifndef EGL_NV_post_sub_buffer
2057 #define EGL_NV_post_sub_buffer 1
2058 #define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE
2059 typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
2060 #ifdef EGL_EGLEXT_PROTOTYPES
2061 EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
2062 #endif
2063 #endif /* EGL_NV_post_sub_buffer */
2064
2065 #ifndef EGL_NV_quadruple_buffer
2066 #define EGL_NV_quadruple_buffer 1
2067 #define EGL_QUADRUPLE_BUFFER_NV 0x3231
2068 #endif /* EGL_NV_quadruple_buffer */
2069
2070 #ifndef EGL_NV_robustness_video_memory_purge
2071 #define EGL_NV_robustness_video_memory_purge 1
2072 #define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C
2073 #endif /* EGL_NV_robustness_video_memory_purge */
2074
2075 #ifndef EGL_NV_stream_consumer_eglimage
2076 #define EGL_NV_stream_consumer_eglimage 1
2077 #define EGL_STREAM_CONSUMER_IMAGE_NV 0x3373
2078 #define EGL_STREAM_IMAGE_ADD_NV 0x3374
2079 #define EGL_STREAM_IMAGE_REMOVE_NV 0x3375
2080 #define EGL_STREAM_IMAGE_AVAILABLE_NV 0x3376
2081 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, const EGLuint64KHR *modifiers, const EGLAttrib *attrib_list);
2082 typedef EGLint (EGLAPIENTRYP PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux);
2083 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMACQUIREIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync);
2084 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMRELEASEIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync);
2085 #ifdef EGL_EGLEXT_PROTOTYPES
2086 EGLAPI EGLBoolean EGLAPIENTRY eglStreamImageConsumerConnectNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, const EGLuint64KHR *modifiers, const EGLAttrib *attrib_list);
2087 EGLAPI EGLint EGLAPIENTRY eglQueryStreamConsumerEventNV (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux);
2088 EGLAPI EGLBoolean EGLAPIENTRY eglStreamAcquireImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync);
2089 EGLAPI EGLBoolean EGLAPIENTRY eglStreamReleaseImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync);
2090 #endif
2091 #endif /* EGL_NV_stream_consumer_eglimage */
2092
2093 #ifndef EGL_NV_stream_consumer_gltexture_yuv
2094 #define EGL_NV_stream_consumer_gltexture_yuv 1
2095 #define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C
2096 #define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D
2097 #define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E
2098 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
2099 #ifdef EGL_EGLEXT_PROTOTYPES
2100 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
2101 #endif
2102 #endif /* EGL_NV_stream_consumer_gltexture_yuv */
2103
2104 #ifndef EGL_NV_stream_cross_display
2105 #define EGL_NV_stream_cross_display 1
2106 #define EGL_STREAM_CROSS_DISPLAY_NV 0x334E
2107 #endif /* EGL_NV_stream_cross_display */
2108
2109 #ifndef EGL_NV_stream_cross_object
2110 #define EGL_NV_stream_cross_object 1
2111 #define EGL_STREAM_CROSS_OBJECT_NV 0x334D
2112 #endif /* EGL_NV_stream_cross_object */
2113
2114 #ifndef EGL_NV_stream_cross_partition
2115 #define EGL_NV_stream_cross_partition 1
2116 #define EGL_STREAM_CROSS_PARTITION_NV 0x323F
2117 #endif /* EGL_NV_stream_cross_partition */
2118
2119 #ifndef EGL_NV_stream_cross_process
2120 #define EGL_NV_stream_cross_process 1
2121 #define EGL_STREAM_CROSS_PROCESS_NV 0x3245
2122 #endif /* EGL_NV_stream_cross_process */
2123
2124 #ifndef EGL_NV_stream_cross_system
2125 #define EGL_NV_stream_cross_system 1
2126 #define EGL_STREAM_CROSS_SYSTEM_NV 0x334F
2127 #endif /* EGL_NV_stream_cross_system */
2128
2129 #ifndef EGL_NV_stream_dma
2130 #define EGL_NV_stream_dma 1
2131 #define EGL_STREAM_DMA_NV 0x3371
2132 #define EGL_STREAM_DMA_SERVER_NV 0x3372
2133 #endif /* EGL_NV_stream_dma */
2134
2135 #ifndef EGL_NV_stream_fifo_next
2136 #define EGL_NV_stream_fifo_next 1
2137 #define EGL_PENDING_FRAME_NV 0x3329
2138 #define EGL_STREAM_TIME_PENDING_NV 0x332A
2139 #endif /* EGL_NV_stream_fifo_next */
2140
2141 #ifndef EGL_NV_stream_fifo_synchronous
2142 #define EGL_NV_stream_fifo_synchronous 1
2143 #define EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336
2144 #endif /* EGL_NV_stream_fifo_synchronous */
2145
2146 #ifndef EGL_NV_stream_flush
2147 #define EGL_NV_stream_flush 1
2148 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMFLUSHNVPROC) (EGLDisplay dpy, EGLStreamKHR stream);
2149 #ifdef EGL_EGLEXT_PROTOTYPES
2150 EGLAPI EGLBoolean EGLAPIENTRY eglStreamFlushNV (EGLDisplay dpy, EGLStreamKHR stream);
2151 #endif
2152 #endif /* EGL_NV_stream_flush */
2153
2154 #ifndef EGL_NV_stream_frame_limits
2155 #define EGL_NV_stream_frame_limits 1
2156 #define EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337
2157 #define EGL_CONSUMER_MAX_FRAME_HINT_NV 0x3338
2158 #endif /* EGL_NV_stream_frame_limits */
2159
2160 #ifndef EGL_NV_stream_metadata
2161 #define EGL_NV_stream_metadata 1
2162 #define EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250
2163 #define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251
2164 #define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252
2165 #define EGL_PRODUCER_METADATA_NV 0x3253
2166 #define EGL_CONSUMER_METADATA_NV 0x3254
2167 #define EGL_PENDING_METADATA_NV 0x3328
2168 #define EGL_METADATA0_SIZE_NV 0x3255
2169 #define EGL_METADATA1_SIZE_NV 0x3256
2170 #define EGL_METADATA2_SIZE_NV 0x3257
2171 #define EGL_METADATA3_SIZE_NV 0x3258
2172 #define EGL_METADATA0_TYPE_NV 0x3259
2173 #define EGL_METADATA1_TYPE_NV 0x325A
2174 #define EGL_METADATA2_TYPE_NV 0x325B
2175 #define EGL_METADATA3_TYPE_NV 0x325C
2176 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBNVPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
2177 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data);
2178 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data);
2179 #ifdef EGL_EGLEXT_PROTOTYPES
2180 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribNV (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
2181 EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data);
2182 EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data);
2183 #endif
2184 #endif /* EGL_NV_stream_metadata */
2185
2186 #ifndef EGL_NV_stream_origin
2187 #define EGL_NV_stream_origin 1
2188 #define EGL_STREAM_FRAME_ORIGIN_X_NV 0x3366
2189 #define EGL_STREAM_FRAME_ORIGIN_Y_NV 0x3367
2190 #define EGL_STREAM_FRAME_MAJOR_AXIS_NV 0x3368
2191 #define EGL_CONSUMER_AUTO_ORIENTATION_NV 0x3369
2192 #define EGL_PRODUCER_AUTO_ORIENTATION_NV 0x336A
2193 #define EGL_LEFT_NV 0x336B
2194 #define EGL_RIGHT_NV 0x336C
2195 #define EGL_TOP_NV 0x336D
2196 #define EGL_BOTTOM_NV 0x336E
2197 #define EGL_X_AXIS_NV 0x336F
2198 #define EGL_Y_AXIS_NV 0x3370
2199 #endif /* EGL_NV_stream_origin */
2200
2201 #ifndef EGL_NV_stream_remote
2202 #define EGL_NV_stream_remote 1
2203 #define EGL_STREAM_STATE_INITIALIZING_NV 0x3240
2204 #define EGL_STREAM_TYPE_NV 0x3241
2205 #define EGL_STREAM_PROTOCOL_NV 0x3242
2206 #define EGL_STREAM_ENDPOINT_NV 0x3243
2207 #define EGL_STREAM_LOCAL_NV 0x3244
2208 #define EGL_STREAM_PRODUCER_NV 0x3247
2209 #define EGL_STREAM_CONSUMER_NV 0x3248
2210 #define EGL_STREAM_PROTOCOL_FD_NV 0x3246
2211 #endif /* EGL_NV_stream_remote */
2212
2213 #ifndef EGL_NV_stream_reset
2214 #define EGL_NV_stream_reset 1
2215 #define EGL_SUPPORT_RESET_NV 0x3334
2216 #define EGL_SUPPORT_REUSE_NV 0x3335
2217 typedef EGLBoolean (EGLAPIENTRYP PFNEGLRESETSTREAMNVPROC) (EGLDisplay dpy, EGLStreamKHR stream);
2218 #ifdef EGL_EGLEXT_PROTOTYPES
2219 EGLAPI EGLBoolean EGLAPIENTRY eglResetStreamNV (EGLDisplay dpy, EGLStreamKHR stream);
2220 #endif
2221 #endif /* EGL_NV_stream_reset */
2222
2223 #ifndef EGL_NV_stream_socket
2224 #define EGL_NV_stream_socket 1
2225 #define EGL_STREAM_PROTOCOL_SOCKET_NV 0x324B
2226 #define EGL_SOCKET_HANDLE_NV 0x324C
2227 #define EGL_SOCKET_TYPE_NV 0x324D
2228 #endif /* EGL_NV_stream_socket */
2229
2230 #ifndef EGL_NV_stream_socket_inet
2231 #define EGL_NV_stream_socket_inet 1
2232 #define EGL_SOCKET_TYPE_INET_NV 0x324F
2233 #endif /* EGL_NV_stream_socket_inet */
2234
2235 #ifndef EGL_NV_stream_socket_unix
2236 #define EGL_NV_stream_socket_unix 1
2237 #define EGL_SOCKET_TYPE_UNIX_NV 0x324E
2238 #endif /* EGL_NV_stream_socket_unix */
2239
2240 #ifndef EGL_NV_stream_sync
2241 #define EGL_NV_stream_sync 1
2242 #define EGL_SYNC_NEW_FRAME_NV 0x321F
2243 typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list);
2244 #ifdef EGL_EGLEXT_PROTOTYPES
2245 EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list);
2246 #endif
2247 #endif /* EGL_NV_stream_sync */
2248
2249 #ifndef EGL_NV_sync
2250 #define EGL_NV_sync 1
2251 typedef void *EGLSyncNV;
2252 typedef khronos_utime_nanoseconds_t EGLTimeNV;
2253 #ifdef KHRONOS_SUPPORT_INT64
2254 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6
2255 #define EGL_SYNC_STATUS_NV 0x30E7
2256 #define EGL_SIGNALED_NV 0x30E8
2257 #define EGL_UNSIGNALED_NV 0x30E9
2258 #define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001
2259 #define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFFull
2260 #define EGL_ALREADY_SIGNALED_NV 0x30EA
2261 #define EGL_TIMEOUT_EXPIRED_NV 0x30EB
2262 #define EGL_CONDITION_SATISFIED_NV 0x30EC
2263 #define EGL_SYNC_TYPE_NV 0x30ED
2264 #define EGL_SYNC_CONDITION_NV 0x30EE
2265 #define EGL_SYNC_FENCE_NV 0x30EF
2266 #define EGL_NO_SYNC_NV EGL_CAST(EGLSyncNV,0)
2267 typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
2268 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
2269 typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync);
2270 typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
2271 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
2272 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value);
2273 #ifdef EGL_EGLEXT_PROTOTYPES
2274 EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
2275 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync);
2276 EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync);
2277 EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
2278 EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode);
2279 EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value);
2280 #endif
2281 #endif /* KHRONOS_SUPPORT_INT64 */
2282 #endif /* EGL_NV_sync */
2283
2284 #ifndef EGL_NV_system_time
2285 #define EGL_NV_system_time 1
2286 typedef khronos_utime_nanoseconds_t EGLuint64NV;
2287 #ifdef KHRONOS_SUPPORT_INT64
2288 typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void);
2289 typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void);
2290 #ifdef EGL_EGLEXT_PROTOTYPES
2291 EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV (void);
2292 EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void);
2293 #endif
2294 #endif /* KHRONOS_SUPPORT_INT64 */
2295 #endif /* EGL_NV_system_time */
2296
2297 #ifndef EGL_NV_triple_buffer
2298 #define EGL_NV_triple_buffer 1
2299 #define EGL_TRIPLE_BUFFER_NV 0x3230
2300 #endif /* EGL_NV_triple_buffer */
2301
2302 #ifndef EGL_TIZEN_image_native_buffer
2303 #define EGL_TIZEN_image_native_buffer 1
2304 #define EGL_NATIVE_BUFFER_TIZEN 0x32A0
2305 #endif /* EGL_TIZEN_image_native_buffer */
2306
2307 #ifndef EGL_TIZEN_image_native_surface
2308 #define EGL_TIZEN_image_native_surface 1
2309 #define EGL_NATIVE_SURFACE_TIZEN 0x32A1
2310 #endif /* EGL_TIZEN_image_native_surface */
2311
2312 #ifndef EGL_WL_bind_wayland_display
2313 #define EGL_WL_bind_wayland_display 1
2314 #define PFNEGLBINDWAYLANDDISPLAYWL PFNEGLBINDWAYLANDDISPLAYWLPROC
2315 #define PFNEGLUNBINDWAYLANDDISPLAYWL PFNEGLUNBINDWAYLANDDISPLAYWLPROC
2316 #define PFNEGLQUERYWAYLANDBUFFERWL PFNEGLQUERYWAYLANDBUFFERWLPROC
2317 struct wl_display;
2318 struct wl_resource;
2319 #define EGL_WAYLAND_BUFFER_WL 0x31D5
2320 #define EGL_WAYLAND_PLANE_WL 0x31D6
2321 #define EGL_TEXTURE_Y_U_V_WL 0x31D7
2322 #define EGL_TEXTURE_Y_UV_WL 0x31D8
2323 #define EGL_TEXTURE_Y_XUXV_WL 0x31D9
2324 #define EGL_TEXTURE_EXTERNAL_WL 0x31DA
2325 #define EGL_WAYLAND_Y_INVERTED_WL 0x31DB
2326 typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display *display);
2327 typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display *display);
2328 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYWAYLANDBUFFERWLPROC) (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value);
2329 #ifdef EGL_EGLEXT_PROTOTYPES
2330 EGLAPI EGLBoolean EGLAPIENTRY eglBindWaylandDisplayWL (EGLDisplay dpy, struct wl_display *display);
2331 EGLAPI EGLBoolean EGLAPIENTRY eglUnbindWaylandDisplayWL (EGLDisplay dpy, struct wl_display *display);
2332 EGLAPI EGLBoolean EGLAPIENTRY eglQueryWaylandBufferWL (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value);
2333 #endif
2334 #endif /* EGL_WL_bind_wayland_display */
2335
2336 #ifndef EGL_WL_create_wayland_buffer_from_image
2337 #define EGL_WL_create_wayland_buffer_from_image 1
2338 #define PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC
2339 struct wl_buffer;
2340 typedef struct wl_buffer *(EGLAPIENTRYP PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC) (EGLDisplay dpy, EGLImageKHR image);
2341 #ifdef EGL_EGLEXT_PROTOTYPES
2342 EGLAPI struct wl_buffer *EGLAPIENTRY eglCreateWaylandBufferFromImageWL (EGLDisplay dpy, EGLImageKHR image);
2343 #endif
2344 #endif /* EGL_WL_create_wayland_buffer_from_image */
2345
2346 #ifdef __cplusplus
2347 }
2348 #endif
2349
2350 #endif /* __eglext_h_ */
2351
2352 #endif /* _MSC_VER */