Subversion Repositories Games.Carmageddon

Rev

Blame | Last modification | View Log | Download | RSS feed

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