sdl

FORK: Simple Directmedia Layer
git clone https://git.neptards.moe/neptards/sdl.git
Log | Files | Refs

SDL_egl.h (73665B)


      1 /*
      2   Simple DirectMedia Layer
      3   Copyright (C) 1997-2020 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__)
     28 
     29 #include <EGL/egl.h>
     30 #include <EGL/eglext.h>
     31 
     32 #else /* _MSC_VER */
     33 
     34 /* EGL headers for Visual Studio */
     35 
     36 #ifndef __khrplatform_h_
     37 #define __khrplatform_h_
     38 
     39 /*
     40 ** Copyright (c) 2008-2009 The Khronos Group Inc.
     41 **
     42 ** Permission is hereby granted, free of charge, to any person obtaining a
     43 ** copy of this software and/or associated documentation files (the
     44 ** "Materials"), to deal in the Materials without restriction, including
     45 ** without limitation the rights to use, copy, modify, merge, publish,
     46 ** distribute, sublicense, and/or sell copies of the Materials, and to
     47 ** permit persons to whom the Materials are furnished to do so, subject to
     48 ** the following conditions:
     49 **
     50 ** The above copyright notice and this permission notice shall be included
     51 ** in all copies or substantial portions of the Materials.
     52 **
     53 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     54 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     55 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
     56 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
     57 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
     58 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
     59 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
     60 */
     61 
     62 /* Khronos platform-specific types and definitions.
     63 *
     64 * $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $
     65 *
     66 * Adopters may modify this file to suit their platform. Adopters are
     67 * encouraged to submit platform specific modifications to the Khronos
     68 * group so that they can be included in future versions of this file.
     69 * Please submit changes by sending them to the public Khronos Bugzilla
     70 * (http://khronos.org/bugzilla) by filing a bug against product
     71 * "Khronos (general)" component "Registry".
     72 *
     73 * A predefined template which fills in some of the bug fields can be
     74 * reached using http://tinyurl.com/khrplatform-h-bugreport, but you
     75 * must create a Bugzilla login first.
     76 *
     77 *
     78 * See the Implementer's Guidelines for information about where this file
     79 * should be located on your system and for more details of its use:
     80 *    http://www.khronos.org/registry/implementers_guide.pdf
     81 *
     82 * This file should be included as
     83 *        #include <KHR/khrplatform.h>
     84 * by Khronos client API header files that use its types and defines.
     85 *
     86 * The types in khrplatform.h should only be used to define API-specific types.
     87 *
     88 * Types defined in khrplatform.h:
     89 *    khronos_int8_t              signed   8  bit
     90 *    khronos_uint8_t             unsigned 8  bit
     91 *    khronos_int16_t             signed   16 bit
     92 *    khronos_uint16_t            unsigned 16 bit
     93 *    khronos_int32_t             signed   32 bit
     94 *    khronos_uint32_t            unsigned 32 bit
     95 *    khronos_int64_t             signed   64 bit
     96 *    khronos_uint64_t            unsigned 64 bit
     97 *    khronos_intptr_t            signed   same number of bits as a pointer
     98 *    khronos_uintptr_t           unsigned same number of bits as a pointer
     99 *    khronos_ssize_t             signed   size
    100 *    khronos_usize_t             unsigned size
    101 *    khronos_float_t             signed   32 bit floating point
    102 *    khronos_time_ns_t           unsigned 64 bit time in nanoseconds
    103 *    khronos_utime_nanoseconds_t unsigned time interval or absolute time in
    104 *                                         nanoseconds
    105 *    khronos_stime_nanoseconds_t signed time interval in nanoseconds
    106 *    khronos_boolean_enum_t      enumerated boolean type. This should
    107 *      only be used as a base type when a client API's boolean type is
    108 *      an enum. Client APIs which use an integer or other type for
    109 *      booleans cannot use this as the base type for their boolean.
    110 *
    111 * Tokens defined in khrplatform.h:
    112 *
    113 *    KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
    114 *
    115 *    KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
    116 *    KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
    117 *
    118 * Calling convention macros defined in this file:
    119 *    KHRONOS_APICALL
    120 *    KHRONOS_APIENTRY
    121 *    KHRONOS_APIATTRIBUTES
    122 *
    123 * These may be used in function prototypes as:
    124 *
    125 *      KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
    126 *                                  int arg1,
    127 *                                  int arg2) KHRONOS_APIATTRIBUTES;
    128 */
    129 
    130 /*-------------------------------------------------------------------------
    131 * Definition of KHRONOS_APICALL
    132 *-------------------------------------------------------------------------
    133 * This precedes the return type of the function in the function prototype.
    134 */
    135 #if defined(_WIN32) && !defined(__SCITECH_SNAP__) && !defined(SDL_VIDEO_STATIC_ANGLE)
    136 #   define KHRONOS_APICALL __declspec(dllimport)
    137 #elif defined (__SYMBIAN32__)
    138 #   define KHRONOS_APICALL IMPORT_C
    139 #else
    140 #   define KHRONOS_APICALL
    141 #endif
    142 
    143 /*-------------------------------------------------------------------------
    144 * Definition of KHRONOS_APIENTRY
    145 *-------------------------------------------------------------------------
    146 * This follows the return type of the function  and precedes the function
    147 * name in the function prototype.
    148 */
    149 #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
    150 /* Win32 but not WinCE */
    151 #   define KHRONOS_APIENTRY __stdcall
    152 #else
    153 #   define KHRONOS_APIENTRY
    154 #endif
    155 
    156 /*-------------------------------------------------------------------------
    157 * Definition of KHRONOS_APIATTRIBUTES
    158 *-------------------------------------------------------------------------
    159 * This follows the closing parenthesis of the function prototype arguments.
    160 */
    161 #if defined (__ARMCC_2__)
    162 #define KHRONOS_APIATTRIBUTES __softfp
    163 #else
    164 #define KHRONOS_APIATTRIBUTES
    165 #endif
    166 
    167 /*-------------------------------------------------------------------------
    168 * basic type definitions
    169 *-----------------------------------------------------------------------*/
    170 #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
    171 
    172 
    173 /*
    174 * Using <stdint.h>
    175 */
    176 #include <stdint.h>
    177 typedef int32_t                 khronos_int32_t;
    178 typedef uint32_t                khronos_uint32_t;
    179 typedef int64_t                 khronos_int64_t;
    180 typedef uint64_t                khronos_uint64_t;
    181 #define KHRONOS_SUPPORT_INT64   1
    182 #define KHRONOS_SUPPORT_FLOAT   1
    183 
    184 #elif defined(__VMS ) || defined(__sgi)
    185 
    186 /*
    187 * Using <inttypes.h>
    188 */
    189 #include <inttypes.h>
    190 typedef int32_t                 khronos_int32_t;
    191 typedef uint32_t                khronos_uint32_t;
    192 typedef int64_t                 khronos_int64_t;
    193 typedef uint64_t                khronos_uint64_t;
    194 #define KHRONOS_SUPPORT_INT64   1
    195 #define KHRONOS_SUPPORT_FLOAT   1
    196 
    197 #elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
    198 
    199 /*
    200 * Win32
    201 */
    202 typedef __int32                 khronos_int32_t;
    203 typedef unsigned __int32        khronos_uint32_t;
    204 typedef __int64                 khronos_int64_t;
    205 typedef unsigned __int64        khronos_uint64_t;
    206 #define KHRONOS_SUPPORT_INT64   1
    207 #define KHRONOS_SUPPORT_FLOAT   1
    208 
    209 #elif defined(__sun__) || defined(__digital__)
    210 
    211 /*
    212 * Sun or Digital
    213 */
    214 typedef int                     khronos_int32_t;
    215 typedef unsigned int            khronos_uint32_t;
    216 #if defined(__arch64__) || defined(_LP64)
    217 typedef long int                khronos_int64_t;
    218 typedef unsigned long int       khronos_uint64_t;
    219 #else
    220 typedef long long int           khronos_int64_t;
    221 typedef unsigned long long int  khronos_uint64_t;
    222 #endif /* __arch64__ */
    223 #define KHRONOS_SUPPORT_INT64   1
    224 #define KHRONOS_SUPPORT_FLOAT   1
    225 
    226 #elif 0
    227 
    228 /*
    229 * Hypothetical platform with no float or int64 support
    230 */
    231 typedef int                     khronos_int32_t;
    232 typedef unsigned int            khronos_uint32_t;
    233 #define KHRONOS_SUPPORT_INT64   0
    234 #define KHRONOS_SUPPORT_FLOAT   0
    235 
    236 #else
    237 
    238 /*
    239 * Generic fallback
    240 */
    241 #include <stdint.h>
    242 typedef int32_t                 khronos_int32_t;
    243 typedef uint32_t                khronos_uint32_t;
    244 typedef int64_t                 khronos_int64_t;
    245 typedef uint64_t                khronos_uint64_t;
    246 #define KHRONOS_SUPPORT_INT64   1
    247 #define KHRONOS_SUPPORT_FLOAT   1
    248 
    249 #endif
    250 
    251 
    252 /*
    253 * Types that are (so far) the same on all platforms
    254 */
    255 typedef signed   char          khronos_int8_t;
    256 typedef unsigned char          khronos_uint8_t;
    257 typedef signed   short int     khronos_int16_t;
    258 typedef unsigned short int     khronos_uint16_t;
    259 
    260 /*
    261 * Types that differ between LLP64 and LP64 architectures - in LLP64,
    262 * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
    263 * to be the only LLP64 architecture in current use.
    264 */
    265 #ifdef _WIN64
    266 typedef signed   long long int khronos_intptr_t;
    267 typedef unsigned long long int khronos_uintptr_t;
    268 typedef signed   long long int khronos_ssize_t;
    269 typedef unsigned long long int khronos_usize_t;
    270 #else
    271 typedef signed   long  int     khronos_intptr_t;
    272 typedef unsigned long  int     khronos_uintptr_t;
    273 typedef signed   long  int     khronos_ssize_t;
    274 typedef unsigned long  int     khronos_usize_t;
    275 #endif
    276 
    277 #if KHRONOS_SUPPORT_FLOAT
    278 /*
    279 * Float type
    280 */
    281 typedef          float         khronos_float_t;
    282 #endif
    283 
    284 #if KHRONOS_SUPPORT_INT64
    285 /* Time types
    286 *
    287 * These types can be used to represent a time interval in nanoseconds or
    288 * an absolute Unadjusted System Time.  Unadjusted System Time is the number
    289 * of nanoseconds since some arbitrary system event (e.g. since the last
    290 * time the system booted).  The Unadjusted System Time is an unsigned
    291 * 64 bit value that wraps back to 0 every 584 years.  Time intervals
    292 * may be either signed or unsigned.
    293 */
    294 typedef khronos_uint64_t       khronos_utime_nanoseconds_t;
    295 typedef khronos_int64_t        khronos_stime_nanoseconds_t;
    296 #endif
    297 
    298 /*
    299 * Dummy value used to pad enum types to 32 bits.
    300 */
    301 #ifndef KHRONOS_MAX_ENUM
    302 #define KHRONOS_MAX_ENUM 0x7FFFFFFF
    303 #endif
    304 
    305 /*
    306 * Enumerated boolean type
    307 *
    308 * Values other than zero should be considered to be true.  Therefore
    309 * comparisons should not be made against KHRONOS_TRUE.
    310 */
    311 typedef enum {
    312     KHRONOS_FALSE = 0,
    313     KHRONOS_TRUE = 1,
    314     KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
    315 } khronos_boolean_enum_t;
    316 
    317 #endif /* __khrplatform_h_ */
    318 
    319 
    320 #ifndef __eglplatform_h_
    321 #define __eglplatform_h_
    322 
    323 /*
    324 ** Copyright (c) 2007-2009 The Khronos Group Inc.
    325 **
    326 ** Permission is hereby granted, free of charge, to any person obtaining a
    327 ** copy of this software and/or associated documentation files (the
    328 ** "Materials"), to deal in the Materials without restriction, including
    329 ** without limitation the rights to use, copy, modify, merge, publish,
    330 ** distribute, sublicense, and/or sell copies of the Materials, and to
    331 ** permit persons to whom the Materials are furnished to do so, subject to
    332 ** the following conditions:
    333 **
    334 ** The above copyright notice and this permission notice shall be included
    335 ** in all copies or substantial portions of the Materials.
    336 **
    337 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    338 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    339 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    340 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    341 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    342 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    343 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
    344 */
    345 
    346 /* Platform-specific types and definitions for egl.h
    347 * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $
    348 *
    349 * Adopters may modify khrplatform.h and this file to suit their platform.
    350 * You are encouraged to submit all modifications to the Khronos group so that
    351 * they can be included in future versions of this file.  Please submit changes
    352 * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
    353 * by filing a bug against product "EGL" component "Registry".
    354 */
    355 
    356 /*#include <KHR/khrplatform.h>*/
    357 
    358 /* Macros used in EGL function prototype declarations.
    359 *
    360 * EGL functions should be prototyped as:
    361 *
    362 * EGLAPI return-type EGLAPIENTRY eglFunction(arguments);
    363 * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments);
    364 *
    365 * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h
    366 */
    367 
    368 #ifndef EGLAPI
    369 #define EGLAPI KHRONOS_APICALL
    370 #endif
    371 
    372 #ifndef EGLAPIENTRY
    373 #define EGLAPIENTRY  KHRONOS_APIENTRY
    374 #endif
    375 #define EGLAPIENTRYP EGLAPIENTRY*
    376 
    377 /* The types NativeDisplayType, NativeWindowType, and NativePixmapType
    378 * are aliases of window-system-dependent types, such as X Display * or
    379 * Windows Device Context. They must be defined in platform-specific
    380 * code below. The EGL-prefixed versions of Native*Type are the same
    381 * types, renamed in EGL 1.3 so all types in the API start with "EGL".
    382 *
    383 * Khronos STRONGLY RECOMMENDS that you use the default definitions
    384 * provided below, since these changes affect both binary and source
    385 * portability of applications using EGL running on different EGL
    386 * implementations.
    387 */
    388 
    389 #if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
    390 #ifndef WIN32_LEAN_AND_MEAN
    391 #define WIN32_LEAN_AND_MEAN 1
    392 #endif
    393 #ifndef NOMINMAX   /* don't define min() and max(). */
    394 #define NOMINMAX
    395 #endif
    396 #include <windows.h>
    397 
    398 #if __WINRT__
    399 #include <Unknwn.h>
    400 typedef IUnknown * EGLNativeWindowType;
    401 typedef IUnknown * EGLNativePixmapType;
    402 typedef IUnknown * EGLNativeDisplayType;
    403 #else
    404 typedef HDC     EGLNativeDisplayType;
    405 typedef HBITMAP EGLNativePixmapType;
    406 typedef HWND    EGLNativeWindowType;
    407 #endif
    408 
    409 #elif defined(__WINSCW__) || defined(__SYMBIAN32__)  /* Symbian */
    410 
    411 typedef int   EGLNativeDisplayType;
    412 typedef void *EGLNativeWindowType;
    413 typedef void *EGLNativePixmapType;
    414 
    415 #elif defined(WL_EGL_PLATFORM)
    416 
    417 typedef struct wl_display     *EGLNativeDisplayType;
    418 typedef struct wl_egl_pixmap  *EGLNativePixmapType;
    419 typedef struct wl_egl_window  *EGLNativeWindowType;
    420 
    421 #elif defined(__GBM__)
    422 
    423 typedef struct gbm_device  *EGLNativeDisplayType;
    424 typedef struct gbm_bo      *EGLNativePixmapType;
    425 typedef void               *EGLNativeWindowType;
    426 
    427 #elif defined(__ANDROID__) /* Android */
    428 
    429 struct ANativeWindow;
    430 struct egl_native_pixmap_t;
    431 
    432 typedef struct ANativeWindow        *EGLNativeWindowType;
    433 typedef struct egl_native_pixmap_t  *EGLNativePixmapType;
    434 typedef void                        *EGLNativeDisplayType;
    435 
    436 #elif defined(MIR_EGL_PLATFORM)
    437 
    438 #include <mir_toolkit/mir_client_library.h>
    439 typedef MirEGLNativeDisplayType EGLNativeDisplayType;
    440 typedef void                   *EGLNativePixmapType;
    441 typedef MirEGLNativeWindowType  EGLNativeWindowType;
    442 
    443 #elif defined(__unix__)
    444 
    445 #ifdef MESA_EGL_NO_X11_HEADERS
    446 
    447 typedef void            *EGLNativeDisplayType;
    448 typedef khronos_uintptr_t EGLNativePixmapType;
    449 typedef khronos_uintptr_t EGLNativeWindowType;
    450 
    451 #else
    452 
    453 /* X11 (tentative)  */
    454 #include <X11/Xlib.h>
    455 #include <X11/Xutil.h>
    456 
    457 typedef Display *EGLNativeDisplayType;
    458 typedef Pixmap   EGLNativePixmapType;
    459 typedef Window   EGLNativeWindowType;
    460 
    461 #endif /* MESA_EGL_NO_X11_HEADERS */
    462 
    463 #else
    464 #error "Platform not recognized"
    465 #endif
    466 
    467 /* EGL 1.2 types, renamed for consistency in EGL 1.3 */
    468 typedef EGLNativeDisplayType NativeDisplayType;
    469 typedef EGLNativePixmapType  NativePixmapType;
    470 typedef EGLNativeWindowType  NativeWindowType;
    471 
    472 
    473 /* Define EGLint. This must be a signed integral type large enough to contain
    474 * all legal attribute names and values passed into and out of EGL, whether
    475 * their type is boolean, bitmask, enumerant (symbolic constant), integer,
    476 * handle, or other.  While in general a 32-bit integer will suffice, if
    477 * handles are 64 bit types, then EGLint should be defined as a signed 64-bit
    478 * integer type.
    479 */
    480 typedef khronos_int32_t EGLint;
    481 
    482 #endif /* __eglplatform_h */
    483 
    484 #ifndef __egl_h_
    485 #define __egl_h_ 1
    486 
    487 #ifdef __cplusplus
    488 extern "C" {
    489 #endif
    490 
    491 /*
    492 ** Copyright (c) 2013-2015 The Khronos Group Inc.
    493 **
    494 ** Permission is hereby granted, free of charge, to any person obtaining a
    495 ** copy of this software and/or associated documentation files (the
    496 ** "Materials"), to deal in the Materials without restriction, including
    497 ** without limitation the rights to use, copy, modify, merge, publish,
    498 ** distribute, sublicense, and/or sell copies of the Materials, and to
    499 ** permit persons to whom the Materials are furnished to do so, subject to
    500 ** the following conditions:
    501 **
    502 ** The above copyright notice and this permission notice shall be included
    503 ** in all copies or substantial portions of the Materials.
    504 **
    505 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    506 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    507 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    508 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    509 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    510 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    511 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
    512 */
    513 /*
    514 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
    515 ** API Registry. The current version of the Registry, generator scripts
    516 ** used to make the header, and the header can be found at
    517 **   http://www.opengl.org/registry/
    518 **
    519 ** Khronos $Revision: 31566 $ on $Date: 2015-06-23 08:48:48 -0700 (Tue, 23 Jun 2015) $
    520 */
    521 
    522 /*#include <EGL/eglplatform.h>*/
    523 
    524 /* Generated on date 20150623 */
    525 
    526 /* Generated C header for:
    527  * API: egl
    528  * Versions considered: .*
    529  * Versions emitted: .*
    530  * Default extensions included: None
    531  * Additional extensions included: _nomatch_^
    532  * Extensions removed: _nomatch_^
    533  */
    534 
    535 #ifndef EGL_VERSION_1_0
    536 #define EGL_VERSION_1_0 1
    537 typedef unsigned int EGLBoolean;
    538 typedef void *EGLDisplay;
    539 typedef void *EGLConfig;
    540 typedef void *EGLSurface;
    541 typedef void *EGLContext;
    542 typedef void (*__eglMustCastToProperFunctionPointerType)(void);
    543 #define EGL_ALPHA_SIZE                    0x3021
    544 #define EGL_BAD_ACCESS                    0x3002
    545 #define EGL_BAD_ALLOC                     0x3003
    546 #define EGL_BAD_ATTRIBUTE                 0x3004
    547 #define EGL_BAD_CONFIG                    0x3005
    548 #define EGL_BAD_CONTEXT                   0x3006
    549 #define EGL_BAD_CURRENT_SURFACE           0x3007
    550 #define EGL_BAD_DISPLAY                   0x3008
    551 #define EGL_BAD_MATCH                     0x3009
    552 #define EGL_BAD_NATIVE_PIXMAP             0x300A
    553 #define EGL_BAD_NATIVE_WINDOW             0x300B
    554 #define EGL_BAD_PARAMETER                 0x300C
    555 #define EGL_BAD_SURFACE                   0x300D
    556 #define EGL_BLUE_SIZE                     0x3022
    557 #define EGL_BUFFER_SIZE                   0x3020
    558 #define EGL_CONFIG_CAVEAT                 0x3027
    559 #define EGL_CONFIG_ID                     0x3028
    560 #define EGL_CORE_NATIVE_ENGINE            0x305B
    561 #define EGL_DEPTH_SIZE                    0x3025
    562 #define EGL_DONT_CARE                     ((EGLint)-1)
    563 #define EGL_DRAW                          0x3059
    564 #define EGL_EXTENSIONS                    0x3055
    565 #define EGL_FALSE                         0
    566 #define EGL_GREEN_SIZE                    0x3023
    567 #define EGL_HEIGHT                        0x3056
    568 #define EGL_LARGEST_PBUFFER               0x3058
    569 #define EGL_LEVEL                         0x3029
    570 #define EGL_MAX_PBUFFER_HEIGHT            0x302A
    571 #define EGL_MAX_PBUFFER_PIXELS            0x302B
    572 #define EGL_MAX_PBUFFER_WIDTH             0x302C
    573 #define EGL_NATIVE_RENDERABLE             0x302D
    574 #define EGL_NATIVE_VISUAL_ID              0x302E
    575 #define EGL_NATIVE_VISUAL_TYPE            0x302F
    576 #define EGL_NONE                          0x3038
    577 #define EGL_NON_CONFORMANT_CONFIG         0x3051
    578 #define EGL_NOT_INITIALIZED               0x3001
    579 #define EGL_NO_CONTEXT                    ((EGLContext)0)
    580 #define EGL_NO_DISPLAY                    ((EGLDisplay)0)
    581 #define EGL_NO_SURFACE                    ((EGLSurface)0)
    582 #define EGL_PBUFFER_BIT                   0x0001
    583 #define EGL_PIXMAP_BIT                    0x0002
    584 #define EGL_READ                          0x305A
    585 #define EGL_RED_SIZE                      0x3024
    586 #define EGL_SAMPLES                       0x3031
    587 #define EGL_SAMPLE_BUFFERS                0x3032
    588 #define EGL_SLOW_CONFIG                   0x3050
    589 #define EGL_STENCIL_SIZE                  0x3026
    590 #define EGL_SUCCESS                       0x3000
    591 #define EGL_SURFACE_TYPE                  0x3033
    592 #define EGL_TRANSPARENT_BLUE_VALUE        0x3035
    593 #define EGL_TRANSPARENT_GREEN_VALUE       0x3036
    594 #define EGL_TRANSPARENT_RED_VALUE         0x3037
    595 #define EGL_TRANSPARENT_RGB               0x3052
    596 #define EGL_TRANSPARENT_TYPE              0x3034
    597 #define EGL_TRUE                          1
    598 #define EGL_VENDOR                        0x3053
    599 #define EGL_VERSION                       0x3054
    600 #define EGL_WIDTH                         0x3057
    601 #define EGL_WINDOW_BIT                    0x0004
    602 EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
    603 EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
    604 EGLAPI EGLContext EGLAPIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list);
    605 EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
    606 EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list);
    607 EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list);
    608 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx);
    609 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface);
    610 EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
    611 EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
    612 EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay (void);
    613 EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface (EGLint readdraw);
    614 EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay (EGLNativeDisplayType display_id);
    615 EGLAPI EGLint EGLAPIENTRY eglGetError (void);
    616 EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname);
    617 EGLAPI EGLBoolean EGLAPIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor);
    618 EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
    619 EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
    620 EGLAPI const char *EGLAPIENTRY eglQueryString (EGLDisplay dpy, EGLint name);
    621 EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
    622 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface surface);
    623 EGLAPI EGLBoolean EGLAPIENTRY eglTerminate (EGLDisplay dpy);
    624 EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL (void);
    625 EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative (EGLint engine);
    626 #endif /* EGL_VERSION_1_0 */
    627 
    628 #ifndef EGL_VERSION_1_1
    629 #define EGL_VERSION_1_1 1
    630 #define EGL_BACK_BUFFER                   0x3084
    631 #define EGL_BIND_TO_TEXTURE_RGB           0x3039
    632 #define EGL_BIND_TO_TEXTURE_RGBA          0x303A
    633 #define EGL_CONTEXT_LOST                  0x300E
    634 #define EGL_MIN_SWAP_INTERVAL             0x303B
    635 #define EGL_MAX_SWAP_INTERVAL             0x303C
    636 #define EGL_MIPMAP_TEXTURE                0x3082
    637 #define EGL_MIPMAP_LEVEL                  0x3083
    638 #define EGL_NO_TEXTURE                    0x305C
    639 #define EGL_TEXTURE_2D                    0x305F
    640 #define EGL_TEXTURE_FORMAT                0x3080
    641 #define EGL_TEXTURE_RGB                   0x305D
    642 #define EGL_TEXTURE_RGBA                  0x305E
    643 #define EGL_TEXTURE_TARGET                0x3081
    644 EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
    645 EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
    646 EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
    647 EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval (EGLDisplay dpy, EGLint interval);
    648 #endif /* EGL_VERSION_1_1 */
    649 
    650 #ifndef EGL_VERSION_1_2
    651 #define EGL_VERSION_1_2 1
    652 typedef unsigned int EGLenum;
    653 typedef void *EGLClientBuffer;
    654 #define EGL_ALPHA_FORMAT                  0x3088
    655 #define EGL_ALPHA_FORMAT_NONPRE           0x308B
    656 #define EGL_ALPHA_FORMAT_PRE              0x308C
    657 #define EGL_ALPHA_MASK_SIZE               0x303E
    658 #define EGL_BUFFER_PRESERVED              0x3094
    659 #define EGL_BUFFER_DESTROYED              0x3095
    660 #define EGL_CLIENT_APIS                   0x308D
    661 #define EGL_COLORSPACE                    0x3087
    662 #define EGL_COLORSPACE_sRGB               0x3089
    663 #define EGL_COLORSPACE_LINEAR             0x308A
    664 #define EGL_COLOR_BUFFER_TYPE             0x303F
    665 #define EGL_CONTEXT_CLIENT_TYPE           0x3097
    666 #define EGL_DISPLAY_SCALING               10000
    667 #define EGL_HORIZONTAL_RESOLUTION         0x3090
    668 #define EGL_LUMINANCE_BUFFER              0x308F
    669 #define EGL_LUMINANCE_SIZE                0x303D
    670 #define EGL_OPENGL_ES_BIT                 0x0001
    671 #define EGL_OPENVG_BIT                    0x0002
    672 #define EGL_OPENGL_ES_API                 0x30A0
    673 #define EGL_OPENVG_API                    0x30A1
    674 #define EGL_OPENVG_IMAGE                  0x3096
    675 #define EGL_PIXEL_ASPECT_RATIO            0x3092
    676 #define EGL_RENDERABLE_TYPE               0x3040
    677 #define EGL_RENDER_BUFFER                 0x3086
    678 #define EGL_RGB_BUFFER                    0x308E
    679 #define EGL_SINGLE_BUFFER                 0x3085
    680 #define EGL_SWAP_BEHAVIOR                 0x3093
    681 #define EGL_UNKNOWN                       ((EGLint)-1)
    682 #define EGL_VERTICAL_RESOLUTION           0x3091
    683 EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI (EGLenum api);
    684 EGLAPI EGLenum EGLAPIENTRY eglQueryAPI (void);
    685 EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list);
    686 EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread (void);
    687 EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient (void);
    688 #endif /* EGL_VERSION_1_2 */
    689 
    690 #ifndef EGL_VERSION_1_3
    691 #define EGL_VERSION_1_3 1
    692 #define EGL_CONFORMANT                    0x3042
    693 #define EGL_CONTEXT_CLIENT_VERSION        0x3098
    694 #define EGL_MATCH_NATIVE_PIXMAP           0x3041
    695 #define EGL_OPENGL_ES2_BIT                0x0004
    696 #define EGL_VG_ALPHA_FORMAT               0x3088
    697 #define EGL_VG_ALPHA_FORMAT_NONPRE        0x308B
    698 #define EGL_VG_ALPHA_FORMAT_PRE           0x308C
    699 #define EGL_VG_ALPHA_FORMAT_PRE_BIT       0x0040
    700 #define EGL_VG_COLORSPACE                 0x3087
    701 #define EGL_VG_COLORSPACE_sRGB            0x3089
    702 #define EGL_VG_COLORSPACE_LINEAR          0x308A
    703 #define EGL_VG_COLORSPACE_LINEAR_BIT      0x0020
    704 #endif /* EGL_VERSION_1_3 */
    705 
    706 #ifndef EGL_VERSION_1_4
    707 #define EGL_VERSION_1_4 1
    708 #define EGL_DEFAULT_DISPLAY               ((EGLNativeDisplayType)0)
    709 #define EGL_MULTISAMPLE_RESOLVE_BOX_BIT   0x0200
    710 #define EGL_MULTISAMPLE_RESOLVE           0x3099
    711 #define EGL_MULTISAMPLE_RESOLVE_DEFAULT   0x309A
    712 #define EGL_MULTISAMPLE_RESOLVE_BOX       0x309B
    713 #define EGL_OPENGL_API                    0x30A2
    714 #define EGL_OPENGL_BIT                    0x0008
    715 #define EGL_SWAP_BEHAVIOR_PRESERVED_BIT   0x0400
    716 EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext (void);
    717 #endif /* EGL_VERSION_1_4 */
    718 
    719 #ifndef EGL_VERSION_1_5
    720 #define EGL_VERSION_1_5 1
    721 typedef void *EGLSync;
    722 typedef intptr_t EGLAttrib;
    723 typedef khronos_utime_nanoseconds_t EGLTime;
    724 typedef void *EGLImage;
    725 #define EGL_CONTEXT_MAJOR_VERSION         0x3098
    726 #define EGL_CONTEXT_MINOR_VERSION         0x30FB
    727 #define EGL_CONTEXT_OPENGL_PROFILE_MASK   0x30FD
    728 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
    729 #define EGL_NO_RESET_NOTIFICATION         0x31BE
    730 #define EGL_LOSE_CONTEXT_ON_RESET         0x31BF
    731 #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001
    732 #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002
    733 #define EGL_CONTEXT_OPENGL_DEBUG          0x31B0
    734 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1
    735 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS  0x31B2
    736 #define EGL_OPENGL_ES3_BIT                0x00000040
    737 #define EGL_CL_EVENT_HANDLE               0x309C
    738 #define EGL_SYNC_CL_EVENT                 0x30FE
    739 #define EGL_SYNC_CL_EVENT_COMPLETE        0x30FF
    740 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE  0x30F0
    741 #define EGL_SYNC_TYPE                     0x30F7
    742 #define EGL_SYNC_STATUS                   0x30F1
    743 #define EGL_SYNC_CONDITION                0x30F8
    744 #define EGL_SIGNALED                      0x30F2
    745 #define EGL_UNSIGNALED                    0x30F3
    746 #define EGL_SYNC_FLUSH_COMMANDS_BIT       0x0001
    747 #define EGL_FOREVER                       0xFFFFFFFFFFFFFFFFull
    748 #define EGL_TIMEOUT_EXPIRED               0x30F5
    749 #define EGL_CONDITION_SATISFIED           0x30F6
    750 #define EGL_NO_SYNC                       ((EGLSync)0)
    751 #define EGL_SYNC_FENCE                    0x30F9
    752 #define EGL_GL_COLORSPACE                 0x309D
    753 #define EGL_GL_COLORSPACE_SRGB            0x3089
    754 #define EGL_GL_COLORSPACE_LINEAR          0x308A
    755 #define EGL_GL_RENDERBUFFER               0x30B9
    756 #define EGL_GL_TEXTURE_2D                 0x30B1
    757 #define EGL_GL_TEXTURE_LEVEL              0x30BC
    758 #define EGL_GL_TEXTURE_3D                 0x30B2
    759 #define EGL_GL_TEXTURE_ZOFFSET            0x30BD
    760 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3
    761 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4
    762 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5
    763 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6
    764 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7
    765 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8
    766 #define EGL_IMAGE_PRESERVED               0x30D2
    767 #define EGL_NO_IMAGE                      ((EGLImage)0)
    768 EGLAPI EGLSync EGLAPIENTRY eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list);
    769 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync (EGLDisplay dpy, EGLSync sync);
    770 EGLAPI EGLint EGLAPIENTRY eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
    771 EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value);
    772 EGLAPI EGLImage EGLAPIENTRY eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list);
    773 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage (EGLDisplay dpy, EGLImage image);
    774 EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay (EGLenum platform, void *native_display, const EGLAttrib *attrib_list);
    775 EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list);
    776 EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list);
    777 EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags);
    778 #endif /* EGL_VERSION_1_5 */
    779 
    780 #ifdef __cplusplus
    781 }
    782 #endif
    783 
    784 #endif /* __egl_h_ */
    785 
    786 
    787 
    788 #ifndef __eglext_h_
    789 #define __eglext_h_ 1
    790 
    791 #ifdef __cplusplus
    792 extern "C" {
    793 #endif
    794 
    795 /*
    796 ** Copyright (c) 2013-2015 The Khronos Group Inc.
    797 **
    798 ** Permission is hereby granted, free of charge, to any person obtaining a
    799 ** copy of this software and/or associated documentation files (the
    800 ** "Materials"), to deal in the Materials without restriction, including
    801 ** without limitation the rights to use, copy, modify, merge, publish,
    802 ** distribute, sublicense, and/or sell copies of the Materials, and to
    803 ** permit persons to whom the Materials are furnished to do so, subject to
    804 ** the following conditions:
    805 **
    806 ** The above copyright notice and this permission notice shall be included
    807 ** in all copies or substantial portions of the Materials.
    808 **
    809 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    810 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    811 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    812 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    813 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    814 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    815 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
    816 */
    817 /*
    818 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
    819 ** API Registry. The current version of the Registry, generator scripts
    820 ** used to make the header, and the header can be found at
    821 **   http://www.opengl.org/registry/
    822 **
    823 ** Khronos $Revision: 31566 $ on $Date: 2015-06-23 08:48:48 -0700 (Tue, 23 Jun 2015) $
    824 */
    825 
    826 /*#include <EGL/eglplatform.h>*/
    827 
    828 #define EGL_EGLEXT_VERSION 20150623
    829 
    830 /* Generated C header for:
    831  * API: egl
    832  * Versions considered: .*
    833  * Versions emitted: _nomatch_^
    834  * Default extensions included: egl
    835  * Additional extensions included: _nomatch_^
    836  * Extensions removed: _nomatch_^
    837  */
    838 
    839 #ifndef EGL_KHR_cl_event
    840 #define EGL_KHR_cl_event 1
    841 #define EGL_CL_EVENT_HANDLE_KHR           0x309C
    842 #define EGL_SYNC_CL_EVENT_KHR             0x30FE
    843 #define EGL_SYNC_CL_EVENT_COMPLETE_KHR    0x30FF
    844 #endif /* EGL_KHR_cl_event */
    845 
    846 #ifndef EGL_KHR_cl_event2
    847 #define EGL_KHR_cl_event2 1
    848 typedef void *EGLSyncKHR;
    849 typedef intptr_t EGLAttribKHR;
    850 typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list);
    851 #ifdef EGL_EGLEXT_PROTOTYPES
    852 EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list);
    853 #endif
    854 #endif /* EGL_KHR_cl_event2 */
    855 
    856 #ifndef EGL_KHR_client_get_all_proc_addresses
    857 #define EGL_KHR_client_get_all_proc_addresses 1
    858 #endif /* EGL_KHR_client_get_all_proc_addresses */
    859 
    860 #ifndef EGL_KHR_config_attribs
    861 #define EGL_KHR_config_attribs 1
    862 #define EGL_CONFORMANT_KHR                0x3042
    863 #define EGL_VG_COLORSPACE_LINEAR_BIT_KHR  0x0020
    864 #define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR   0x0040
    865 #endif /* EGL_KHR_config_attribs */
    866 
    867 #ifndef EGL_KHR_create_context
    868 #define EGL_KHR_create_context 1
    869 #define EGL_CONTEXT_MAJOR_VERSION_KHR     0x3098
    870 #define EGL_CONTEXT_MINOR_VERSION_KHR     0x30FB
    871 #define EGL_CONTEXT_FLAGS_KHR             0x30FC
    872 #define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD
    873 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD
    874 #define EGL_NO_RESET_NOTIFICATION_KHR     0x31BE
    875 #define EGL_LOSE_CONTEXT_ON_RESET_KHR     0x31BF
    876 #define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR  0x00000001
    877 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002
    878 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004
    879 #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001
    880 #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002
    881 #define EGL_OPENGL_ES3_BIT_KHR            0x00000040
    882 #endif /* EGL_KHR_create_context */
    883 
    884 #ifndef EGL_KHR_create_context_no_error
    885 #define EGL_KHR_create_context_no_error 1
    886 #define EGL_CONTEXT_OPENGL_NO_ERROR_KHR   0x31B3
    887 #endif /* EGL_KHR_create_context_no_error */
    888 
    889 #ifndef EGL_KHR_fence_sync
    890 #define EGL_KHR_fence_sync 1
    891 typedef khronos_utime_nanoseconds_t EGLTimeKHR;
    892 #ifdef KHRONOS_SUPPORT_INT64
    893 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
    894 #define EGL_SYNC_CONDITION_KHR            0x30F8
    895 #define EGL_SYNC_FENCE_KHR                0x30F9
    896 typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
    897 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
    898 typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
    899 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
    900 #ifdef EGL_EGLEXT_PROTOTYPES
    901 EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
    902 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync);
    903 EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
    904 EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
    905 #endif
    906 #endif /* KHRONOS_SUPPORT_INT64 */
    907 #endif /* EGL_KHR_fence_sync */
    908 
    909 #ifndef EGL_KHR_get_all_proc_addresses
    910 #define EGL_KHR_get_all_proc_addresses 1
    911 #endif /* EGL_KHR_get_all_proc_addresses */
    912 
    913 #ifndef EGL_KHR_gl_colorspace
    914 #define EGL_KHR_gl_colorspace 1
    915 #define EGL_GL_COLORSPACE_KHR             0x309D
    916 #define EGL_GL_COLORSPACE_SRGB_KHR        0x3089
    917 #define EGL_GL_COLORSPACE_LINEAR_KHR      0x308A
    918 #endif /* EGL_KHR_gl_colorspace */
    919 
    920 #ifndef EGL_KHR_gl_renderbuffer_image
    921 #define EGL_KHR_gl_renderbuffer_image 1
    922 #define EGL_GL_RENDERBUFFER_KHR           0x30B9
    923 #endif /* EGL_KHR_gl_renderbuffer_image */
    924 
    925 #ifndef EGL_KHR_gl_texture_2D_image
    926 #define EGL_KHR_gl_texture_2D_image 1
    927 #define EGL_GL_TEXTURE_2D_KHR             0x30B1
    928 #define EGL_GL_TEXTURE_LEVEL_KHR          0x30BC
    929 #endif /* EGL_KHR_gl_texture_2D_image */
    930 
    931 #ifndef EGL_KHR_gl_texture_3D_image
    932 #define EGL_KHR_gl_texture_3D_image 1
    933 #define EGL_GL_TEXTURE_3D_KHR             0x30B2
    934 #define EGL_GL_TEXTURE_ZOFFSET_KHR        0x30BD
    935 #endif /* EGL_KHR_gl_texture_3D_image */
    936 
    937 #ifndef EGL_KHR_gl_texture_cubemap_image
    938 #define EGL_KHR_gl_texture_cubemap_image 1
    939 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3
    940 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4
    941 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5
    942 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6
    943 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7
    944 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8
    945 #endif /* EGL_KHR_gl_texture_cubemap_image */
    946 
    947 #ifndef EGL_KHR_image
    948 #define EGL_KHR_image 1
    949 typedef void *EGLImageKHR;
    950 #define EGL_NATIVE_PIXMAP_KHR             0x30B0
    951 #define EGL_NO_IMAGE_KHR                  ((EGLImageKHR)0)
    952 typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
    953 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
    954 #ifdef EGL_EGLEXT_PROTOTYPES
    955 EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
    956 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
    957 #endif
    958 #endif /* EGL_KHR_image */
    959 
    960 #ifndef EGL_KHR_image_base
    961 #define EGL_KHR_image_base 1
    962 #define EGL_IMAGE_PRESERVED_KHR           0x30D2
    963 #endif /* EGL_KHR_image_base */
    964 
    965 #ifndef EGL_KHR_image_pixmap
    966 #define EGL_KHR_image_pixmap 1
    967 #endif /* EGL_KHR_image_pixmap */
    968 
    969 #ifndef EGL_KHR_lock_surface
    970 #define EGL_KHR_lock_surface 1
    971 #define EGL_READ_SURFACE_BIT_KHR          0x0001
    972 #define EGL_WRITE_SURFACE_BIT_KHR         0x0002
    973 #define EGL_LOCK_SURFACE_BIT_KHR          0x0080
    974 #define EGL_OPTIMAL_FORMAT_BIT_KHR        0x0100
    975 #define EGL_MATCH_FORMAT_KHR              0x3043
    976 #define EGL_FORMAT_RGB_565_EXACT_KHR      0x30C0
    977 #define EGL_FORMAT_RGB_565_KHR            0x30C1
    978 #define EGL_FORMAT_RGBA_8888_EXACT_KHR    0x30C2
    979 #define EGL_FORMAT_RGBA_8888_KHR          0x30C3
    980 #define EGL_MAP_PRESERVE_PIXELS_KHR       0x30C4
    981 #define EGL_LOCK_USAGE_HINT_KHR           0x30C5
    982 #define EGL_BITMAP_POINTER_KHR            0x30C6
    983 #define EGL_BITMAP_PITCH_KHR              0x30C7
    984 #define EGL_BITMAP_ORIGIN_KHR             0x30C8
    985 #define EGL_BITMAP_PIXEL_RED_OFFSET_KHR   0x30C9
    986 #define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
    987 #define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR  0x30CB
    988 #define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
    989 #define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
    990 #define EGL_LOWER_LEFT_KHR                0x30CE
    991 #define EGL_UPPER_LEFT_KHR                0x30CF
    992 typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list);
    993 typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface);
    994 #ifdef EGL_EGLEXT_PROTOTYPES
    995 EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list);
    996 EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface);
    997 #endif
    998 #endif /* EGL_KHR_lock_surface */
    999 
   1000 #ifndef EGL_KHR_lock_surface2
   1001 #define EGL_KHR_lock_surface2 1
   1002 #define EGL_BITMAP_PIXEL_SIZE_KHR         0x3110
   1003 #endif /* EGL_KHR_lock_surface2 */
   1004 
   1005 #ifndef EGL_KHR_lock_surface3
   1006 #define EGL_KHR_lock_surface3 1
   1007 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value);
   1008 #ifdef EGL_EGLEXT_PROTOTYPES
   1009 EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value);
   1010 #endif
   1011 #endif /* EGL_KHR_lock_surface3 */
   1012 
   1013 #ifndef EGL_KHR_partial_update
   1014 #define EGL_KHR_partial_update 1
   1015 #define EGL_BUFFER_AGE_KHR                0x313D
   1016 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
   1017 #ifdef EGL_EGLEXT_PROTOTYPES
   1018 EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
   1019 #endif
   1020 #endif /* EGL_KHR_partial_update */
   1021 
   1022 #ifndef EGL_KHR_platform_android
   1023 #define EGL_KHR_platform_android 1
   1024 #define EGL_PLATFORM_ANDROID_KHR          0x3141
   1025 #endif /* EGL_KHR_platform_android */
   1026 
   1027 #ifndef EGL_KHR_platform_gbm
   1028 #define EGL_KHR_platform_gbm 1
   1029 #define EGL_PLATFORM_GBM_KHR              0x31D7
   1030 #endif /* EGL_KHR_platform_gbm */
   1031 
   1032 #ifndef EGL_KHR_platform_wayland
   1033 #define EGL_KHR_platform_wayland 1
   1034 #define EGL_PLATFORM_WAYLAND_KHR          0x31D8
   1035 #endif /* EGL_KHR_platform_wayland */
   1036 
   1037 #ifndef EGL_KHR_platform_x11
   1038 #define EGL_KHR_platform_x11 1
   1039 #define EGL_PLATFORM_X11_KHR              0x31D5
   1040 #define EGL_PLATFORM_X11_SCREEN_KHR       0x31D6
   1041 #endif /* EGL_KHR_platform_x11 */
   1042 
   1043 #ifndef EGL_KHR_reusable_sync
   1044 #define EGL_KHR_reusable_sync 1
   1045 #ifdef KHRONOS_SUPPORT_INT64
   1046 #define EGL_SYNC_STATUS_KHR               0x30F1
   1047 #define EGL_SIGNALED_KHR                  0x30F2
   1048 #define EGL_UNSIGNALED_KHR                0x30F3
   1049 #define EGL_TIMEOUT_EXPIRED_KHR           0x30F5
   1050 #define EGL_CONDITION_SATISFIED_KHR       0x30F6
   1051 #define EGL_SYNC_TYPE_KHR                 0x30F7
   1052 #define EGL_SYNC_REUSABLE_KHR             0x30FA
   1053 #define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR   0x0001
   1054 #define EGL_FOREVER_KHR                   0xFFFFFFFFFFFFFFFFull
   1055 #define EGL_NO_SYNC_KHR                   ((EGLSyncKHR)0)
   1056 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
   1057 #ifdef EGL_EGLEXT_PROTOTYPES
   1058 EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
   1059 #endif
   1060 #endif /* KHRONOS_SUPPORT_INT64 */
   1061 #endif /* EGL_KHR_reusable_sync */
   1062 
   1063 #ifndef EGL_KHR_stream
   1064 #define EGL_KHR_stream 1
   1065 typedef void *EGLStreamKHR;
   1066 typedef khronos_uint64_t EGLuint64KHR;
   1067 #ifdef KHRONOS_SUPPORT_INT64
   1068 #define EGL_NO_STREAM_KHR                 ((EGLStreamKHR)0)
   1069 #define EGL_CONSUMER_LATENCY_USEC_KHR     0x3210
   1070 #define EGL_PRODUCER_FRAME_KHR            0x3212
   1071 #define EGL_CONSUMER_FRAME_KHR            0x3213
   1072 #define EGL_STREAM_STATE_KHR              0x3214
   1073 #define EGL_STREAM_STATE_CREATED_KHR      0x3215
   1074 #define EGL_STREAM_STATE_CONNECTING_KHR   0x3216
   1075 #define EGL_STREAM_STATE_EMPTY_KHR        0x3217
   1076 #define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218
   1077 #define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219
   1078 #define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A
   1079 #define EGL_BAD_STREAM_KHR                0x321B
   1080 #define EGL_BAD_STATE_KHR                 0x321C
   1081 typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint *attrib_list);
   1082 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
   1083 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
   1084 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value);
   1085 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value);
   1086 #ifdef EGL_EGLEXT_PROTOTYPES
   1087 EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR (EGLDisplay dpy, const EGLint *attrib_list);
   1088 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream);
   1089 EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
   1090 EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value);
   1091 EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value);
   1092 #endif
   1093 #endif /* KHRONOS_SUPPORT_INT64 */
   1094 #endif /* EGL_KHR_stream */
   1095 
   1096 #ifndef EGL_KHR_stream_consumer_gltexture
   1097 #define EGL_KHR_stream_consumer_gltexture 1
   1098 #ifdef EGL_KHR_stream
   1099 #define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E
   1100 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
   1101 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
   1102 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
   1103 #ifdef EGL_EGLEXT_PROTOTYPES
   1104 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream);
   1105 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream);
   1106 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream);
   1107 #endif
   1108 #endif /* EGL_KHR_stream */
   1109 #endif /* EGL_KHR_stream_consumer_gltexture */
   1110 
   1111 #ifndef EGL_KHR_stream_cross_process_fd
   1112 #define EGL_KHR_stream_cross_process_fd 1
   1113 typedef int EGLNativeFileDescriptorKHR;
   1114 #ifdef EGL_KHR_stream
   1115 #define EGL_NO_FILE_DESCRIPTOR_KHR        ((EGLNativeFileDescriptorKHR)(-1))
   1116 typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
   1117 typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
   1118 #ifdef EGL_EGLEXT_PROTOTYPES
   1119 EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream);
   1120 EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
   1121 #endif
   1122 #endif /* EGL_KHR_stream */
   1123 #endif /* EGL_KHR_stream_cross_process_fd */
   1124 
   1125 #ifndef EGL_KHR_stream_fifo
   1126 #define EGL_KHR_stream_fifo 1
   1127 #ifdef EGL_KHR_stream
   1128 #define EGL_STREAM_FIFO_LENGTH_KHR        0x31FC
   1129 #define EGL_STREAM_TIME_NOW_KHR           0x31FD
   1130 #define EGL_STREAM_TIME_CONSUMER_KHR      0x31FE
   1131 #define EGL_STREAM_TIME_PRODUCER_KHR      0x31FF
   1132 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value);
   1133 #ifdef EGL_EGLEXT_PROTOTYPES
   1134 EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value);
   1135 #endif
   1136 #endif /* EGL_KHR_stream */
   1137 #endif /* EGL_KHR_stream_fifo */
   1138 
   1139 #ifndef EGL_KHR_stream_producer_aldatalocator
   1140 #define EGL_KHR_stream_producer_aldatalocator 1
   1141 #ifdef EGL_KHR_stream
   1142 #endif /* EGL_KHR_stream */
   1143 #endif /* EGL_KHR_stream_producer_aldatalocator */
   1144 
   1145 #ifndef EGL_KHR_stream_producer_eglsurface
   1146 #define EGL_KHR_stream_producer_eglsurface 1
   1147 #ifdef EGL_KHR_stream
   1148 #define EGL_STREAM_BIT_KHR                0x0800
   1149 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
   1150 #ifdef EGL_EGLEXT_PROTOTYPES
   1151 EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
   1152 #endif
   1153 #endif /* EGL_KHR_stream */
   1154 #endif /* EGL_KHR_stream_producer_eglsurface */
   1155 
   1156 #ifndef EGL_KHR_surfaceless_context
   1157 #define EGL_KHR_surfaceless_context 1
   1158 #endif /* EGL_KHR_surfaceless_context */
   1159 
   1160 #ifndef EGL_KHR_swap_buffers_with_damage
   1161 #define EGL_KHR_swap_buffers_with_damage 1
   1162 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
   1163 #ifdef EGL_EGLEXT_PROTOTYPES
   1164 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
   1165 #endif
   1166 #endif /* EGL_KHR_swap_buffers_with_damage */
   1167 
   1168 #ifndef EGL_KHR_vg_parent_image
   1169 #define EGL_KHR_vg_parent_image 1
   1170 #define EGL_VG_PARENT_IMAGE_KHR           0x30BA
   1171 #endif /* EGL_KHR_vg_parent_image */
   1172 
   1173 #ifndef EGL_KHR_wait_sync
   1174 #define EGL_KHR_wait_sync 1
   1175 typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
   1176 #ifdef EGL_EGLEXT_PROTOTYPES
   1177 EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
   1178 #endif
   1179 #endif /* EGL_KHR_wait_sync */
   1180 
   1181 #ifndef EGL_ANDROID_blob_cache
   1182 #define EGL_ANDROID_blob_cache 1
   1183 typedef khronos_ssize_t EGLsizeiANDROID;
   1184 typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
   1185 typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
   1186 typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
   1187 #ifdef EGL_EGLEXT_PROTOTYPES
   1188 EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
   1189 #endif
   1190 #endif /* EGL_ANDROID_blob_cache */
   1191 
   1192 #ifndef EGL_ANDROID_framebuffer_target
   1193 #define EGL_ANDROID_framebuffer_target 1
   1194 #define EGL_FRAMEBUFFER_TARGET_ANDROID    0x3147
   1195 #endif /* EGL_ANDROID_framebuffer_target */
   1196 
   1197 #ifndef EGL_ANDROID_image_native_buffer
   1198 #define EGL_ANDROID_image_native_buffer 1
   1199 #define EGL_NATIVE_BUFFER_ANDROID         0x3140
   1200 #endif /* EGL_ANDROID_image_native_buffer */
   1201 
   1202 #ifndef EGL_ANDROID_native_fence_sync
   1203 #define EGL_ANDROID_native_fence_sync 1
   1204 #define EGL_SYNC_NATIVE_FENCE_ANDROID     0x3144
   1205 #define EGL_SYNC_NATIVE_FENCE_FD_ANDROID  0x3145
   1206 #define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146
   1207 #define EGL_NO_NATIVE_FENCE_FD_ANDROID    -1
   1208 typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync);
   1209 #ifdef EGL_EGLEXT_PROTOTYPES
   1210 EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync);
   1211 #endif
   1212 #endif /* EGL_ANDROID_native_fence_sync */
   1213 
   1214 #ifndef EGL_ANDROID_recordable
   1215 #define EGL_ANDROID_recordable 1
   1216 #define EGL_RECORDABLE_ANDROID            0x3142
   1217 #endif /* EGL_ANDROID_recordable */
   1218 
   1219 #ifndef EGL_ANGLE_d3d_share_handle_client_buffer
   1220 #define EGL_ANGLE_d3d_share_handle_client_buffer 1
   1221 #define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
   1222 #endif /* EGL_ANGLE_d3d_share_handle_client_buffer */
   1223 
   1224 #ifndef EGL_ANGLE_device_d3d
   1225 #define EGL_ANGLE_device_d3d 1
   1226 #define EGL_D3D9_DEVICE_ANGLE             0x33A0
   1227 #define EGL_D3D11_DEVICE_ANGLE            0x33A1
   1228 #endif /* EGL_ANGLE_device_d3d */
   1229 
   1230 #ifndef EGL_ANGLE_query_surface_pointer
   1231 #define EGL_ANGLE_query_surface_pointer 1
   1232 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
   1233 #ifdef EGL_EGLEXT_PROTOTYPES
   1234 EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
   1235 #endif
   1236 #endif /* EGL_ANGLE_query_surface_pointer */
   1237 
   1238 #ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle
   1239 #define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
   1240 #endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */
   1241 
   1242 #ifndef EGL_ANGLE_window_fixed_size
   1243 #define EGL_ANGLE_window_fixed_size 1
   1244 #define EGL_FIXED_SIZE_ANGLE              0x3201
   1245 #endif /* EGL_ANGLE_window_fixed_size */
   1246 
   1247 #ifndef EGL_ARM_pixmap_multisample_discard
   1248 #define EGL_ARM_pixmap_multisample_discard 1
   1249 #define EGL_DISCARD_SAMPLES_ARM           0x3286
   1250 #endif /* EGL_ARM_pixmap_multisample_discard */
   1251 
   1252 #ifndef EGL_EXT_buffer_age
   1253 #define EGL_EXT_buffer_age 1
   1254 #define EGL_BUFFER_AGE_EXT                0x313D
   1255 #endif /* EGL_EXT_buffer_age */
   1256 
   1257 #ifndef EGL_EXT_client_extensions
   1258 #define EGL_EXT_client_extensions 1
   1259 #endif /* EGL_EXT_client_extensions */
   1260 
   1261 #ifndef EGL_EXT_create_context_robustness
   1262 #define EGL_EXT_create_context_robustness 1
   1263 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF
   1264 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138
   1265 #define EGL_NO_RESET_NOTIFICATION_EXT     0x31BE
   1266 #define EGL_LOSE_CONTEXT_ON_RESET_EXT     0x31BF
   1267 #endif /* EGL_EXT_create_context_robustness */
   1268 
   1269 #ifndef EGL_EXT_device_base
   1270 #define EGL_EXT_device_base 1
   1271 typedef void *EGLDeviceEXT;
   1272 #define EGL_NO_DEVICE_EXT                 ((EGLDeviceEXT)(0))
   1273 #define EGL_BAD_DEVICE_EXT                0x322B
   1274 #define EGL_DEVICE_EXT                    0x322C
   1275 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value);
   1276 typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name);
   1277 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices);
   1278 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
   1279 #ifdef EGL_EGLEXT_PROTOTYPES
   1280 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value);
   1281 EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name);
   1282 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices);
   1283 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
   1284 #endif
   1285 #endif /* EGL_EXT_device_base */
   1286 
   1287 #ifndef EGL_EXT_device_drm
   1288 #define EGL_EXT_device_drm 1
   1289 #define EGL_DRM_DEVICE_FILE_EXT           0x3233
   1290 #endif /* EGL_EXT_device_drm */
   1291 
   1292 #ifndef EGL_EXT_device_enumeration
   1293 #define EGL_EXT_device_enumeration 1
   1294 #endif /* EGL_EXT_device_enumeration */
   1295 
   1296 #ifndef EGL_EXT_device_openwf
   1297 #define EGL_EXT_device_openwf 1
   1298 #define EGL_OPENWF_DEVICE_ID_EXT          0x3237
   1299 #endif /* EGL_EXT_device_openwf */
   1300 
   1301 #ifndef EGL_EXT_device_query
   1302 #define EGL_EXT_device_query 1
   1303 #endif /* EGL_EXT_device_query */
   1304 
   1305 #ifndef EGL_EXT_image_dma_buf_import
   1306 #define EGL_EXT_image_dma_buf_import 1
   1307 #define EGL_LINUX_DMA_BUF_EXT             0x3270
   1308 #define EGL_LINUX_DRM_FOURCC_EXT          0x3271
   1309 #define EGL_DMA_BUF_PLANE0_FD_EXT         0x3272
   1310 #define EGL_DMA_BUF_PLANE0_OFFSET_EXT     0x3273
   1311 #define EGL_DMA_BUF_PLANE0_PITCH_EXT      0x3274
   1312 #define EGL_DMA_BUF_PLANE1_FD_EXT         0x3275
   1313 #define EGL_DMA_BUF_PLANE1_OFFSET_EXT     0x3276
   1314 #define EGL_DMA_BUF_PLANE1_PITCH_EXT      0x3277
   1315 #define EGL_DMA_BUF_PLANE2_FD_EXT         0x3278
   1316 #define EGL_DMA_BUF_PLANE2_OFFSET_EXT     0x3279
   1317 #define EGL_DMA_BUF_PLANE2_PITCH_EXT      0x327A
   1318 #define EGL_YUV_COLOR_SPACE_HINT_EXT      0x327B
   1319 #define EGL_SAMPLE_RANGE_HINT_EXT         0x327C
   1320 #define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
   1321 #define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
   1322 #define EGL_ITU_REC601_EXT                0x327F
   1323 #define EGL_ITU_REC709_EXT                0x3280
   1324 #define EGL_ITU_REC2020_EXT               0x3281
   1325 #define EGL_YUV_FULL_RANGE_EXT            0x3282
   1326 #define EGL_YUV_NARROW_RANGE_EXT          0x3283
   1327 #define EGL_YUV_CHROMA_SITING_0_EXT       0x3284
   1328 #define EGL_YUV_CHROMA_SITING_0_5_EXT     0x3285
   1329 #endif /* EGL_EXT_image_dma_buf_import */
   1330 
   1331 #ifndef EGL_EXT_multiview_window
   1332 #define EGL_EXT_multiview_window 1
   1333 #define EGL_MULTIVIEW_VIEW_COUNT_EXT      0x3134
   1334 #endif /* EGL_EXT_multiview_window */
   1335 
   1336 #ifndef EGL_EXT_output_base
   1337 #define EGL_EXT_output_base 1
   1338 typedef void *EGLOutputLayerEXT;
   1339 typedef void *EGLOutputPortEXT;
   1340 #define EGL_NO_OUTPUT_LAYER_EXT           ((EGLOutputLayerEXT)0)
   1341 #define EGL_NO_OUTPUT_PORT_EXT            ((EGLOutputPortEXT)0)
   1342 #define EGL_BAD_OUTPUT_LAYER_EXT          0x322D
   1343 #define EGL_BAD_OUTPUT_PORT_EXT           0x322E
   1344 #define EGL_SWAP_INTERVAL_EXT             0x322F
   1345 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers);
   1346 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports);
   1347 typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
   1348 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value);
   1349 typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
   1350 typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
   1351 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value);
   1352 typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
   1353 #ifdef EGL_EGLEXT_PROTOTYPES
   1354 EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers);
   1355 EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports);
   1356 EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
   1357 EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value);
   1358 EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
   1359 EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
   1360 EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value);
   1361 EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
   1362 #endif
   1363 #endif /* EGL_EXT_output_base */
   1364 
   1365 #ifndef EGL_EXT_output_drm
   1366 #define EGL_EXT_output_drm 1
   1367 #define EGL_DRM_CRTC_EXT                  0x3234
   1368 #define EGL_DRM_PLANE_EXT                 0x3235
   1369 #define EGL_DRM_CONNECTOR_EXT             0x3236
   1370 #endif /* EGL_EXT_output_drm */
   1371 
   1372 #ifndef EGL_EXT_output_openwf
   1373 #define EGL_EXT_output_openwf 1
   1374 #define EGL_OPENWF_PIPELINE_ID_EXT        0x3238
   1375 #define EGL_OPENWF_PORT_ID_EXT            0x3239
   1376 #endif /* EGL_EXT_output_openwf */
   1377 
   1378 #ifndef EGL_EXT_platform_base
   1379 #define EGL_EXT_platform_base 1
   1380 typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list);
   1381 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list);
   1382 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list);
   1383 #ifdef EGL_EGLEXT_PROTOTYPES
   1384 EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT (EGLenum platform, void *native_display, const EGLint *attrib_list);
   1385 EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list);
   1386 EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list);
   1387 #endif
   1388 #endif /* EGL_EXT_platform_base */
   1389 
   1390 #ifndef EGL_EXT_platform_device
   1391 #define EGL_EXT_platform_device 1
   1392 #define EGL_PLATFORM_DEVICE_EXT           0x313F
   1393 #endif /* EGL_EXT_platform_device */
   1394 
   1395 #ifndef EGL_EXT_platform_wayland
   1396 #define EGL_EXT_platform_wayland 1
   1397 #define EGL_PLATFORM_WAYLAND_EXT          0x31D8
   1398 #endif /* EGL_EXT_platform_wayland */
   1399 
   1400 #ifndef EGL_EXT_platform_x11
   1401 #define EGL_EXT_platform_x11 1
   1402 #define EGL_PLATFORM_X11_EXT              0x31D5
   1403 #define EGL_PLATFORM_X11_SCREEN_EXT       0x31D6
   1404 #endif /* EGL_EXT_platform_x11 */
   1405 
   1406 #ifndef EGL_EXT_protected_surface
   1407 #define EGL_EXT_protected_surface 1
   1408 #define EGL_PROTECTED_CONTENT_EXT         0x32C0
   1409 #endif /* EGL_EXT_protected_surface */
   1410 
   1411 #ifndef EGL_EXT_stream_consumer_egloutput
   1412 #define EGL_EXT_stream_consumer_egloutput 1
   1413 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
   1414 #ifdef EGL_EGLEXT_PROTOTYPES
   1415 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
   1416 #endif
   1417 #endif /* EGL_EXT_stream_consumer_egloutput */
   1418 
   1419 #ifndef EGL_EXT_swap_buffers_with_damage
   1420 #define EGL_EXT_swap_buffers_with_damage 1
   1421 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
   1422 #ifdef EGL_EGLEXT_PROTOTYPES
   1423 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
   1424 #endif
   1425 #endif /* EGL_EXT_swap_buffers_with_damage */
   1426 
   1427 #ifndef EGL_EXT_yuv_surface
   1428 #define EGL_EXT_yuv_surface 1
   1429 #define EGL_YUV_ORDER_EXT                 0x3301
   1430 #define EGL_YUV_NUMBER_OF_PLANES_EXT      0x3311
   1431 #define EGL_YUV_SUBSAMPLE_EXT             0x3312
   1432 #define EGL_YUV_DEPTH_RANGE_EXT           0x3317
   1433 #define EGL_YUV_CSC_STANDARD_EXT          0x330A
   1434 #define EGL_YUV_PLANE_BPP_EXT             0x331A
   1435 #define EGL_YUV_BUFFER_EXT                0x3300
   1436 #define EGL_YUV_ORDER_YUV_EXT             0x3302
   1437 #define EGL_YUV_ORDER_YVU_EXT             0x3303
   1438 #define EGL_YUV_ORDER_YUYV_EXT            0x3304
   1439 #define EGL_YUV_ORDER_UYVY_EXT            0x3305
   1440 #define EGL_YUV_ORDER_YVYU_EXT            0x3306
   1441 #define EGL_YUV_ORDER_VYUY_EXT            0x3307
   1442 #define EGL_YUV_ORDER_AYUV_EXT            0x3308
   1443 #define EGL_YUV_SUBSAMPLE_4_2_0_EXT       0x3313
   1444 #define EGL_YUV_SUBSAMPLE_4_2_2_EXT       0x3314
   1445 #define EGL_YUV_SUBSAMPLE_4_4_4_EXT       0x3315
   1446 #define EGL_YUV_DEPTH_RANGE_LIMITED_EXT   0x3318
   1447 #define EGL_YUV_DEPTH_RANGE_FULL_EXT      0x3319
   1448 #define EGL_YUV_CSC_STANDARD_601_EXT      0x330B
   1449 #define EGL_YUV_CSC_STANDARD_709_EXT      0x330C
   1450 #define EGL_YUV_CSC_STANDARD_2020_EXT     0x330D
   1451 #define EGL_YUV_PLANE_BPP_0_EXT           0x331B
   1452 #define EGL_YUV_PLANE_BPP_8_EXT           0x331C
   1453 #define EGL_YUV_PLANE_BPP_10_EXT          0x331D
   1454 #endif /* EGL_EXT_yuv_surface */
   1455 
   1456 #ifndef EGL_HI_clientpixmap
   1457 #define EGL_HI_clientpixmap 1
   1458 struct EGLClientPixmapHI {
   1459     void  *pData;
   1460     EGLint iWidth;
   1461     EGLint iHeight;
   1462     EGLint iStride;
   1463 };
   1464 #define EGL_CLIENT_PIXMAP_POINTER_HI      0x8F74
   1465 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap);
   1466 #ifdef EGL_EGLEXT_PROTOTYPES
   1467 EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap);
   1468 #endif
   1469 #endif /* EGL_HI_clientpixmap */
   1470 
   1471 #ifndef EGL_HI_colorformats
   1472 #define EGL_HI_colorformats 1
   1473 #define EGL_COLOR_FORMAT_HI               0x8F70
   1474 #define EGL_COLOR_RGB_HI                  0x8F71
   1475 #define EGL_COLOR_RGBA_HI                 0x8F72
   1476 #define EGL_COLOR_ARGB_HI                 0x8F73
   1477 #endif /* EGL_HI_colorformats */
   1478 
   1479 #ifndef EGL_IMG_context_priority
   1480 #define EGL_IMG_context_priority 1
   1481 #define EGL_CONTEXT_PRIORITY_LEVEL_IMG    0x3100
   1482 #define EGL_CONTEXT_PRIORITY_HIGH_IMG     0x3101
   1483 #define EGL_CONTEXT_PRIORITY_MEDIUM_IMG   0x3102
   1484 #define EGL_CONTEXT_PRIORITY_LOW_IMG      0x3103
   1485 #endif /* EGL_IMG_context_priority */
   1486 
   1487 #ifndef EGL_MESA_drm_image
   1488 #define EGL_MESA_drm_image 1
   1489 #define EGL_DRM_BUFFER_FORMAT_MESA        0x31D0
   1490 #define EGL_DRM_BUFFER_USE_MESA           0x31D1
   1491 #define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2
   1492 #define EGL_DRM_BUFFER_MESA               0x31D3
   1493 #define EGL_DRM_BUFFER_STRIDE_MESA        0x31D4
   1494 #define EGL_DRM_BUFFER_USE_SCANOUT_MESA   0x00000001
   1495 #define EGL_DRM_BUFFER_USE_SHARE_MESA     0x00000002
   1496 typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list);
   1497 typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
   1498 #ifdef EGL_EGLEXT_PROTOTYPES
   1499 EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list);
   1500 EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
   1501 #endif
   1502 #endif /* EGL_MESA_drm_image */
   1503 
   1504 #ifndef EGL_MESA_image_dma_buf_export
   1505 #define EGL_MESA_image_dma_buf_export 1
   1506 typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers);
   1507 typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
   1508 #ifdef EGL_EGLEXT_PROTOTYPES
   1509 EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers);
   1510 EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
   1511 #endif
   1512 #endif /* EGL_MESA_image_dma_buf_export */
   1513 
   1514 #ifndef EGL_MESA_platform_gbm
   1515 #define EGL_MESA_platform_gbm 1
   1516 #define EGL_PLATFORM_GBM_MESA             0x31D7
   1517 #endif /* EGL_MESA_platform_gbm */
   1518 
   1519 #ifndef EGL_NOK_swap_region
   1520 #define EGL_NOK_swap_region 1
   1521 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
   1522 #ifdef EGL_EGLEXT_PROTOTYPES
   1523 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
   1524 #endif
   1525 #endif /* EGL_NOK_swap_region */
   1526 
   1527 #ifndef EGL_NOK_swap_region2
   1528 #define EGL_NOK_swap_region2 1
   1529 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
   1530 #ifdef EGL_EGLEXT_PROTOTYPES
   1531 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
   1532 #endif
   1533 #endif /* EGL_NOK_swap_region2 */
   1534 
   1535 #ifndef EGL_NOK_texture_from_pixmap
   1536 #define EGL_NOK_texture_from_pixmap 1
   1537 #define EGL_Y_INVERTED_NOK                0x307F
   1538 #endif /* EGL_NOK_texture_from_pixmap */
   1539 
   1540 #ifndef EGL_NV_3dvision_surface
   1541 #define EGL_NV_3dvision_surface 1
   1542 #define EGL_AUTO_STEREO_NV                0x3136
   1543 #endif /* EGL_NV_3dvision_surface */
   1544 
   1545 #ifndef EGL_NV_coverage_sample
   1546 #define EGL_NV_coverage_sample 1
   1547 #define EGL_COVERAGE_BUFFERS_NV           0x30E0
   1548 #define EGL_COVERAGE_SAMPLES_NV           0x30E1
   1549 #endif /* EGL_NV_coverage_sample */
   1550 
   1551 #ifndef EGL_NV_coverage_sample_resolve
   1552 #define EGL_NV_coverage_sample_resolve 1
   1553 #define EGL_COVERAGE_SAMPLE_RESOLVE_NV    0x3131
   1554 #define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132
   1555 #define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133
   1556 #endif /* EGL_NV_coverage_sample_resolve */
   1557 
   1558 #ifndef EGL_NV_cuda_event
   1559 #define EGL_NV_cuda_event 1
   1560 #define EGL_CUDA_EVENT_HANDLE_NV          0x323B
   1561 #define EGL_SYNC_CUDA_EVENT_NV            0x323C
   1562 #define EGL_SYNC_CUDA_EVENT_COMPLETE_NV   0x323D
   1563 #endif /* EGL_NV_cuda_event */
   1564 
   1565 #ifndef EGL_NV_depth_nonlinear
   1566 #define EGL_NV_depth_nonlinear 1
   1567 #define EGL_DEPTH_ENCODING_NV             0x30E2
   1568 #define EGL_DEPTH_ENCODING_NONE_NV        0
   1569 #define EGL_DEPTH_ENCODING_NONLINEAR_NV   0x30E3
   1570 #endif /* EGL_NV_depth_nonlinear */
   1571 
   1572 #ifndef EGL_NV_device_cuda
   1573 #define EGL_NV_device_cuda 1
   1574 #define EGL_CUDA_DEVICE_NV                0x323A
   1575 #endif /* EGL_NV_device_cuda */
   1576 
   1577 #ifndef EGL_NV_native_query
   1578 #define EGL_NV_native_query 1
   1579 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id);
   1580 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window);
   1581 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap);
   1582 #ifdef EGL_EGLEXT_PROTOTYPES
   1583 EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType *display_id);
   1584 EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window);
   1585 EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap);
   1586 #endif
   1587 #endif /* EGL_NV_native_query */
   1588 
   1589 #ifndef EGL_NV_post_convert_rounding
   1590 #define EGL_NV_post_convert_rounding 1
   1591 #endif /* EGL_NV_post_convert_rounding */
   1592 
   1593 #ifndef EGL_NV_post_sub_buffer
   1594 #define EGL_NV_post_sub_buffer 1
   1595 #define EGL_POST_SUB_BUFFER_SUPPORTED_NV  0x30BE
   1596 typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
   1597 #ifdef EGL_EGLEXT_PROTOTYPES
   1598 EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
   1599 #endif
   1600 #endif /* EGL_NV_post_sub_buffer */
   1601 
   1602 #ifndef EGL_NV_stream_sync
   1603 #define EGL_NV_stream_sync 1
   1604 #define EGL_SYNC_NEW_FRAME_NV             0x321F
   1605 typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list);
   1606 #ifdef EGL_EGLEXT_PROTOTYPES
   1607 EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list);
   1608 #endif
   1609 #endif /* EGL_NV_stream_sync */
   1610 
   1611 #ifndef EGL_NV_sync
   1612 #define EGL_NV_sync 1
   1613 typedef void *EGLSyncNV;
   1614 typedef khronos_utime_nanoseconds_t EGLTimeNV;
   1615 #ifdef KHRONOS_SUPPORT_INT64
   1616 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6
   1617 #define EGL_SYNC_STATUS_NV                0x30E7
   1618 #define EGL_SIGNALED_NV                   0x30E8
   1619 #define EGL_UNSIGNALED_NV                 0x30E9
   1620 #define EGL_SYNC_FLUSH_COMMANDS_BIT_NV    0x0001
   1621 #define EGL_FOREVER_NV                    0xFFFFFFFFFFFFFFFFull
   1622 #define EGL_ALREADY_SIGNALED_NV           0x30EA
   1623 #define EGL_TIMEOUT_EXPIRED_NV            0x30EB
   1624 #define EGL_CONDITION_SATISFIED_NV        0x30EC
   1625 #define EGL_SYNC_TYPE_NV                  0x30ED
   1626 #define EGL_SYNC_CONDITION_NV             0x30EE
   1627 #define EGL_SYNC_FENCE_NV                 0x30EF
   1628 #define EGL_NO_SYNC_NV                    ((EGLSyncNV)0)
   1629 typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
   1630 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
   1631 typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync);
   1632 typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
   1633 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
   1634 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value);
   1635 #ifdef EGL_EGLEXT_PROTOTYPES
   1636 EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
   1637 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync);
   1638 EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync);
   1639 EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
   1640 EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode);
   1641 EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value);
   1642 #endif
   1643 #endif /* KHRONOS_SUPPORT_INT64 */
   1644 #endif /* EGL_NV_sync */
   1645 
   1646 #ifndef EGL_NV_system_time
   1647 #define EGL_NV_system_time 1
   1648 typedef khronos_utime_nanoseconds_t EGLuint64NV;
   1649 #ifdef KHRONOS_SUPPORT_INT64
   1650 typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void);
   1651 typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void);
   1652 #ifdef EGL_EGLEXT_PROTOTYPES
   1653 EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV (void);
   1654 EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void);
   1655 #endif
   1656 #endif /* KHRONOS_SUPPORT_INT64 */
   1657 #endif /* EGL_NV_system_time */
   1658 
   1659 #ifndef EGL_TIZEN_image_native_buffer
   1660 #define EGL_TIZEN_image_native_buffer 1
   1661 #define EGL_NATIVE_BUFFER_TIZEN           0x32A0
   1662 #endif /* EGL_TIZEN_image_native_buffer */
   1663 
   1664 #ifndef EGL_TIZEN_image_native_surface
   1665 #define EGL_TIZEN_image_native_surface 1
   1666 #define EGL_NATIVE_SURFACE_TIZEN          0x32A1
   1667 #endif /* EGL_TIZEN_image_native_surface */
   1668 
   1669 #ifdef __cplusplus
   1670 }
   1671 #endif
   1672 
   1673 #endif /* __eglext_h_ */
   1674 
   1675 
   1676 #endif /* _MSC_VER */