SDL_egl.h 106 KB

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