include/SDL_egl.h
author Sam Lantinga <slouken@libsdl.org>
Mon, 23 Oct 2017 23:35:04 -0700
changeset 11651 bfeaa433980c
parent 11363 2d3d35b2c95a
child 11715 35da714ed287
permissions -rw-r--r--
Removed unneeded file automatically generated by Android Studio
     1 /*
     2   Simple DirectMedia Layer
     3   Copyright (C) 1997-2017 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 #ifndef _MSC_VER
    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 #include <windows.h>
   394 
   395 #if __WINRT__
   396 #include <Unknwn.h>
   397 typedef IUnknown * EGLNativeWindowType;
   398 typedef IUnknown * EGLNativePixmapType;
   399 typedef IUnknown * EGLNativeDisplayType;
   400 #else
   401 typedef HDC     EGLNativeDisplayType;
   402 typedef HBITMAP EGLNativePixmapType;
   403 typedef HWND    EGLNativeWindowType;
   404 #endif
   405 
   406 #elif defined(__WINSCW__) || defined(__SYMBIAN32__)  /* Symbian */
   407 
   408 typedef int   EGLNativeDisplayType;
   409 typedef void *EGLNativeWindowType;
   410 typedef void *EGLNativePixmapType;
   411 
   412 #elif defined(WL_EGL_PLATFORM)
   413 
   414 typedef struct wl_display     *EGLNativeDisplayType;
   415 typedef struct wl_egl_pixmap  *EGLNativePixmapType;
   416 typedef struct wl_egl_window  *EGLNativeWindowType;
   417 
   418 #elif defined(__GBM__)
   419 
   420 typedef struct gbm_device  *EGLNativeDisplayType;
   421 typedef struct gbm_bo      *EGLNativePixmapType;
   422 typedef void               *EGLNativeWindowType;
   423 
   424 #elif defined(__ANDROID__) /* Android */
   425 
   426 struct ANativeWindow;
   427 struct egl_native_pixmap_t;
   428 
   429 typedef struct ANativeWindow        *EGLNativeWindowType;
   430 typedef struct egl_native_pixmap_t  *EGLNativePixmapType;
   431 typedef void                        *EGLNativeDisplayType;
   432 
   433 #elif defined(MIR_EGL_PLATFORM)
   434 
   435 #include <mir_toolkit/mir_client_library.h>
   436 typedef MirEGLNativeDisplayType EGLNativeDisplayType;
   437 typedef void                   *EGLNativePixmapType;
   438 typedef MirEGLNativeWindowType  EGLNativeWindowType;
   439 
   440 #elif defined(__unix__)
   441 
   442 #ifdef MESA_EGL_NO_X11_HEADERS
   443 
   444 typedef void            *EGLNativeDisplayType;
   445 typedef khronos_uintptr_t EGLNativePixmapType;
   446 typedef khronos_uintptr_t EGLNativeWindowType;
   447 
   448 #else
   449 
   450 /* X11 (tentative)  */
   451 #include <X11/Xlib.h>
   452 #include <X11/Xutil.h>
   453 
   454 typedef Display *EGLNativeDisplayType;
   455 typedef Pixmap   EGLNativePixmapType;
   456 typedef Window   EGLNativeWindowType;
   457 
   458 #endif /* MESA_EGL_NO_X11_HEADERS */
   459 
   460 #else
   461 #error "Platform not recognized"
   462 #endif
   463 
   464 /* EGL 1.2 types, renamed for consistency in EGL 1.3 */
   465 typedef EGLNativeDisplayType NativeDisplayType;
   466 typedef EGLNativePixmapType  NativePixmapType;
   467 typedef EGLNativeWindowType  NativeWindowType;
   468 
   469 
   470 /* Define EGLint. This must be a signed integral type large enough to contain
   471 * all legal attribute names and values passed into and out of EGL, whether
   472 * their type is boolean, bitmask, enumerant (symbolic constant), integer,
   473 * handle, or other.  While in general a 32-bit integer will suffice, if
   474 * handles are 64 bit types, then EGLint should be defined as a signed 64-bit
   475 * integer type.
   476 */
   477 typedef khronos_int32_t EGLint;
   478 
   479 #endif /* __eglplatform_h */
   480 
   481 #ifndef __egl_h_
   482 #define __egl_h_ 1
   483 
   484 #ifdef __cplusplus
   485 extern "C" {
   486 #endif
   487 
   488 /*
   489 ** Copyright (c) 2013-2015 The Khronos Group Inc.
   490 **
   491 ** Permission is hereby granted, free of charge, to any person obtaining a
   492 ** copy of this software and/or associated documentation files (the
   493 ** "Materials"), to deal in the Materials without restriction, including
   494 ** without limitation the rights to use, copy, modify, merge, publish,
   495 ** distribute, sublicense, and/or sell copies of the Materials, and to
   496 ** permit persons to whom the Materials are furnished to do so, subject to
   497 ** the following conditions:
   498 **
   499 ** The above copyright notice and this permission notice shall be included
   500 ** in all copies or substantial portions of the Materials.
   501 **
   502 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
   503 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
   504 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
   505 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
   506 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
   507 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
   508 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
   509 */
   510 /*
   511 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
   512 ** API Registry. The current version of the Registry, generator scripts
   513 ** used to make the header, and the header can be found at
   514 **   http://www.opengl.org/registry/
   515 **
   516 ** Khronos $Revision: 31566 $ on $Date: 2015-06-23 08:48:48 -0700 (Tue, 23 Jun 2015) $
   517 */
   518 
   519 /*#include <EGL/eglplatform.h>*/
   520 
   521 /* Generated on date 20150623 */
   522 
   523 /* Generated C header for:
   524  * API: egl
   525  * Versions considered: .*
   526  * Versions emitted: .*
   527  * Default extensions included: None
   528  * Additional extensions included: _nomatch_^
   529  * Extensions removed: _nomatch_^
   530  */
   531 
   532 #ifndef EGL_VERSION_1_0
   533 #define EGL_VERSION_1_0 1
   534 typedef unsigned int EGLBoolean;
   535 typedef void *EGLDisplay;
   536 typedef void *EGLConfig;
   537 typedef void *EGLSurface;
   538 typedef void *EGLContext;
   539 typedef void (*__eglMustCastToProperFunctionPointerType)(void);
   540 #define EGL_ALPHA_SIZE                    0x3021
   541 #define EGL_BAD_ACCESS                    0x3002
   542 #define EGL_BAD_ALLOC                     0x3003
   543 #define EGL_BAD_ATTRIBUTE                 0x3004
   544 #define EGL_BAD_CONFIG                    0x3005
   545 #define EGL_BAD_CONTEXT                   0x3006
   546 #define EGL_BAD_CURRENT_SURFACE           0x3007
   547 #define EGL_BAD_DISPLAY                   0x3008
   548 #define EGL_BAD_MATCH                     0x3009
   549 #define EGL_BAD_NATIVE_PIXMAP             0x300A
   550 #define EGL_BAD_NATIVE_WINDOW             0x300B
   551 #define EGL_BAD_PARAMETER                 0x300C
   552 #define EGL_BAD_SURFACE                   0x300D
   553 #define EGL_BLUE_SIZE                     0x3022
   554 #define EGL_BUFFER_SIZE                   0x3020
   555 #define EGL_CONFIG_CAVEAT                 0x3027
   556 #define EGL_CONFIG_ID                     0x3028
   557 #define EGL_CORE_NATIVE_ENGINE            0x305B
   558 #define EGL_DEPTH_SIZE                    0x3025
   559 #define EGL_DONT_CARE                     ((EGLint)-1)
   560 #define EGL_DRAW                          0x3059
   561 #define EGL_EXTENSIONS                    0x3055
   562 #define EGL_FALSE                         0
   563 #define EGL_GREEN_SIZE                    0x3023
   564 #define EGL_HEIGHT                        0x3056
   565 #define EGL_LARGEST_PBUFFER               0x3058
   566 #define EGL_LEVEL                         0x3029
   567 #define EGL_MAX_PBUFFER_HEIGHT            0x302A
   568 #define EGL_MAX_PBUFFER_PIXELS            0x302B
   569 #define EGL_MAX_PBUFFER_WIDTH             0x302C
   570 #define EGL_NATIVE_RENDERABLE             0x302D
   571 #define EGL_NATIVE_VISUAL_ID              0x302E
   572 #define EGL_NATIVE_VISUAL_TYPE            0x302F
   573 #define EGL_NONE                          0x3038
   574 #define EGL_NON_CONFORMANT_CONFIG         0x3051
   575 #define EGL_NOT_INITIALIZED               0x3001
   576 #define EGL_NO_CONTEXT                    ((EGLContext)0)
   577 #define EGL_NO_DISPLAY                    ((EGLDisplay)0)
   578 #define EGL_NO_SURFACE                    ((EGLSurface)0)
   579 #define EGL_PBUFFER_BIT                   0x0001
   580 #define EGL_PIXMAP_BIT                    0x0002
   581 #define EGL_READ                          0x305A
   582 #define EGL_RED_SIZE                      0x3024
   583 #define EGL_SAMPLES                       0x3031
   584 #define EGL_SAMPLE_BUFFERS                0x3032
   585 #define EGL_SLOW_CONFIG                   0x3050
   586 #define EGL_STENCIL_SIZE                  0x3026
   587 #define EGL_SUCCESS                       0x3000
   588 #define EGL_SURFACE_TYPE                  0x3033
   589 #define EGL_TRANSPARENT_BLUE_VALUE        0x3035
   590 #define EGL_TRANSPARENT_GREEN_VALUE       0x3036
   591 #define EGL_TRANSPARENT_RED_VALUE         0x3037
   592 #define EGL_TRANSPARENT_RGB               0x3052
   593 #define EGL_TRANSPARENT_TYPE              0x3034
   594 #define EGL_TRUE                          1
   595 #define EGL_VENDOR                        0x3053
   596 #define EGL_VERSION                       0x3054
   597 #define EGL_WIDTH                         0x3057
   598 #define EGL_WINDOW_BIT                    0x0004
   599 EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
   600 EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
   601 EGLAPI EGLContext EGLAPIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list);
   602 EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
   603 EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list);
   604 EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list);
   605 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx);
   606 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface);
   607 EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
   608 EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
   609 EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay (void);
   610 EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface (EGLint readdraw);
   611 EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay (EGLNativeDisplayType display_id);
   612 EGLAPI EGLint EGLAPIENTRY eglGetError (void);
   613 EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname);
   614 EGLAPI EGLBoolean EGLAPIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor);
   615 EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
   616 EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
   617 EGLAPI const char *EGLAPIENTRY eglQueryString (EGLDisplay dpy, EGLint name);
   618 EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
   619 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface surface);
   620 EGLAPI EGLBoolean EGLAPIENTRY eglTerminate (EGLDisplay dpy);
   621 EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL (void);
   622 EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative (EGLint engine);
   623 #endif /* EGL_VERSION_1_0 */
   624 
   625 #ifndef EGL_VERSION_1_1
   626 #define EGL_VERSION_1_1 1
   627 #define EGL_BACK_BUFFER                   0x3084
   628 #define EGL_BIND_TO_TEXTURE_RGB           0x3039
   629 #define EGL_BIND_TO_TEXTURE_RGBA          0x303A
   630 #define EGL_CONTEXT_LOST                  0x300E
   631 #define EGL_MIN_SWAP_INTERVAL             0x303B
   632 #define EGL_MAX_SWAP_INTERVAL             0x303C
   633 #define EGL_MIPMAP_TEXTURE                0x3082
   634 #define EGL_MIPMAP_LEVEL                  0x3083
   635 #define EGL_NO_TEXTURE                    0x305C
   636 #define EGL_TEXTURE_2D                    0x305F
   637 #define EGL_TEXTURE_FORMAT                0x3080
   638 #define EGL_TEXTURE_RGB                   0x305D
   639 #define EGL_TEXTURE_RGBA                  0x305E
   640 #define EGL_TEXTURE_TARGET                0x3081
   641 EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
   642 EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
   643 EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
   644 EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval (EGLDisplay dpy, EGLint interval);
   645 #endif /* EGL_VERSION_1_1 */
   646 
   647 #ifndef EGL_VERSION_1_2
   648 #define EGL_VERSION_1_2 1
   649 typedef unsigned int EGLenum;
   650 typedef void *EGLClientBuffer;
   651 #define EGL_ALPHA_FORMAT                  0x3088
   652 #define EGL_ALPHA_FORMAT_NONPRE           0x308B
   653 #define EGL_ALPHA_FORMAT_PRE              0x308C
   654 #define EGL_ALPHA_MASK_SIZE               0x303E
   655 #define EGL_BUFFER_PRESERVED              0x3094
   656 #define EGL_BUFFER_DESTROYED              0x3095
   657 #define EGL_CLIENT_APIS                   0x308D
   658 #define EGL_COLORSPACE                    0x3087
   659 #define EGL_COLORSPACE_sRGB               0x3089
   660 #define EGL_COLORSPACE_LINEAR             0x308A
   661 #define EGL_COLOR_BUFFER_TYPE             0x303F
   662 #define EGL_CONTEXT_CLIENT_TYPE           0x3097
   663 #define EGL_DISPLAY_SCALING               10000
   664 #define EGL_HORIZONTAL_RESOLUTION         0x3090
   665 #define EGL_LUMINANCE_BUFFER              0x308F
   666 #define EGL_LUMINANCE_SIZE                0x303D
   667 #define EGL_OPENGL_ES_BIT                 0x0001
   668 #define EGL_OPENVG_BIT                    0x0002
   669 #define EGL_OPENGL_ES_API                 0x30A0
   670 #define EGL_OPENVG_API                    0x30A1
   671 #define EGL_OPENVG_IMAGE                  0x3096
   672 #define EGL_PIXEL_ASPECT_RATIO            0x3092
   673 #define EGL_RENDERABLE_TYPE               0x3040
   674 #define EGL_RENDER_BUFFER                 0x3086
   675 #define EGL_RGB_BUFFER                    0x308E
   676 #define EGL_SINGLE_BUFFER                 0x3085
   677 #define EGL_SWAP_BEHAVIOR                 0x3093
   678 #define EGL_UNKNOWN                       ((EGLint)-1)
   679 #define EGL_VERTICAL_RESOLUTION           0x3091
   680 EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI (EGLenum api);
   681 EGLAPI EGLenum EGLAPIENTRY eglQueryAPI (void);
   682 EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list);
   683 EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread (void);
   684 EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient (void);
   685 #endif /* EGL_VERSION_1_2 */
   686 
   687 #ifndef EGL_VERSION_1_3
   688 #define EGL_VERSION_1_3 1
   689 #define EGL_CONFORMANT                    0x3042
   690 #define EGL_CONTEXT_CLIENT_VERSION        0x3098
   691 #define EGL_MATCH_NATIVE_PIXMAP           0x3041
   692 #define EGL_OPENGL_ES2_BIT                0x0004
   693 #define EGL_VG_ALPHA_FORMAT               0x3088
   694 #define EGL_VG_ALPHA_FORMAT_NONPRE        0x308B
   695 #define EGL_VG_ALPHA_FORMAT_PRE           0x308C
   696 #define EGL_VG_ALPHA_FORMAT_PRE_BIT       0x0040
   697 #define EGL_VG_COLORSPACE                 0x3087
   698 #define EGL_VG_COLORSPACE_sRGB            0x3089
   699 #define EGL_VG_COLORSPACE_LINEAR          0x308A
   700 #define EGL_VG_COLORSPACE_LINEAR_BIT      0x0020
   701 #endif /* EGL_VERSION_1_3 */
   702 
   703 #ifndef EGL_VERSION_1_4
   704 #define EGL_VERSION_1_4 1
   705 #define EGL_DEFAULT_DISPLAY               ((EGLNativeDisplayType)0)
   706 #define EGL_MULTISAMPLE_RESOLVE_BOX_BIT   0x0200
   707 #define EGL_MULTISAMPLE_RESOLVE           0x3099
   708 #define EGL_MULTISAMPLE_RESOLVE_DEFAULT   0x309A
   709 #define EGL_MULTISAMPLE_RESOLVE_BOX       0x309B
   710 #define EGL_OPENGL_API                    0x30A2
   711 #define EGL_OPENGL_BIT                    0x0008
   712 #define EGL_SWAP_BEHAVIOR_PRESERVED_BIT   0x0400
   713 EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext (void);
   714 #endif /* EGL_VERSION_1_4 */
   715 
   716 #ifndef EGL_VERSION_1_5
   717 #define EGL_VERSION_1_5 1
   718 typedef void *EGLSync;
   719 typedef intptr_t EGLAttrib;
   720 typedef khronos_utime_nanoseconds_t EGLTime;
   721 typedef void *EGLImage;
   722 #define EGL_CONTEXT_MAJOR_VERSION         0x3098
   723 #define EGL_CONTEXT_MINOR_VERSION         0x30FB
   724 #define EGL_CONTEXT_OPENGL_PROFILE_MASK   0x30FD
   725 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
   726 #define EGL_NO_RESET_NOTIFICATION         0x31BE
   727 #define EGL_LOSE_CONTEXT_ON_RESET         0x31BF
   728 #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001
   729 #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002
   730 #define EGL_CONTEXT_OPENGL_DEBUG          0x31B0
   731 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1
   732 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS  0x31B2
   733 #define EGL_OPENGL_ES3_BIT                0x00000040
   734 #define EGL_CL_EVENT_HANDLE               0x309C
   735 #define EGL_SYNC_CL_EVENT                 0x30FE
   736 #define EGL_SYNC_CL_EVENT_COMPLETE        0x30FF
   737 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE  0x30F0
   738 #define EGL_SYNC_TYPE                     0x30F7
   739 #define EGL_SYNC_STATUS                   0x30F1
   740 #define EGL_SYNC_CONDITION                0x30F8
   741 #define EGL_SIGNALED                      0x30F2
   742 #define EGL_UNSIGNALED                    0x30F3
   743 #define EGL_SYNC_FLUSH_COMMANDS_BIT       0x0001
   744 #define EGL_FOREVER                       0xFFFFFFFFFFFFFFFFull
   745 #define EGL_TIMEOUT_EXPIRED               0x30F5
   746 #define EGL_CONDITION_SATISFIED           0x30F6
   747 #define EGL_NO_SYNC                       ((EGLSync)0)
   748 #define EGL_SYNC_FENCE                    0x30F9
   749 #define EGL_GL_COLORSPACE                 0x309D
   750 #define EGL_GL_COLORSPACE_SRGB            0x3089
   751 #define EGL_GL_COLORSPACE_LINEAR          0x308A
   752 #define EGL_GL_RENDERBUFFER               0x30B9
   753 #define EGL_GL_TEXTURE_2D                 0x30B1
   754 #define EGL_GL_TEXTURE_LEVEL              0x30BC
   755 #define EGL_GL_TEXTURE_3D                 0x30B2
   756 #define EGL_GL_TEXTURE_ZOFFSET            0x30BD
   757 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3
   758 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4
   759 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5
   760 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6
   761 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7
   762 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8
   763 #define EGL_IMAGE_PRESERVED               0x30D2
   764 #define EGL_NO_IMAGE                      ((EGLImage)0)
   765 EGLAPI EGLSync EGLAPIENTRY eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list);
   766 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync (EGLDisplay dpy, EGLSync sync);
   767 EGLAPI EGLint EGLAPIENTRY eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
   768 EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value);
   769 EGLAPI EGLImage EGLAPIENTRY eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list);
   770 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage (EGLDisplay dpy, EGLImage image);
   771 EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay (EGLenum platform, void *native_display, const EGLAttrib *attrib_list);
   772 EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list);
   773 EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list);
   774 EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags);
   775 #endif /* EGL_VERSION_1_5 */
   776 
   777 #ifdef __cplusplus
   778 }
   779 #endif
   780 
   781 #endif /* __egl_h_ */
   782 
   783 
   784 
   785 #ifndef __eglext_h_
   786 #define __eglext_h_ 1
   787 
   788 #ifdef __cplusplus
   789 extern "C" {
   790 #endif
   791 
   792 /*
   793 ** Copyright (c) 2013-2015 The Khronos Group Inc.
   794 **
   795 ** Permission is hereby granted, free of charge, to any person obtaining a
   796 ** copy of this software and/or associated documentation files (the
   797 ** "Materials"), to deal in the Materials without restriction, including
   798 ** without limitation the rights to use, copy, modify, merge, publish,
   799 ** distribute, sublicense, and/or sell copies of the Materials, and to
   800 ** permit persons to whom the Materials are furnished to do so, subject to
   801 ** the following conditions:
   802 **
   803 ** The above copyright notice and this permission notice shall be included
   804 ** in all copies or substantial portions of the Materials.
   805 **
   806 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
   807 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
   808 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
   809 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
   810 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
   811 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
   812 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
   813 */
   814 /*
   815 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
   816 ** API Registry. The current version of the Registry, generator scripts
   817 ** used to make the header, and the header can be found at
   818 **   http://www.opengl.org/registry/
   819 **
   820 ** Khronos $Revision: 31566 $ on $Date: 2015-06-23 08:48:48 -0700 (Tue, 23 Jun 2015) $
   821 */
   822 
   823 /*#include <EGL/eglplatform.h>*/
   824 
   825 #define EGL_EGLEXT_VERSION 20150623
   826 
   827 /* Generated C header for:
   828  * API: egl
   829  * Versions considered: .*
   830  * Versions emitted: _nomatch_^
   831  * Default extensions included: egl
   832  * Additional extensions included: _nomatch_^
   833  * Extensions removed: _nomatch_^
   834  */
   835 
   836 #ifndef EGL_KHR_cl_event
   837 #define EGL_KHR_cl_event 1
   838 #define EGL_CL_EVENT_HANDLE_KHR           0x309C
   839 #define EGL_SYNC_CL_EVENT_KHR             0x30FE
   840 #define EGL_SYNC_CL_EVENT_COMPLETE_KHR    0x30FF
   841 #endif /* EGL_KHR_cl_event */
   842 
   843 #ifndef EGL_KHR_cl_event2
   844 #define EGL_KHR_cl_event2 1
   845 typedef void *EGLSyncKHR;
   846 typedef intptr_t EGLAttribKHR;
   847 typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list);
   848 #ifdef EGL_EGLEXT_PROTOTYPES
   849 EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list);
   850 #endif
   851 #endif /* EGL_KHR_cl_event2 */
   852 
   853 #ifndef EGL_KHR_client_get_all_proc_addresses
   854 #define EGL_KHR_client_get_all_proc_addresses 1
   855 #endif /* EGL_KHR_client_get_all_proc_addresses */
   856 
   857 #ifndef EGL_KHR_config_attribs
   858 #define EGL_KHR_config_attribs 1
   859 #define EGL_CONFORMANT_KHR                0x3042
   860 #define EGL_VG_COLORSPACE_LINEAR_BIT_KHR  0x0020
   861 #define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR   0x0040
   862 #endif /* EGL_KHR_config_attribs */
   863 
   864 #ifndef EGL_KHR_create_context
   865 #define EGL_KHR_create_context 1
   866 #define EGL_CONTEXT_MAJOR_VERSION_KHR     0x3098
   867 #define EGL_CONTEXT_MINOR_VERSION_KHR     0x30FB
   868 #define EGL_CONTEXT_FLAGS_KHR             0x30FC
   869 #define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD
   870 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD
   871 #define EGL_NO_RESET_NOTIFICATION_KHR     0x31BE
   872 #define EGL_LOSE_CONTEXT_ON_RESET_KHR     0x31BF
   873 #define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR  0x00000001
   874 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002
   875 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004
   876 #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001
   877 #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002
   878 #define EGL_OPENGL_ES3_BIT_KHR            0x00000040
   879 #endif /* EGL_KHR_create_context */
   880 
   881 #ifndef EGL_KHR_create_context_no_error
   882 #define EGL_KHR_create_context_no_error 1
   883 #define EGL_CONTEXT_OPENGL_NO_ERROR_KHR   0x31B3
   884 #endif /* EGL_KHR_create_context_no_error */
   885 
   886 #ifndef EGL_KHR_fence_sync
   887 #define EGL_KHR_fence_sync 1
   888 typedef khronos_utime_nanoseconds_t EGLTimeKHR;
   889 #ifdef KHRONOS_SUPPORT_INT64
   890 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
   891 #define EGL_SYNC_CONDITION_KHR            0x30F8
   892 #define EGL_SYNC_FENCE_KHR                0x30F9
   893 typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
   894 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
   895 typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
   896 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
   897 #ifdef EGL_EGLEXT_PROTOTYPES
   898 EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
   899 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync);
   900 EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
   901 EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
   902 #endif
   903 #endif /* KHRONOS_SUPPORT_INT64 */
   904 #endif /* EGL_KHR_fence_sync */
   905 
   906 #ifndef EGL_KHR_get_all_proc_addresses
   907 #define EGL_KHR_get_all_proc_addresses 1
   908 #endif /* EGL_KHR_get_all_proc_addresses */
   909 
   910 #ifndef EGL_KHR_gl_colorspace
   911 #define EGL_KHR_gl_colorspace 1
   912 #define EGL_GL_COLORSPACE_KHR             0x309D
   913 #define EGL_GL_COLORSPACE_SRGB_KHR        0x3089
   914 #define EGL_GL_COLORSPACE_LINEAR_KHR      0x308A
   915 #endif /* EGL_KHR_gl_colorspace */
   916 
   917 #ifndef EGL_KHR_gl_renderbuffer_image
   918 #define EGL_KHR_gl_renderbuffer_image 1
   919 #define EGL_GL_RENDERBUFFER_KHR           0x30B9
   920 #endif /* EGL_KHR_gl_renderbuffer_image */
   921 
   922 #ifndef EGL_KHR_gl_texture_2D_image
   923 #define EGL_KHR_gl_texture_2D_image 1
   924 #define EGL_GL_TEXTURE_2D_KHR             0x30B1
   925 #define EGL_GL_TEXTURE_LEVEL_KHR          0x30BC
   926 #endif /* EGL_KHR_gl_texture_2D_image */
   927 
   928 #ifndef EGL_KHR_gl_texture_3D_image
   929 #define EGL_KHR_gl_texture_3D_image 1
   930 #define EGL_GL_TEXTURE_3D_KHR             0x30B2
   931 #define EGL_GL_TEXTURE_ZOFFSET_KHR        0x30BD
   932 #endif /* EGL_KHR_gl_texture_3D_image */
   933 
   934 #ifndef EGL_KHR_gl_texture_cubemap_image
   935 #define EGL_KHR_gl_texture_cubemap_image 1
   936 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3
   937 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4
   938 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5
   939 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6
   940 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7
   941 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8
   942 #endif /* EGL_KHR_gl_texture_cubemap_image */
   943 
   944 #ifndef EGL_KHR_image
   945 #define EGL_KHR_image 1
   946 typedef void *EGLImageKHR;
   947 #define EGL_NATIVE_PIXMAP_KHR             0x30B0
   948 #define EGL_NO_IMAGE_KHR                  ((EGLImageKHR)0)
   949 typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
   950 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
   951 #ifdef EGL_EGLEXT_PROTOTYPES
   952 EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
   953 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
   954 #endif
   955 #endif /* EGL_KHR_image */
   956 
   957 #ifndef EGL_KHR_image_base
   958 #define EGL_KHR_image_base 1
   959 #define EGL_IMAGE_PRESERVED_KHR           0x30D2
   960 #endif /* EGL_KHR_image_base */
   961 
   962 #ifndef EGL_KHR_image_pixmap
   963 #define EGL_KHR_image_pixmap 1
   964 #endif /* EGL_KHR_image_pixmap */
   965 
   966 #ifndef EGL_KHR_lock_surface
   967 #define EGL_KHR_lock_surface 1
   968 #define EGL_READ_SURFACE_BIT_KHR          0x0001
   969 #define EGL_WRITE_SURFACE_BIT_KHR         0x0002
   970 #define EGL_LOCK_SURFACE_BIT_KHR          0x0080
   971 #define EGL_OPTIMAL_FORMAT_BIT_KHR        0x0100
   972 #define EGL_MATCH_FORMAT_KHR              0x3043
   973 #define EGL_FORMAT_RGB_565_EXACT_KHR      0x30C0
   974 #define EGL_FORMAT_RGB_565_KHR            0x30C1
   975 #define EGL_FORMAT_RGBA_8888_EXACT_KHR    0x30C2
   976 #define EGL_FORMAT_RGBA_8888_KHR          0x30C3
   977 #define EGL_MAP_PRESERVE_PIXELS_KHR       0x30C4
   978 #define EGL_LOCK_USAGE_HINT_KHR           0x30C5
   979 #define EGL_BITMAP_POINTER_KHR            0x30C6
   980 #define EGL_BITMAP_PITCH_KHR              0x30C7
   981 #define EGL_BITMAP_ORIGIN_KHR             0x30C8
   982 #define EGL_BITMAP_PIXEL_RED_OFFSET_KHR   0x30C9
   983 #define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
   984 #define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR  0x30CB
   985 #define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
   986 #define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
   987 #define EGL_LOWER_LEFT_KHR                0x30CE
   988 #define EGL_UPPER_LEFT_KHR                0x30CF
   989 typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list);
   990 typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface);
   991 #ifdef EGL_EGLEXT_PROTOTYPES
   992 EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list);
   993 EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface);
   994 #endif
   995 #endif /* EGL_KHR_lock_surface */
   996 
   997 #ifndef EGL_KHR_lock_surface2
   998 #define EGL_KHR_lock_surface2 1
   999 #define EGL_BITMAP_PIXEL_SIZE_KHR         0x3110
  1000 #endif /* EGL_KHR_lock_surface2 */
  1001 
  1002 #ifndef EGL_KHR_lock_surface3
  1003 #define EGL_KHR_lock_surface3 1
  1004 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value);
  1005 #ifdef EGL_EGLEXT_PROTOTYPES
  1006 EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value);
  1007 #endif
  1008 #endif /* EGL_KHR_lock_surface3 */
  1009 
  1010 #ifndef EGL_KHR_partial_update
  1011 #define EGL_KHR_partial_update 1
  1012 #define EGL_BUFFER_AGE_KHR                0x313D
  1013 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
  1014 #ifdef EGL_EGLEXT_PROTOTYPES
  1015 EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
  1016 #endif
  1017 #endif /* EGL_KHR_partial_update */
  1018 
  1019 #ifndef EGL_KHR_platform_android
  1020 #define EGL_KHR_platform_android 1
  1021 #define EGL_PLATFORM_ANDROID_KHR          0x3141
  1022 #endif /* EGL_KHR_platform_android */
  1023 
  1024 #ifndef EGL_KHR_platform_gbm
  1025 #define EGL_KHR_platform_gbm 1
  1026 #define EGL_PLATFORM_GBM_KHR              0x31D7
  1027 #endif /* EGL_KHR_platform_gbm */
  1028 
  1029 #ifndef EGL_KHR_platform_wayland
  1030 #define EGL_KHR_platform_wayland 1
  1031 #define EGL_PLATFORM_WAYLAND_KHR          0x31D8
  1032 #endif /* EGL_KHR_platform_wayland */
  1033 
  1034 #ifndef EGL_KHR_platform_x11
  1035 #define EGL_KHR_platform_x11 1
  1036 #define EGL_PLATFORM_X11_KHR              0x31D5
  1037 #define EGL_PLATFORM_X11_SCREEN_KHR       0x31D6
  1038 #endif /* EGL_KHR_platform_x11 */
  1039 
  1040 #ifndef EGL_KHR_reusable_sync
  1041 #define EGL_KHR_reusable_sync 1
  1042 #ifdef KHRONOS_SUPPORT_INT64
  1043 #define EGL_SYNC_STATUS_KHR               0x30F1
  1044 #define EGL_SIGNALED_KHR                  0x30F2
  1045 #define EGL_UNSIGNALED_KHR                0x30F3
  1046 #define EGL_TIMEOUT_EXPIRED_KHR           0x30F5
  1047 #define EGL_CONDITION_SATISFIED_KHR       0x30F6
  1048 #define EGL_SYNC_TYPE_KHR                 0x30F7
  1049 #define EGL_SYNC_REUSABLE_KHR             0x30FA
  1050 #define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR   0x0001
  1051 #define EGL_FOREVER_KHR                   0xFFFFFFFFFFFFFFFFull
  1052 #define EGL_NO_SYNC_KHR                   ((EGLSyncKHR)0)
  1053 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
  1054 #ifdef EGL_EGLEXT_PROTOTYPES
  1055 EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
  1056 #endif
  1057 #endif /* KHRONOS_SUPPORT_INT64 */
  1058 #endif /* EGL_KHR_reusable_sync */
  1059 
  1060 #ifndef EGL_KHR_stream
  1061 #define EGL_KHR_stream 1
  1062 typedef void *EGLStreamKHR;
  1063 typedef khronos_uint64_t EGLuint64KHR;
  1064 #ifdef KHRONOS_SUPPORT_INT64
  1065 #define EGL_NO_STREAM_KHR                 ((EGLStreamKHR)0)
  1066 #define EGL_CONSUMER_LATENCY_USEC_KHR     0x3210
  1067 #define EGL_PRODUCER_FRAME_KHR            0x3212
  1068 #define EGL_CONSUMER_FRAME_KHR            0x3213
  1069 #define EGL_STREAM_STATE_KHR              0x3214
  1070 #define EGL_STREAM_STATE_CREATED_KHR      0x3215
  1071 #define EGL_STREAM_STATE_CONNECTING_KHR   0x3216
  1072 #define EGL_STREAM_STATE_EMPTY_KHR        0x3217
  1073 #define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218
  1074 #define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219
  1075 #define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A
  1076 #define EGL_BAD_STREAM_KHR                0x321B
  1077 #define EGL_BAD_STATE_KHR                 0x321C
  1078 typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint *attrib_list);
  1079 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
  1080 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
  1081 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value);
  1082 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value);
  1083 #ifdef EGL_EGLEXT_PROTOTYPES
  1084 EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR (EGLDisplay dpy, const EGLint *attrib_list);
  1085 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream);
  1086 EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
  1087 EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value);
  1088 EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value);
  1089 #endif
  1090 #endif /* KHRONOS_SUPPORT_INT64 */
  1091 #endif /* EGL_KHR_stream */
  1092 
  1093 #ifndef EGL_KHR_stream_consumer_gltexture
  1094 #define EGL_KHR_stream_consumer_gltexture 1
  1095 #ifdef EGL_KHR_stream
  1096 #define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E
  1097 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
  1098 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
  1099 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
  1100 #ifdef EGL_EGLEXT_PROTOTYPES
  1101 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream);
  1102 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream);
  1103 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream);
  1104 #endif
  1105 #endif /* EGL_KHR_stream */
  1106 #endif /* EGL_KHR_stream_consumer_gltexture */
  1107 
  1108 #ifndef EGL_KHR_stream_cross_process_fd
  1109 #define EGL_KHR_stream_cross_process_fd 1
  1110 typedef int EGLNativeFileDescriptorKHR;
  1111 #ifdef EGL_KHR_stream
  1112 #define EGL_NO_FILE_DESCRIPTOR_KHR        ((EGLNativeFileDescriptorKHR)(-1))
  1113 typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
  1114 typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
  1115 #ifdef EGL_EGLEXT_PROTOTYPES
  1116 EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream);
  1117 EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
  1118 #endif
  1119 #endif /* EGL_KHR_stream */
  1120 #endif /* EGL_KHR_stream_cross_process_fd */
  1121 
  1122 #ifndef EGL_KHR_stream_fifo
  1123 #define EGL_KHR_stream_fifo 1
  1124 #ifdef EGL_KHR_stream
  1125 #define EGL_STREAM_FIFO_LENGTH_KHR        0x31FC
  1126 #define EGL_STREAM_TIME_NOW_KHR           0x31FD
  1127 #define EGL_STREAM_TIME_CONSUMER_KHR      0x31FE
  1128 #define EGL_STREAM_TIME_PRODUCER_KHR      0x31FF
  1129 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value);
  1130 #ifdef EGL_EGLEXT_PROTOTYPES
  1131 EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value);
  1132 #endif
  1133 #endif /* EGL_KHR_stream */
  1134 #endif /* EGL_KHR_stream_fifo */
  1135 
  1136 #ifndef EGL_KHR_stream_producer_aldatalocator
  1137 #define EGL_KHR_stream_producer_aldatalocator 1
  1138 #ifdef EGL_KHR_stream
  1139 #endif /* EGL_KHR_stream */
  1140 #endif /* EGL_KHR_stream_producer_aldatalocator */
  1141 
  1142 #ifndef EGL_KHR_stream_producer_eglsurface
  1143 #define EGL_KHR_stream_producer_eglsurface 1
  1144 #ifdef EGL_KHR_stream
  1145 #define EGL_STREAM_BIT_KHR                0x0800
  1146 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
  1147 #ifdef EGL_EGLEXT_PROTOTYPES
  1148 EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
  1149 #endif
  1150 #endif /* EGL_KHR_stream */
  1151 #endif /* EGL_KHR_stream_producer_eglsurface */
  1152 
  1153 #ifndef EGL_KHR_surfaceless_context
  1154 #define EGL_KHR_surfaceless_context 1
  1155 #endif /* EGL_KHR_surfaceless_context */
  1156 
  1157 #ifndef EGL_KHR_swap_buffers_with_damage
  1158 #define EGL_KHR_swap_buffers_with_damage 1
  1159 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
  1160 #ifdef EGL_EGLEXT_PROTOTYPES
  1161 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
  1162 #endif
  1163 #endif /* EGL_KHR_swap_buffers_with_damage */
  1164 
  1165 #ifndef EGL_KHR_vg_parent_image
  1166 #define EGL_KHR_vg_parent_image 1
  1167 #define EGL_VG_PARENT_IMAGE_KHR           0x30BA
  1168 #endif /* EGL_KHR_vg_parent_image */
  1169 
  1170 #ifndef EGL_KHR_wait_sync
  1171 #define EGL_KHR_wait_sync 1
  1172 typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
  1173 #ifdef EGL_EGLEXT_PROTOTYPES
  1174 EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
  1175 #endif
  1176 #endif /* EGL_KHR_wait_sync */
  1177 
  1178 #ifndef EGL_ANDROID_blob_cache
  1179 #define EGL_ANDROID_blob_cache 1
  1180 typedef khronos_ssize_t EGLsizeiANDROID;
  1181 typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
  1182 typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
  1183 typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
  1184 #ifdef EGL_EGLEXT_PROTOTYPES
  1185 EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
  1186 #endif
  1187 #endif /* EGL_ANDROID_blob_cache */
  1188 
  1189 #ifndef EGL_ANDROID_framebuffer_target
  1190 #define EGL_ANDROID_framebuffer_target 1
  1191 #define EGL_FRAMEBUFFER_TARGET_ANDROID    0x3147
  1192 #endif /* EGL_ANDROID_framebuffer_target */
  1193 
  1194 #ifndef EGL_ANDROID_image_native_buffer
  1195 #define EGL_ANDROID_image_native_buffer 1
  1196 #define EGL_NATIVE_BUFFER_ANDROID         0x3140
  1197 #endif /* EGL_ANDROID_image_native_buffer */
  1198 
  1199 #ifndef EGL_ANDROID_native_fence_sync
  1200 #define EGL_ANDROID_native_fence_sync 1
  1201 #define EGL_SYNC_NATIVE_FENCE_ANDROID     0x3144
  1202 #define EGL_SYNC_NATIVE_FENCE_FD_ANDROID  0x3145
  1203 #define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146
  1204 #define EGL_NO_NATIVE_FENCE_FD_ANDROID    -1
  1205 typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync);
  1206 #ifdef EGL_EGLEXT_PROTOTYPES
  1207 EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync);
  1208 #endif
  1209 #endif /* EGL_ANDROID_native_fence_sync */
  1210 
  1211 #ifndef EGL_ANDROID_recordable
  1212 #define EGL_ANDROID_recordable 1
  1213 #define EGL_RECORDABLE_ANDROID            0x3142
  1214 #endif /* EGL_ANDROID_recordable */
  1215 
  1216 #ifndef EGL_ANGLE_d3d_share_handle_client_buffer
  1217 #define EGL_ANGLE_d3d_share_handle_client_buffer 1
  1218 #define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
  1219 #endif /* EGL_ANGLE_d3d_share_handle_client_buffer */
  1220 
  1221 #ifndef EGL_ANGLE_device_d3d
  1222 #define EGL_ANGLE_device_d3d 1
  1223 #define EGL_D3D9_DEVICE_ANGLE             0x33A0
  1224 #define EGL_D3D11_DEVICE_ANGLE            0x33A1
  1225 #endif /* EGL_ANGLE_device_d3d */
  1226 
  1227 #ifndef EGL_ANGLE_query_surface_pointer
  1228 #define EGL_ANGLE_query_surface_pointer 1
  1229 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
  1230 #ifdef EGL_EGLEXT_PROTOTYPES
  1231 EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
  1232 #endif
  1233 #endif /* EGL_ANGLE_query_surface_pointer */
  1234 
  1235 #ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle
  1236 #define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
  1237 #endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */
  1238 
  1239 #ifndef EGL_ANGLE_window_fixed_size
  1240 #define EGL_ANGLE_window_fixed_size 1
  1241 #define EGL_FIXED_SIZE_ANGLE              0x3201
  1242 #endif /* EGL_ANGLE_window_fixed_size */
  1243 
  1244 #ifndef EGL_ARM_pixmap_multisample_discard
  1245 #define EGL_ARM_pixmap_multisample_discard 1
  1246 #define EGL_DISCARD_SAMPLES_ARM           0x3286
  1247 #endif /* EGL_ARM_pixmap_multisample_discard */
  1248 
  1249 #ifndef EGL_EXT_buffer_age
  1250 #define EGL_EXT_buffer_age 1
  1251 #define EGL_BUFFER_AGE_EXT                0x313D
  1252 #endif /* EGL_EXT_buffer_age */
  1253 
  1254 #ifndef EGL_EXT_client_extensions
  1255 #define EGL_EXT_client_extensions 1
  1256 #endif /* EGL_EXT_client_extensions */
  1257 
  1258 #ifndef EGL_EXT_create_context_robustness
  1259 #define EGL_EXT_create_context_robustness 1
  1260 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF
  1261 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138
  1262 #define EGL_NO_RESET_NOTIFICATION_EXT     0x31BE
  1263 #define EGL_LOSE_CONTEXT_ON_RESET_EXT     0x31BF
  1264 #endif /* EGL_EXT_create_context_robustness */
  1265 
  1266 #ifndef EGL_EXT_device_base
  1267 #define EGL_EXT_device_base 1
  1268 typedef void *EGLDeviceEXT;
  1269 #define EGL_NO_DEVICE_EXT                 ((EGLDeviceEXT)(0))
  1270 #define EGL_BAD_DEVICE_EXT                0x322B
  1271 #define EGL_DEVICE_EXT                    0x322C
  1272 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value);
  1273 typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name);
  1274 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices);
  1275 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
  1276 #ifdef EGL_EGLEXT_PROTOTYPES
  1277 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value);
  1278 EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name);
  1279 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices);
  1280 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
  1281 #endif
  1282 #endif /* EGL_EXT_device_base */
  1283 
  1284 #ifndef EGL_EXT_device_drm
  1285 #define EGL_EXT_device_drm 1
  1286 #define EGL_DRM_DEVICE_FILE_EXT           0x3233
  1287 #endif /* EGL_EXT_device_drm */
  1288 
  1289 #ifndef EGL_EXT_device_enumeration
  1290 #define EGL_EXT_device_enumeration 1
  1291 #endif /* EGL_EXT_device_enumeration */
  1292 
  1293 #ifndef EGL_EXT_device_openwf
  1294 #define EGL_EXT_device_openwf 1
  1295 #define EGL_OPENWF_DEVICE_ID_EXT          0x3237
  1296 #endif /* EGL_EXT_device_openwf */
  1297 
  1298 #ifndef EGL_EXT_device_query
  1299 #define EGL_EXT_device_query 1
  1300 #endif /* EGL_EXT_device_query */
  1301 
  1302 #ifndef EGL_EXT_image_dma_buf_import
  1303 #define EGL_EXT_image_dma_buf_import 1
  1304 #define EGL_LINUX_DMA_BUF_EXT             0x3270
  1305 #define EGL_LINUX_DRM_FOURCC_EXT          0x3271
  1306 #define EGL_DMA_BUF_PLANE0_FD_EXT         0x3272
  1307 #define EGL_DMA_BUF_PLANE0_OFFSET_EXT     0x3273
  1308 #define EGL_DMA_BUF_PLANE0_PITCH_EXT      0x3274
  1309 #define EGL_DMA_BUF_PLANE1_FD_EXT         0x3275
  1310 #define EGL_DMA_BUF_PLANE1_OFFSET_EXT     0x3276
  1311 #define EGL_DMA_BUF_PLANE1_PITCH_EXT      0x3277
  1312 #define EGL_DMA_BUF_PLANE2_FD_EXT         0x3278
  1313 #define EGL_DMA_BUF_PLANE2_OFFSET_EXT     0x3279
  1314 #define EGL_DMA_BUF_PLANE2_PITCH_EXT      0x327A
  1315 #define EGL_YUV_COLOR_SPACE_HINT_EXT      0x327B
  1316 #define EGL_SAMPLE_RANGE_HINT_EXT         0x327C
  1317 #define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
  1318 #define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
  1319 #define EGL_ITU_REC601_EXT                0x327F
  1320 #define EGL_ITU_REC709_EXT                0x3280
  1321 #define EGL_ITU_REC2020_EXT               0x3281
  1322 #define EGL_YUV_FULL_RANGE_EXT            0x3282
  1323 #define EGL_YUV_NARROW_RANGE_EXT          0x3283
  1324 #define EGL_YUV_CHROMA_SITING_0_EXT       0x3284
  1325 #define EGL_YUV_CHROMA_SITING_0_5_EXT     0x3285
  1326 #endif /* EGL_EXT_image_dma_buf_import */
  1327 
  1328 #ifndef EGL_EXT_multiview_window
  1329 #define EGL_EXT_multiview_window 1
  1330 #define EGL_MULTIVIEW_VIEW_COUNT_EXT      0x3134
  1331 #endif /* EGL_EXT_multiview_window */
  1332 
  1333 #ifndef EGL_EXT_output_base
  1334 #define EGL_EXT_output_base 1
  1335 typedef void *EGLOutputLayerEXT;
  1336 typedef void *EGLOutputPortEXT;
  1337 #define EGL_NO_OUTPUT_LAYER_EXT           ((EGLOutputLayerEXT)0)
  1338 #define EGL_NO_OUTPUT_PORT_EXT            ((EGLOutputPortEXT)0)
  1339 #define EGL_BAD_OUTPUT_LAYER_EXT          0x322D
  1340 #define EGL_BAD_OUTPUT_PORT_EXT           0x322E
  1341 #define EGL_SWAP_INTERVAL_EXT             0x322F
  1342 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers);
  1343 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports);
  1344 typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
  1345 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value);
  1346 typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
  1347 typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
  1348 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value);
  1349 typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
  1350 #ifdef EGL_EGLEXT_PROTOTYPES
  1351 EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers);
  1352 EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports);
  1353 EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
  1354 EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value);
  1355 EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
  1356 EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
  1357 EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value);
  1358 EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
  1359 #endif
  1360 #endif /* EGL_EXT_output_base */
  1361 
  1362 #ifndef EGL_EXT_output_drm
  1363 #define EGL_EXT_output_drm 1
  1364 #define EGL_DRM_CRTC_EXT                  0x3234
  1365 #define EGL_DRM_PLANE_EXT                 0x3235
  1366 #define EGL_DRM_CONNECTOR_EXT             0x3236
  1367 #endif /* EGL_EXT_output_drm */
  1368 
  1369 #ifndef EGL_EXT_output_openwf
  1370 #define EGL_EXT_output_openwf 1
  1371 #define EGL_OPENWF_PIPELINE_ID_EXT        0x3238
  1372 #define EGL_OPENWF_PORT_ID_EXT            0x3239
  1373 #endif /* EGL_EXT_output_openwf */
  1374 
  1375 #ifndef EGL_EXT_platform_base
  1376 #define EGL_EXT_platform_base 1
  1377 typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list);
  1378 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list);
  1379 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list);
  1380 #ifdef EGL_EGLEXT_PROTOTYPES
  1381 EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT (EGLenum platform, void *native_display, const EGLint *attrib_list);
  1382 EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list);
  1383 EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list);
  1384 #endif
  1385 #endif /* EGL_EXT_platform_base */
  1386 
  1387 #ifndef EGL_EXT_platform_device
  1388 #define EGL_EXT_platform_device 1
  1389 #define EGL_PLATFORM_DEVICE_EXT           0x313F
  1390 #endif /* EGL_EXT_platform_device */
  1391 
  1392 #ifndef EGL_EXT_platform_wayland
  1393 #define EGL_EXT_platform_wayland 1
  1394 #define EGL_PLATFORM_WAYLAND_EXT          0x31D8
  1395 #endif /* EGL_EXT_platform_wayland */
  1396 
  1397 #ifndef EGL_EXT_platform_x11
  1398 #define EGL_EXT_platform_x11 1
  1399 #define EGL_PLATFORM_X11_EXT              0x31D5
  1400 #define EGL_PLATFORM_X11_SCREEN_EXT       0x31D6
  1401 #endif /* EGL_EXT_platform_x11 */
  1402 
  1403 #ifndef EGL_EXT_protected_surface
  1404 #define EGL_EXT_protected_surface 1
  1405 #define EGL_PROTECTED_CONTENT_EXT         0x32C0
  1406 #endif /* EGL_EXT_protected_surface */
  1407 
  1408 #ifndef EGL_EXT_stream_consumer_egloutput
  1409 #define EGL_EXT_stream_consumer_egloutput 1
  1410 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
  1411 #ifdef EGL_EGLEXT_PROTOTYPES
  1412 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
  1413 #endif
  1414 #endif /* EGL_EXT_stream_consumer_egloutput */
  1415 
  1416 #ifndef EGL_EXT_swap_buffers_with_damage
  1417 #define EGL_EXT_swap_buffers_with_damage 1
  1418 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
  1419 #ifdef EGL_EGLEXT_PROTOTYPES
  1420 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
  1421 #endif
  1422 #endif /* EGL_EXT_swap_buffers_with_damage */
  1423 
  1424 #ifndef EGL_EXT_yuv_surface
  1425 #define EGL_EXT_yuv_surface 1
  1426 #define EGL_YUV_ORDER_EXT                 0x3301
  1427 #define EGL_YUV_NUMBER_OF_PLANES_EXT      0x3311
  1428 #define EGL_YUV_SUBSAMPLE_EXT             0x3312
  1429 #define EGL_YUV_DEPTH_RANGE_EXT           0x3317
  1430 #define EGL_YUV_CSC_STANDARD_EXT          0x330A
  1431 #define EGL_YUV_PLANE_BPP_EXT             0x331A
  1432 #define EGL_YUV_BUFFER_EXT                0x3300
  1433 #define EGL_YUV_ORDER_YUV_EXT             0x3302
  1434 #define EGL_YUV_ORDER_YVU_EXT             0x3303
  1435 #define EGL_YUV_ORDER_YUYV_EXT            0x3304
  1436 #define EGL_YUV_ORDER_UYVY_EXT            0x3305
  1437 #define EGL_YUV_ORDER_YVYU_EXT            0x3306
  1438 #define EGL_YUV_ORDER_VYUY_EXT            0x3307
  1439 #define EGL_YUV_ORDER_AYUV_EXT            0x3308
  1440 #define EGL_YUV_SUBSAMPLE_4_2_0_EXT       0x3313
  1441 #define EGL_YUV_SUBSAMPLE_4_2_2_EXT       0x3314
  1442 #define EGL_YUV_SUBSAMPLE_4_4_4_EXT       0x3315
  1443 #define EGL_YUV_DEPTH_RANGE_LIMITED_EXT   0x3318
  1444 #define EGL_YUV_DEPTH_RANGE_FULL_EXT      0x3319
  1445 #define EGL_YUV_CSC_STANDARD_601_EXT      0x330B
  1446 #define EGL_YUV_CSC_STANDARD_709_EXT      0x330C
  1447 #define EGL_YUV_CSC_STANDARD_2020_EXT     0x330D
  1448 #define EGL_YUV_PLANE_BPP_0_EXT           0x331B
  1449 #define EGL_YUV_PLANE_BPP_8_EXT           0x331C
  1450 #define EGL_YUV_PLANE_BPP_10_EXT          0x331D
  1451 #endif /* EGL_EXT_yuv_surface */
  1452 
  1453 #ifndef EGL_HI_clientpixmap
  1454 #define EGL_HI_clientpixmap 1
  1455 struct EGLClientPixmapHI {
  1456     void  *pData;
  1457     EGLint iWidth;
  1458     EGLint iHeight;
  1459     EGLint iStride;
  1460 };
  1461 #define EGL_CLIENT_PIXMAP_POINTER_HI      0x8F74
  1462 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap);
  1463 #ifdef EGL_EGLEXT_PROTOTYPES
  1464 EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap);
  1465 #endif
  1466 #endif /* EGL_HI_clientpixmap */
  1467 
  1468 #ifndef EGL_HI_colorformats
  1469 #define EGL_HI_colorformats 1
  1470 #define EGL_COLOR_FORMAT_HI               0x8F70
  1471 #define EGL_COLOR_RGB_HI                  0x8F71
  1472 #define EGL_COLOR_RGBA_HI                 0x8F72
  1473 #define EGL_COLOR_ARGB_HI                 0x8F73
  1474 #endif /* EGL_HI_colorformats */
  1475 
  1476 #ifndef EGL_IMG_context_priority
  1477 #define EGL_IMG_context_priority 1
  1478 #define EGL_CONTEXT_PRIORITY_LEVEL_IMG    0x3100
  1479 #define EGL_CONTEXT_PRIORITY_HIGH_IMG     0x3101
  1480 #define EGL_CONTEXT_PRIORITY_MEDIUM_IMG   0x3102
  1481 #define EGL_CONTEXT_PRIORITY_LOW_IMG      0x3103
  1482 #endif /* EGL_IMG_context_priority */
  1483 
  1484 #ifndef EGL_MESA_drm_image
  1485 #define EGL_MESA_drm_image 1
  1486 #define EGL_DRM_BUFFER_FORMAT_MESA        0x31D0
  1487 #define EGL_DRM_BUFFER_USE_MESA           0x31D1
  1488 #define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2
  1489 #define EGL_DRM_BUFFER_MESA               0x31D3
  1490 #define EGL_DRM_BUFFER_STRIDE_MESA        0x31D4
  1491 #define EGL_DRM_BUFFER_USE_SCANOUT_MESA   0x00000001
  1492 #define EGL_DRM_BUFFER_USE_SHARE_MESA     0x00000002
  1493 typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list);
  1494 typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
  1495 #ifdef EGL_EGLEXT_PROTOTYPES
  1496 EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list);
  1497 EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
  1498 #endif
  1499 #endif /* EGL_MESA_drm_image */
  1500 
  1501 #ifndef EGL_MESA_image_dma_buf_export
  1502 #define EGL_MESA_image_dma_buf_export 1
  1503 typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers);
  1504 typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
  1505 #ifdef EGL_EGLEXT_PROTOTYPES
  1506 EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers);
  1507 EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
  1508 #endif
  1509 #endif /* EGL_MESA_image_dma_buf_export */
  1510 
  1511 #ifndef EGL_MESA_platform_gbm
  1512 #define EGL_MESA_platform_gbm 1
  1513 #define EGL_PLATFORM_GBM_MESA             0x31D7
  1514 #endif /* EGL_MESA_platform_gbm */
  1515 
  1516 #ifndef EGL_NOK_swap_region
  1517 #define EGL_NOK_swap_region 1
  1518 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
  1519 #ifdef EGL_EGLEXT_PROTOTYPES
  1520 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
  1521 #endif
  1522 #endif /* EGL_NOK_swap_region */
  1523 
  1524 #ifndef EGL_NOK_swap_region2
  1525 #define EGL_NOK_swap_region2 1
  1526 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
  1527 #ifdef EGL_EGLEXT_PROTOTYPES
  1528 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
  1529 #endif
  1530 #endif /* EGL_NOK_swap_region2 */
  1531 
  1532 #ifndef EGL_NOK_texture_from_pixmap
  1533 #define EGL_NOK_texture_from_pixmap 1
  1534 #define EGL_Y_INVERTED_NOK                0x307F
  1535 #endif /* EGL_NOK_texture_from_pixmap */
  1536 
  1537 #ifndef EGL_NV_3dvision_surface
  1538 #define EGL_NV_3dvision_surface 1
  1539 #define EGL_AUTO_STEREO_NV                0x3136
  1540 #endif /* EGL_NV_3dvision_surface */
  1541 
  1542 #ifndef EGL_NV_coverage_sample
  1543 #define EGL_NV_coverage_sample 1
  1544 #define EGL_COVERAGE_BUFFERS_NV           0x30E0
  1545 #define EGL_COVERAGE_SAMPLES_NV           0x30E1
  1546 #endif /* EGL_NV_coverage_sample */
  1547 
  1548 #ifndef EGL_NV_coverage_sample_resolve
  1549 #define EGL_NV_coverage_sample_resolve 1
  1550 #define EGL_COVERAGE_SAMPLE_RESOLVE_NV    0x3131
  1551 #define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132
  1552 #define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133
  1553 #endif /* EGL_NV_coverage_sample_resolve */
  1554 
  1555 #ifndef EGL_NV_cuda_event
  1556 #define EGL_NV_cuda_event 1
  1557 #define EGL_CUDA_EVENT_HANDLE_NV          0x323B
  1558 #define EGL_SYNC_CUDA_EVENT_NV            0x323C
  1559 #define EGL_SYNC_CUDA_EVENT_COMPLETE_NV   0x323D
  1560 #endif /* EGL_NV_cuda_event */
  1561 
  1562 #ifndef EGL_NV_depth_nonlinear
  1563 #define EGL_NV_depth_nonlinear 1
  1564 #define EGL_DEPTH_ENCODING_NV             0x30E2
  1565 #define EGL_DEPTH_ENCODING_NONE_NV        0
  1566 #define EGL_DEPTH_ENCODING_NONLINEAR_NV   0x30E3
  1567 #endif /* EGL_NV_depth_nonlinear */
  1568 
  1569 #ifndef EGL_NV_device_cuda
  1570 #define EGL_NV_device_cuda 1
  1571 #define EGL_CUDA_DEVICE_NV                0x323A
  1572 #endif /* EGL_NV_device_cuda */
  1573 
  1574 #ifndef EGL_NV_native_query
  1575 #define EGL_NV_native_query 1
  1576 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id);
  1577 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window);
  1578 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap);
  1579 #ifdef EGL_EGLEXT_PROTOTYPES
  1580 EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType *display_id);
  1581 EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window);
  1582 EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap);
  1583 #endif
  1584 #endif /* EGL_NV_native_query */
  1585 
  1586 #ifndef EGL_NV_post_convert_rounding
  1587 #define EGL_NV_post_convert_rounding 1
  1588 #endif /* EGL_NV_post_convert_rounding */
  1589 
  1590 #ifndef EGL_NV_post_sub_buffer
  1591 #define EGL_NV_post_sub_buffer 1
  1592 #define EGL_POST_SUB_BUFFER_SUPPORTED_NV  0x30BE
  1593 typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
  1594 #ifdef EGL_EGLEXT_PROTOTYPES
  1595 EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
  1596 #endif
  1597 #endif /* EGL_NV_post_sub_buffer */
  1598 
  1599 #ifndef EGL_NV_stream_sync
  1600 #define EGL_NV_stream_sync 1
  1601 #define EGL_SYNC_NEW_FRAME_NV             0x321F
  1602 typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list);
  1603 #ifdef EGL_EGLEXT_PROTOTYPES
  1604 EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list);
  1605 #endif
  1606 #endif /* EGL_NV_stream_sync */
  1607 
  1608 #ifndef EGL_NV_sync
  1609 #define EGL_NV_sync 1
  1610 typedef void *EGLSyncNV;
  1611 typedef khronos_utime_nanoseconds_t EGLTimeNV;
  1612 #ifdef KHRONOS_SUPPORT_INT64
  1613 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6
  1614 #define EGL_SYNC_STATUS_NV                0x30E7
  1615 #define EGL_SIGNALED_NV                   0x30E8
  1616 #define EGL_UNSIGNALED_NV                 0x30E9
  1617 #define EGL_SYNC_FLUSH_COMMANDS_BIT_NV    0x0001
  1618 #define EGL_FOREVER_NV                    0xFFFFFFFFFFFFFFFFull
  1619 #define EGL_ALREADY_SIGNALED_NV           0x30EA
  1620 #define EGL_TIMEOUT_EXPIRED_NV            0x30EB
  1621 #define EGL_CONDITION_SATISFIED_NV        0x30EC
  1622 #define EGL_SYNC_TYPE_NV                  0x30ED
  1623 #define EGL_SYNC_CONDITION_NV             0x30EE
  1624 #define EGL_SYNC_FENCE_NV                 0x30EF
  1625 #define EGL_NO_SYNC_NV                    ((EGLSyncNV)0)
  1626 typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
  1627 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
  1628 typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync);
  1629 typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
  1630 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
  1631 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value);
  1632 #ifdef EGL_EGLEXT_PROTOTYPES
  1633 EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
  1634 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync);
  1635 EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync);
  1636 EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
  1637 EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode);
  1638 EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value);
  1639 #endif
  1640 #endif /* KHRONOS_SUPPORT_INT64 */
  1641 #endif /* EGL_NV_sync */
  1642 
  1643 #ifndef EGL_NV_system_time
  1644 #define EGL_NV_system_time 1
  1645 typedef khronos_utime_nanoseconds_t EGLuint64NV;
  1646 #ifdef KHRONOS_SUPPORT_INT64
  1647 typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void);
  1648 typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void);
  1649 #ifdef EGL_EGLEXT_PROTOTYPES
  1650 EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV (void);
  1651 EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void);
  1652 #endif
  1653 #endif /* KHRONOS_SUPPORT_INT64 */
  1654 #endif /* EGL_NV_system_time */
  1655 
  1656 #ifndef EGL_TIZEN_image_native_buffer
  1657 #define EGL_TIZEN_image_native_buffer 1
  1658 #define EGL_NATIVE_BUFFER_TIZEN           0x32A0
  1659 #endif /* EGL_TIZEN_image_native_buffer */
  1660 
  1661 #ifndef EGL_TIZEN_image_native_surface
  1662 #define EGL_TIZEN_image_native_surface 1
  1663 #define EGL_NATIVE_SURFACE_TIZEN          0x32A1
  1664 #endif /* EGL_TIZEN_image_native_surface */
  1665 
  1666 #ifdef __cplusplus
  1667 }
  1668 #endif
  1669 
  1670 #endif /* __eglext_h_ */
  1671 
  1672 
  1673 #endif /* _MSC_VER */