zgl_EGL.pas 78 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185
  1. (*
  2. * Copyright (c) 2023 Serge - SSW
  3. *
  4. * This software is provided 'as-is', without any express or
  5. * implied warranty. In no event will the authors be held
  6. * liable for any damages arising from the use of this software.
  7. *
  8. * Permission is granted to anyone to use this software for any purpose,
  9. * including commercial applications, and to alter it and redistribute
  10. * it freely, subject to the following restrictions:
  11. *
  12. * 1. The origin of this software must not be misrepresented;
  13. * you must not claim that you wrote the original software.
  14. * If you use this software in a product, an acknowledgment
  15. * in the product documentation would be appreciated but
  16. * is not required.
  17. *
  18. * 2. Altered source versions must be plainly marked as such,
  19. * and must not be misrepresented as being the original software.
  20. *
  21. * 3. This notice may not be removed or altered from any
  22. * source distribution.
  23. *)
  24. // Copyright 2013-2020 The Khronos Group Inc.
  25. // SPDX-License-Identifier: Apache-2.0
  26. //
  27. // This header is generated from the Khronos EGL XML API Registry.
  28. // The current version of the Registry, generator scripts
  29. // used to make the header, and the header can be found at
  30. // http://www.khronos.org/registry/egl
  31. unit zgl_EGL;
  32. {$I zgl_config.cfg}
  33. {$I egl_conf.cfg}
  34. interface
  35. {$IFDEF FPC}
  36. {$PACKRECORDS C}
  37. {$ENDIF}
  38. {
  39. ** Copyright 2013-2020 The Khronos Group Inc.
  40. ** SPDX-License-Identifier: Apache-2.0
  41. **
  42. ** This header is generated from the Khronos EGL XML API Registry.
  43. ** The current version of the Registry, generator scripts
  44. ** used to make the header, and the header can be found at
  45. ** http://www.khronos.org/registry/egl
  46. **
  47. ** Khronos $Git commit SHA1: 8c62b915dd $ on $Git commit date: 2021-11-05 23:32:01 -0400 $
  48. }
  49. {$IfNDef Windows}
  50. {$DEFINE stdcall := cdecl}
  51. {$ENDIF}
  52. uses
  53. {$IfDef LINUX} // !!! not Wayland !!!
  54. x, xlib,
  55. {$EndIf}
  56. zgl_utils;
  57. const
  58. EGL_ALPHA_SIZE = $3021;
  59. EGL_BAD_ACCESS = $3002;
  60. EGL_BAD_ALLOC = $3003;
  61. EGL_BAD_ATTRIBUTE = $3004;
  62. EGL_BAD_CONFIG = $3005;
  63. EGL_BAD_CONTEXT = $3006;
  64. EGL_BAD_CURRENT_SURFACE = $3007;
  65. EGL_BAD_DISPLAY = $3008;
  66. EGL_BAD_MATCH = $3009;
  67. EGL_BAD_NATIVE_PIXMAP = $300A;
  68. EGL_BAD_NATIVE_WINDOW = $300B;
  69. EGL_BAD_PARAMETER = $300C;
  70. EGL_BAD_SURFACE = $300D;
  71. EGL_BLUE_SIZE = $3022;
  72. EGL_BUFFER_SIZE = $3020;
  73. EGL_CONFIG_CAVEAT = $3027;
  74. EGL_CONFIG_ID = $3028;
  75. EGL_CORE_NATIVE_ENGINE = $305B;
  76. EGL_DEPTH_SIZE = $3025;
  77. EGL_DRAW = $3059;
  78. EGL_EXTENSIONS = $3055;
  79. EGL_FALSE = 0;
  80. EGL_GREEN_SIZE = $3023;
  81. EGL_HEIGHT = $3056;
  82. EGL_LARGEST_PBUFFER = $3058;
  83. EGL_LEVEL = $3029;
  84. EGL_MAX_PBUFFER_HEIGHT = $302A;
  85. EGL_MAX_PBUFFER_PIXELS = $302B;
  86. EGL_MAX_PBUFFER_WIDTH = $302C;
  87. EGL_NATIVE_RENDERABLE = $302D;
  88. EGL_NATIVE_VISUAL_ID = $302E;
  89. EGL_NATIVE_VISUAL_TYPE = $302F;
  90. EGL_NONE = $3038;
  91. EGL_NON_CONFORMANT_CONFIG = $3051;
  92. EGL_NOT_INITIALIZED = $3001;
  93. EGL_PBUFFER_BIT = $0001;
  94. EGL_PIXMAP_BIT = $0002;
  95. EGL_READ = $305A;
  96. EGL_RED_SIZE = $3024;
  97. EGL_SAMPLES = $3031;
  98. EGL_SAMPLE_BUFFERS = $3032;
  99. EGL_SLOW_CONFIG = $3050;
  100. EGL_STENCIL_SIZE = $3026;
  101. EGL_SUCCESS = $3000;
  102. EGL_SURFACE_TYPE = $3033;
  103. EGL_TRANSPARENT_BLUE_VALUE = $3035;
  104. EGL_TRANSPARENT_GREEN_VALUE = $3036;
  105. EGL_TRANSPARENT_RED_VALUE = $3037;
  106. EGL_TRANSPARENT_RGB = $3052;
  107. EGL_TRANSPARENT_TYPE = $3034;
  108. EGL_TRUE = 1;
  109. EGL_VENDOR = $3053;
  110. EGL_VERSION = $3054;
  111. EGL_WIDTH = $3057;
  112. EGL_WINDOW_BIT = $0004;
  113. EGL_BACK_BUFFER = $3084;
  114. EGL_BIND_TO_TEXTURE_RGB = $3039;
  115. EGL_BIND_TO_TEXTURE_RGBA = $303A;
  116. EGL_CONTEXT_LOST = $300E;
  117. EGL_MIN_SWAP_INTERVAL = $303B;
  118. EGL_MAX_SWAP_INTERVAL = $303C;
  119. EGL_MIPMAP_TEXTURE = $3082;
  120. EGL_MIPMAP_LEVEL = $3083;
  121. EGL_NO_TEXTURE = $305C;
  122. EGL_TEXTURE_2D = $305F;
  123. EGL_TEXTURE_FORMAT = $3080;
  124. EGL_TEXTURE_RGB = $305D;
  125. EGL_TEXTURE_RGBA = $305E;
  126. EGL_TEXTURE_TARGET = $3081;
  127. EGL_ALPHA_FORMAT = $3088;
  128. EGL_ALPHA_FORMAT_NONPRE = $308B;
  129. EGL_ALPHA_FORMAT_PRE = $308C;
  130. EGL_ALPHA_MASK_SIZE = $303E;
  131. EGL_BUFFER_PRESERVED = $3094;
  132. EGL_BUFFER_DESTROYED = $3095;
  133. EGL_CLIENT_APIS = $308D;
  134. EGL_COLORSPACE = $3087;
  135. EGL_COLORSPACE_sRGB = $3089;
  136. EGL_COLORSPACE_LINEAR = $308A;
  137. EGL_COLOR_BUFFER_TYPE = $303F;
  138. EGL_CONTEXT_CLIENT_TYPE = $3097;
  139. EGL_DISPLAY_SCALING = 10000;
  140. EGL_HORIZONTAL_RESOLUTION = $3090;
  141. EGL_LUMINANCE_BUFFER = $308F;
  142. EGL_LUMINANCE_SIZE = $303D;
  143. EGL_OPENGL_ES_BIT = $0001;
  144. EGL_OPENVG_BIT = $0002;
  145. EGL_OPENGL_ES_API = $30A0;
  146. EGL_OPENVG_API = $30A1;
  147. EGL_OPENVG_IMAGE = $3096;
  148. EGL_PIXEL_ASPECT_RATIO = $3092;
  149. EGL_RENDERABLE_TYPE = $3040;
  150. EGL_RENDER_BUFFER = $3086;
  151. EGL_RGB_BUFFER = $308E;
  152. EGL_SINGLE_BUFFER = $3085;
  153. EGL_SWAP_BEHAVIOR = $3093;
  154. EGL_VERTICAL_RESOLUTION = $3091;
  155. EGL_CONFORMANT = $3042;
  156. EGL_CONTEXT_CLIENT_VERSION = $3098;
  157. EGL_MATCH_NATIVE_PIXMAP = $3041;
  158. EGL_OPENGL_ES2_BIT = $0004;
  159. EGL_VG_ALPHA_FORMAT = $3088;
  160. EGL_VG_ALPHA_FORMAT_NONPRE = $308B;
  161. EGL_VG_ALPHA_FORMAT_PRE = $308C;
  162. EGL_VG_ALPHA_FORMAT_PRE_BIT = $0040;
  163. EGL_VG_COLORSPACE = $3087;
  164. EGL_VG_COLORSPACE_sRGB = $3089;
  165. EGL_VG_COLORSPACE_LINEAR = $308A;
  166. EGL_VG_COLORSPACE_LINEAR_BIT = $0020;
  167. EGL_MULTISAMPLE_RESOLVE_BOX_BIT = $0200;
  168. EGL_MULTISAMPLE_RESOLVE = $3099;
  169. EGL_MULTISAMPLE_RESOLVE_DEFAULT = $309A;
  170. EGL_MULTISAMPLE_RESOLVE_BOX = $309B;
  171. EGL_OPENGL_API = $30A2;
  172. EGL_OPENGL_BIT = $0008;
  173. EGL_SWAP_BEHAVIOR_PRESERVED_BIT = $0400;
  174. EGL_CONTEXT_MAJOR_VERSION = $3098;
  175. EGL_CONTEXT_MINOR_VERSION = $30FB;
  176. EGL_CONTEXT_OPENGL_PROFILE_MASK = $30FD;
  177. EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY = $31BD;
  178. EGL_NO_RESET_NOTIFICATION = $31BE;
  179. EGL_LOSE_CONTEXT_ON_RESET = $31BF;
  180. EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT = $00000001;
  181. EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT = $00000002;
  182. EGL_CONTEXT_OPENGL_DEBUG = $31B0;
  183. EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE = $31B1;
  184. EGL_CONTEXT_OPENGL_ROBUST_ACCESS = $31B2;
  185. EGL_OPENGL_ES3_BIT = $00000040;
  186. EGL_CL_EVENT_HANDLE = $309C;
  187. EGL_SYNC_CL_EVENT = $30FE;
  188. EGL_SYNC_CL_EVENT_COMPLETE = $30FF;
  189. EGL_SYNC_PRIOR_COMMANDS_COMPLETE = $30F0;
  190. EGL_SYNC_TYPE = $30F7;
  191. EGL_SYNC_STATUS = $30F1;
  192. EGL_SYNC_CONDITION = $30F8;
  193. EGL_SIGNALED = $30F2;
  194. EGL_UNSIGNALED = $30F3;
  195. EGL_SYNC_FLUSH_COMMANDS_BIT = $0001;
  196. EGL_FOREVER = $FFFFFFFFFFFFFFFF;
  197. EGL_TIMEOUT_EXPIRED = $30F5;
  198. EGL_CONDITION_SATISFIED = $30F6;
  199. EGL_SYNC_FENCE = $30F9;
  200. EGL_GL_COLORSPACE = $309D;
  201. EGL_GL_COLORSPACE_SRGB = $3089;
  202. EGL_GL_COLORSPACE_LINEAR = $308A;
  203. EGL_GL_RENDERBUFFER = $30B9;
  204. EGL_GL_TEXTURE_2D = $30B1;
  205. EGL_GL_TEXTURE_LEVEL = $30BC;
  206. EGL_GL_TEXTURE_3D = $30B2;
  207. EGL_GL_TEXTURE_ZOFFSET = $30BD;
  208. EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X = $30B3;
  209. EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $30B4;
  210. EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $30B5;
  211. EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $30B6;
  212. EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $30B7;
  213. EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $30B8;
  214. EGL_IMAGE_PRESERVED = $30D2;
  215. // EGL extended.
  216. // EGL_EGLEXT_VERSION = 20211116;
  217. EGL_CL_EVENT_HANDLE_KHR = $309C;
  218. EGL_SYNC_CL_EVENT_KHR = $30FE;
  219. EGL_SYNC_CL_EVENT_COMPLETE_KHR = $30FF;
  220. EGL_KHR_client_get_all_proc_addresses = 1;
  221. EGL_CONFORMANT_KHR = $3042;
  222. EGL_VG_COLORSPACE_LINEAR_BIT_KHR = $0020;
  223. EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR = $0040;
  224. EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR = 0;
  225. EGL_CONTEXT_RELEASE_BEHAVIOR_KHR = $2097;
  226. EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = $2098;
  227. EGL_CONTEXT_MAJOR_VERSION_KHR = $3098;
  228. EGL_CONTEXT_MINOR_VERSION_KHR = $30FB;
  229. EGL_CONTEXT_FLAGS_KHR = $30FC;
  230. EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR = $30FD;
  231. EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR = $31BD;
  232. EGL_NO_RESET_NOTIFICATION_KHR = $31BE;
  233. EGL_LOSE_CONTEXT_ON_RESET_KHR = $31BF;
  234. EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR = $00000001;
  235. EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR = $00000002;
  236. EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR = $00000004;
  237. EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR = $00000001;
  238. EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR = $00000002;
  239. EGL_OPENGL_ES3_BIT_KHR = $00000040;
  240. EGL_CONTEXT_OPENGL_NO_ERROR_KHR = $31B3;
  241. EGL_OBJECT_THREAD_KHR = $33B0;
  242. EGL_OBJECT_DISPLAY_KHR = $33B1;
  243. EGL_OBJECT_CONTEXT_KHR = $33B2;
  244. EGL_OBJECT_SURFACE_KHR = $33B3;
  245. EGL_OBJECT_IMAGE_KHR = $33B4;
  246. EGL_OBJECT_SYNC_KHR = $33B5;
  247. EGL_OBJECT_STREAM_KHR = $33B6;
  248. EGL_DEBUG_MSG_CRITICAL_KHR = $33B9;
  249. EGL_DEBUG_MSG_ERROR_KHR = $33BA;
  250. EGL_DEBUG_MSG_WARN_KHR = $33BB;
  251. EGL_DEBUG_MSG_INFO_KHR = $33BC;
  252. EGL_DEBUG_CALLBACK_KHR = $33B8;
  253. EGL_TRACK_REFERENCES_KHR = $3352;
  254. EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR = $30F0;
  255. EGL_SYNC_CONDITION_KHR = $30F8;
  256. EGL_SYNC_FENCE_KHR = $30F9;
  257. EGL_KHR_gl_colorspace = 1;
  258. EGL_GL_COLORSPACE_KHR = $309D;
  259. EGL_GL_COLORSPACE_SRGB_KHR = $3089;
  260. EGL_GL_COLORSPACE_LINEAR_KHR = $308A;
  261. EGL_GL_RENDERBUFFER_KHR = $30B9;
  262. EGL_GL_TEXTURE_2D_KHR = $30B1;
  263. EGL_GL_TEXTURE_LEVEL_KHR = $30BC;
  264. EGL_GL_TEXTURE_3D_KHR = $30B2;
  265. EGL_GL_TEXTURE_ZOFFSET_KHR = $30BD;
  266. EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR = $30B3;
  267. EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR = $30B4;
  268. EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR = $30B5;
  269. EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR = $30B6;
  270. EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR = $30B7;
  271. EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR = $30B8;
  272. EGL_NATIVE_PIXMAP_KHR = $30B0;
  273. EGL_IMAGE_PRESERVED_KHR = $30D2;
  274. EGL_READ_SURFACE_BIT_KHR = $0001;
  275. EGL_WRITE_SURFACE_BIT_KHR = $0002;
  276. EGL_LOCK_SURFACE_BIT_KHR = $0080;
  277. EGL_OPTIMAL_FORMAT_BIT_KHR = $0100;
  278. EGL_MATCH_FORMAT_KHR = $3043;
  279. EGL_FORMAT_RGB_565_EXACT_KHR = $30C0;
  280. EGL_FORMAT_RGB_565_KHR = $30C1;
  281. EGL_FORMAT_RGBA_8888_EXACT_KHR = $30C2;
  282. EGL_FORMAT_RGBA_8888_KHR = $30C3;
  283. EGL_MAP_PRESERVE_PIXELS_KHR = $30C4;
  284. EGL_LOCK_USAGE_HINT_KHR = $30C5;
  285. EGL_BITMAP_POINTER_KHR = $30C6;
  286. EGL_BITMAP_PITCH_KHR = $30C7;
  287. EGL_BITMAP_ORIGIN_KHR = $30C8;
  288. EGL_BITMAP_PIXEL_RED_OFFSET_KHR = $30C9;
  289. EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR = $30CA;
  290. EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR = $30CB;
  291. EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR = $30CC;
  292. EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR = $30CD;
  293. EGL_LOWER_LEFT_KHR = $30CE;
  294. EGL_UPPER_LEFT_KHR = $30CF;
  295. EGL_BITMAP_PIXEL_SIZE_KHR = $3110;
  296. EGL_MUTABLE_RENDER_BUFFER_BIT_KHR = $1000;
  297. EGL_BUFFER_AGE_KHR = $313D;
  298. EGL_PLATFORM_ANDROID_KHR = $3141;
  299. EGL_PLATFORM_GBM_KHR = $31D7;
  300. EGL_PLATFORM_WAYLAND_KHR = $31D8;
  301. EGL_PLATFORM_X11_KHR = $31D5;
  302. EGL_PLATFORM_X11_SCREEN_KHR = $31D6;
  303. EGL_SYNC_STATUS_KHR = $30F1;
  304. EGL_SIGNALED_KHR = $30F2;
  305. EGL_UNSIGNALED_KHR = $30F3;
  306. EGL_TIMEOUT_EXPIRED_KHR = $30F5;
  307. EGL_CONDITION_SATISFIED_KHR = $30F6;
  308. EGL_SYNC_TYPE_KHR = $30F7;
  309. EGL_SYNC_REUSABLE_KHR = $30FA;
  310. EGL_SYNC_FLUSH_COMMANDS_BIT_KHR = $0001;
  311. {$IfDef CPU64}
  312. EGL_FOREVER_KHR = $FFFFFFFFFFFFFFFF; // сделано только для 64-х битных систем.
  313. {$EndIf}
  314. EGL_CONSUMER_LATENCY_USEC_KHR = $3210;
  315. EGL_PRODUCER_FRAME_KHR = $3212;
  316. EGL_CONSUMER_FRAME_KHR = $3213;
  317. EGL_STREAM_STATE_KHR = $3214;
  318. EGL_STREAM_STATE_CREATED_KHR = $3215;
  319. EGL_STREAM_STATE_CONNECTING_KHR = $3216;
  320. EGL_STREAM_STATE_EMPTY_KHR = $3217;
  321. EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR = $3218;
  322. EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR = $3219;
  323. EGL_STREAM_STATE_DISCONNECTED_KHR = $321A;
  324. EGL_BAD_STREAM_KHR = $321B;
  325. EGL_BAD_STATE_KHR = $321C;
  326. EGL_STREAM_FIFO_LENGTH_KHR = $31FC;
  327. EGL_STREAM_TIME_NOW_KHR = $31FD;
  328. EGL_STREAM_TIME_CONSUMER_KHR = $31FE;
  329. EGL_STREAM_TIME_PRODUCER_KHR = $31FF;
  330. EGL_VG_PARENT_IMAGE_KHR = $30BA;
  331. EGL_NATIVE_BUFFER_USAGE_ANDROID = $3143;
  332. EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID = $00000001;
  333. EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID = $00000002;
  334. EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID = $00000004;
  335. EGL_FRAMEBUFFER_TARGET_ANDROID = $3147;
  336. EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID = $314C;
  337. EGL_TIMESTAMPS_ANDROID = $3430;
  338. EGL_COMPOSITE_DEADLINE_ANDROID = $3431;
  339. EGL_COMPOSITE_INTERVAL_ANDROID = $3432;
  340. EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID = $3433;
  341. EGL_REQUESTED_PRESENT_TIME_ANDROID = $3434;
  342. EGL_RENDERING_COMPLETE_TIME_ANDROID = $3435;
  343. EGL_COMPOSITION_LATCH_TIME_ANDROID = $3436;
  344. EGL_FIRST_COMPOSITION_START_TIME_ANDROID = $3437;
  345. EGL_LAST_COMPOSITION_START_TIME_ANDROID = $3438;
  346. EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID = $3439;
  347. EGL_DISPLAY_PRESENT_TIME_ANDROID = $343A;
  348. EGL_DEQUEUE_READY_TIME_ANDROID = $343B;
  349. EGL_READS_DONE_TIME_ANDROID = $343C;
  350. EGL_NATIVE_BUFFER_ANDROID = $3140;
  351. EGL_SYNC_NATIVE_FENCE_ANDROID = $3144;
  352. EGL_SYNC_NATIVE_FENCE_FD_ANDROID = $3145;
  353. EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID = $3146;
  354. EGL_NO_NATIVE_FENCE_FD_ANDROID = -(1);
  355. EGL_RECORDABLE_ANDROID = $3142;
  356. EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE = $3200;
  357. EGL_D3D9_DEVICE_ANGLE = $33A0;
  358. EGL_D3D11_DEVICE_ANGLE = $33A1;
  359. EGL_FIXED_SIZE_ANGLE = $3201;
  360. EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM = $3287;
  361. EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM = $3288;
  362. EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM = $328A;
  363. EGL_DISCARD_SAMPLES_ARM = $3286;
  364. EGL_FRONT_BUFFER_EXT = $3464;
  365. EGL_BUFFER_AGE_EXT = $313D;
  366. EGL_SYNC_CLIENT_EXT = $3364;
  367. EGL_SYNC_CLIENT_SIGNAL_EXT = $3365;
  368. EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT = $3460;
  369. EGL_EXTERNAL_REF_ID_EXT = $3461;
  370. EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT = $3462;
  371. EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT = $3463;
  372. EGL_CONFIG_SELECT_GROUP_EXT = $34C0;
  373. EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT = $30BF;
  374. EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT = $3138;
  375. EGL_NO_RESET_NOTIFICATION_EXT = $31BE;
  376. EGL_LOSE_CONTEXT_ON_RESET_EXT = $31BF;
  377. EGL_BAD_DEVICE_EXT = $322B;
  378. EGL_DEVICE_EXT = $322C;
  379. EGL_DRM_DEVICE_FILE_EXT = $3233;
  380. EGL_DRM_MASTER_FD_EXT = $333C;
  381. EGL_DRM_RENDER_NODE_FILE_EXT = $3377;
  382. EGL_OPENWF_DEVICE_ID_EXT = $3237;
  383. EGL_OPENWF_DEVICE_EXT = $333D;
  384. EGL_DEVICE_UUID_EXT = $335C;
  385. EGL_DRIVER_UUID_EXT = $335D;
  386. EGL_DRIVER_NAME_EXT = $335E;
  387. EGL_RENDERER_EXT = $335F;
  388. EGL_GL_COLORSPACE_BT2020_HLG_EXT = $3540;
  389. EGL_GL_COLORSPACE_BT2020_LINEAR_EXT = $333F;
  390. EGL_GL_COLORSPACE_BT2020_PQ_EXT = $3340;
  391. EGL_GL_COLORSPACE_DISPLAY_P3_EXT = $3363;
  392. EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT = $3362;
  393. EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT = $3490;
  394. EGL_GL_COLORSPACE_SCRGB_EXT = $3351;
  395. EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT = $3350;
  396. EGL_LINUX_DMA_BUF_EXT = $3270;
  397. EGL_LINUX_DRM_FOURCC_EXT = $3271;
  398. EGL_DMA_BUF_PLANE0_FD_EXT = $3272;
  399. EGL_DMA_BUF_PLANE0_OFFSET_EXT = $3273;
  400. EGL_DMA_BUF_PLANE0_PITCH_EXT = $3274;
  401. EGL_DMA_BUF_PLANE1_FD_EXT = $3275;
  402. EGL_DMA_BUF_PLANE1_OFFSET_EXT = $3276;
  403. EGL_DMA_BUF_PLANE1_PITCH_EXT = $3277;
  404. EGL_DMA_BUF_PLANE2_FD_EXT = $3278;
  405. EGL_DMA_BUF_PLANE2_OFFSET_EXT = $3279;
  406. EGL_DMA_BUF_PLANE2_PITCH_EXT = $327A;
  407. EGL_YUV_COLOR_SPACE_HINT_EXT = $327B;
  408. EGL_SAMPLE_RANGE_HINT_EXT = $327C;
  409. EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT = $327D;
  410. EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT = $327E;
  411. EGL_ITU_REC601_EXT = $327F;
  412. EGL_ITU_REC709_EXT = $3280;
  413. EGL_ITU_REC2020_EXT = $3281;
  414. EGL_YUV_FULL_RANGE_EXT = $3282;
  415. EGL_YUV_NARROW_RANGE_EXT = $3283;
  416. EGL_YUV_CHROMA_SITING_0_EXT = $3284;
  417. EGL_YUV_CHROMA_SITING_0_5_EXT = $3285;
  418. EGL_DMA_BUF_PLANE3_FD_EXT = $3440;
  419. EGL_DMA_BUF_PLANE3_OFFSET_EXT = $3441;
  420. EGL_DMA_BUF_PLANE3_PITCH_EXT = $3442;
  421. EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT = $3443;
  422. EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT = $3444;
  423. EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT = $3445;
  424. EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT = $3446;
  425. EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT = $3447;
  426. EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT = $3448;
  427. EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT = $3449;
  428. EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT = $344A;
  429. EGL_GL_COLORSPACE_DEFAULT_EXT = $314D;
  430. EGL_IMPORT_SYNC_TYPE_EXT = $3470;
  431. EGL_IMPORT_IMPLICIT_SYNC_EXT = $3471;
  432. EGL_IMPORT_EXPLICIT_SYNC_EXT = $3472;
  433. EGL_MULTIVIEW_VIEW_COUNT_EXT = $3134;
  434. EGL_BAD_OUTPUT_LAYER_EXT = $322D;
  435. EGL_BAD_OUTPUT_PORT_EXT = $322E;
  436. EGL_SWAP_INTERVAL_EXT = $322F;
  437. EGL_DRM_CRTC_EXT = $3234;
  438. EGL_DRM_PLANE_EXT = $3235;
  439. EGL_DRM_CONNECTOR_EXT = $3236;
  440. EGL_OPENWF_PIPELINE_ID_EXT = $3238;
  441. EGL_OPENWF_PORT_ID_EXT = $3239;
  442. EGL_COLOR_COMPONENT_TYPE_EXT = $3339;
  443. EGL_COLOR_COMPONENT_TYPE_FIXED_EXT = $333A;
  444. EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT = $333B;
  445. EGL_PLATFORM_DEVICE_EXT = $313F;
  446. EGL_PLATFORM_WAYLAND_EXT = $31D8;
  447. EGL_PLATFORM_X11_EXT = $31D5;
  448. EGL_PLATFORM_X11_SCREEN_EXT = $31D6;
  449. EGL_PLATFORM_XCB_EXT = $31DC;
  450. EGL_PLATFORM_XCB_SCREEN_EXT = $31DE;
  451. EGL_PRESENT_OPAQUE_EXT = $31DF;
  452. EGL_PROTECTED_CONTENT_EXT = $32C0;
  453. EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT = $3360;
  454. EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT = $3361;
  455. EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT = $3341;
  456. EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT = $3342;
  457. EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT = $3343;
  458. EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT = $3344;
  459. EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT = $3345;
  460. EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT = $3346;
  461. EGL_SMPTE2086_WHITE_POINT_X_EXT = $3347;
  462. EGL_SMPTE2086_WHITE_POINT_Y_EXT = $3348;
  463. EGL_SMPTE2086_MAX_LUMINANCE_EXT = $3349;
  464. EGL_SMPTE2086_MIN_LUMINANCE_EXT = $334A;
  465. EGL_METADATA_SCALING_EXT = 50000;
  466. EGL_SURFACE_COMPRESSION_EXT = $34B0;
  467. EGL_SURFACE_COMPRESSION_PLANE1_EXT = $328E;
  468. EGL_SURFACE_COMPRESSION_PLANE2_EXT = $328F;
  469. EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT = $34B1;
  470. EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = $34B2;
  471. EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT = $34B4;
  472. EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT = $34B5;
  473. EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT = $34B6;
  474. EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT = $34B7;
  475. EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT = $34B8;
  476. EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT = $34B9;
  477. EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT = $34BA;
  478. EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT = $34BB;
  479. EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT = $34BC;
  480. EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT = $34BD;
  481. EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT = $34BE;
  482. EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT = $34BF;
  483. EGL_YUV_ORDER_EXT = $3301;
  484. EGL_YUV_NUMBER_OF_PLANES_EXT = $3311;
  485. EGL_YUV_SUBSAMPLE_EXT = $3312;
  486. EGL_YUV_DEPTH_RANGE_EXT = $3317;
  487. EGL_YUV_CSC_STANDARD_EXT = $330A;
  488. EGL_YUV_PLANE_BPP_EXT = $331A;
  489. EGL_YUV_BUFFER_EXT = $3300;
  490. EGL_YUV_ORDER_YUV_EXT = $3302;
  491. EGL_YUV_ORDER_YVU_EXT = $3303;
  492. EGL_YUV_ORDER_YUYV_EXT = $3304;
  493. EGL_YUV_ORDER_UYVY_EXT = $3305;
  494. EGL_YUV_ORDER_YVYU_EXT = $3306;
  495. EGL_YUV_ORDER_VYUY_EXT = $3307;
  496. EGL_YUV_ORDER_AYUV_EXT = $3308;
  497. EGL_YUV_SUBSAMPLE_4_2_0_EXT = $3313;
  498. EGL_YUV_SUBSAMPLE_4_2_2_EXT = $3314;
  499. EGL_YUV_SUBSAMPLE_4_4_4_EXT = $3315;
  500. EGL_YUV_DEPTH_RANGE_LIMITED_EXT = $3318;
  501. EGL_YUV_DEPTH_RANGE_FULL_EXT = $3319;
  502. EGL_YUV_CSC_STANDARD_601_EXT = $330B;
  503. EGL_YUV_CSC_STANDARD_709_EXT = $330C;
  504. EGL_YUV_CSC_STANDARD_2020_EXT = $330D;
  505. EGL_YUV_PLANE_BPP_0_EXT = $331B;
  506. EGL_YUV_PLANE_BPP_8_EXT = $331C;
  507. EGL_YUV_PLANE_BPP_10_EXT = $331D;
  508. EGL_CLIENT_PIXMAP_POINTER_HI = $8F74;
  509. EGL_COLOR_FORMAT_HI = $8F70;
  510. EGL_COLOR_RGB_HI = $8F71;
  511. EGL_COLOR_RGBA_HI = $8F72;
  512. EGL_COLOR_ARGB_HI = $8F73;
  513. EGL_CONTEXT_PRIORITY_LEVEL_IMG = $3100;
  514. EGL_CONTEXT_PRIORITY_HIGH_IMG = $3101;
  515. EGL_CONTEXT_PRIORITY_MEDIUM_IMG = $3102;
  516. EGL_CONTEXT_PRIORITY_LOW_IMG = $3103;
  517. EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG = $3105;
  518. EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG = $3106;
  519. EGL_DRM_BUFFER_FORMAT_MESA = $31D0;
  520. EGL_DRM_BUFFER_USE_MESA = $31D1;
  521. EGL_DRM_BUFFER_FORMAT_ARGB32_MESA = $31D2;
  522. EGL_DRM_BUFFER_MESA = $31D3;
  523. EGL_DRM_BUFFER_STRIDE_MESA = $31D4;
  524. EGL_DRM_BUFFER_USE_SCANOUT_MESA = $00000001;
  525. EGL_DRM_BUFFER_USE_SHARE_MESA = $00000002;
  526. EGL_DRM_BUFFER_USE_CURSOR_MESA = $00000004;
  527. EGL_PLATFORM_GBM_MESA = $31D7;
  528. EGL_PLATFORM_SURFACELESS_MESA = $31DD;
  529. EGL_Y_INVERTED_NOK = $307F;
  530. EGL_AUTO_STEREO_NV = $3136;
  531. EGL_CONTEXT_PRIORITY_REALTIME_NV = $3357;
  532. EGL_COVERAGE_BUFFERS_NV = $30E0;
  533. EGL_COVERAGE_SAMPLES_NV = $30E1;
  534. EGL_COVERAGE_SAMPLE_RESOLVE_NV = $3131;
  535. EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV = $3132;
  536. EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV = $3133;
  537. EGL_CUDA_EVENT_HANDLE_NV = $323B;
  538. EGL_SYNC_CUDA_EVENT_NV = $323C;
  539. EGL_SYNC_CUDA_EVENT_COMPLETE_NV = $323D;
  540. EGL_DEPTH_ENCODING_NV = $30E2;
  541. EGL_DEPTH_ENCODING_NONE_NV = 0;
  542. EGL_DEPTH_ENCODING_NONLINEAR_NV = $30E3;
  543. EGL_CUDA_DEVICE_NV = $323A;
  544. EGL_POST_SUB_BUFFER_SUPPORTED_NV = $30BE;
  545. EGL_QUADRUPLE_BUFFER_NV = $3231;
  546. EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV = $334C;
  547. EGL_STREAM_CONSUMER_IMAGE_NV = $3373;
  548. EGL_STREAM_IMAGE_ADD_NV = $3374;
  549. EGL_STREAM_IMAGE_REMOVE_NV = $3375;
  550. EGL_STREAM_IMAGE_AVAILABLE_NV = $3376;
  551. EGL_STREAM_CONSUMER_IMAGE_USE_SCANOUT_NV = $3378;
  552. EGL_YUV_PLANE0_TEXTURE_UNIT_NV = $332C;
  553. EGL_YUV_PLANE1_TEXTURE_UNIT_NV = $332D;
  554. EGL_YUV_PLANE2_TEXTURE_UNIT_NV = $332E;
  555. EGL_STREAM_CROSS_DISPLAY_NV = $334E;
  556. EGL_STREAM_CROSS_OBJECT_NV = $334D;
  557. EGL_STREAM_CROSS_PARTITION_NV = $323F;
  558. EGL_STREAM_CROSS_PROCESS_NV = $3245;
  559. EGL_STREAM_CROSS_SYSTEM_NV = $334F;
  560. EGL_STREAM_DMA_NV = $3371;
  561. EGL_STREAM_DMA_SERVER_NV = $3372;
  562. EGL_PENDING_FRAME_NV = $3329;
  563. EGL_STREAM_TIME_PENDING_NV = $332A;
  564. EGL_STREAM_FIFO_SYNCHRONOUS_NV = $3336;
  565. EGL_PRODUCER_MAX_FRAME_HINT_NV = $3337;
  566. EGL_CONSUMER_MAX_FRAME_HINT_NV = $3338;
  567. EGL_MAX_STREAM_METADATA_BLOCKS_NV = $3250;
  568. EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV = $3251;
  569. EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV = $3252;
  570. EGL_PRODUCER_METADATA_NV = $3253;
  571. EGL_CONSUMER_METADATA_NV = $3254;
  572. EGL_PENDING_METADATA_NV = $3328;
  573. EGL_METADATA0_SIZE_NV = $3255;
  574. EGL_METADATA1_SIZE_NV = $3256;
  575. EGL_METADATA2_SIZE_NV = $3257;
  576. EGL_METADATA3_SIZE_NV = $3258;
  577. EGL_METADATA0_TYPE_NV = $3259;
  578. EGL_METADATA1_TYPE_NV = $325A;
  579. EGL_METADATA2_TYPE_NV = $325B;
  580. EGL_METADATA3_TYPE_NV = $325C;
  581. EGL_STREAM_FRAME_ORIGIN_X_NV = $3366;
  582. EGL_STREAM_FRAME_ORIGIN_Y_NV = $3367;
  583. EGL_STREAM_FRAME_MAJOR_AXIS_NV = $3368;
  584. EGL_CONSUMER_AUTO_ORIENTATION_NV = $3369;
  585. EGL_PRODUCER_AUTO_ORIENTATION_NV = $336A;
  586. EGL_LEFT_NV = $336B;
  587. EGL_RIGHT_NV = $336C;
  588. EGL_TOP_NV = $336D;
  589. EGL_BOTTOM_NV = $336E;
  590. EGL_X_AXIS_NV = $336F;
  591. EGL_Y_AXIS_NV = $3370;
  592. EGL_STREAM_STATE_INITIALIZING_NV = $3240;
  593. EGL_STREAM_TYPE_NV = $3241;
  594. EGL_STREAM_PROTOCOL_NV = $3242;
  595. EGL_STREAM_ENDPOINT_NV = $3243;
  596. EGL_STREAM_LOCAL_NV = $3244;
  597. EGL_STREAM_PRODUCER_NV = $3247;
  598. EGL_STREAM_CONSUMER_NV = $3248;
  599. EGL_STREAM_PROTOCOL_FD_NV = $3246;
  600. EGL_SUPPORT_RESET_NV = $3334;
  601. EGL_SUPPORT_REUSE_NV = $3335;
  602. EGL_STREAM_PROTOCOL_SOCKET_NV = $324B;
  603. EGL_SOCKET_HANDLE_NV = $324C;
  604. EGL_SOCKET_TYPE_NV = $324D;
  605. EGL_SOCKET_TYPE_INET_NV = $324F;
  606. EGL_SOCKET_TYPE_UNIX_NV = $324E;
  607. EGL_SYNC_NEW_FRAME_NV = $321F;
  608. EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV = $30E6;
  609. EGL_SYNC_STATUS_NV = $30E7;
  610. EGL_SIGNALED_NV = $30E8;
  611. EGL_UNSIGNALED_NV = $30E9;
  612. EGL_SYNC_FLUSH_COMMANDS_BIT_NV = $0001;
  613. EGL_FOREVER_NV = $FFFFFFFFFFFFFFFF;
  614. EGL_ALREADY_SIGNALED_NV = $30EA;
  615. EGL_TIMEOUT_EXPIRED_NV = $30EB;
  616. EGL_CONDITION_SATISFIED_NV = $30EC;
  617. EGL_SYNC_TYPE_NV = $30ED;
  618. EGL_SYNC_CONDITION_NV = $30EE;
  619. EGL_SYNC_FENCE_NV = $30EF;
  620. EGL_TRIPLE_BUFFER_NV = $3230;
  621. EGL_NATIVE_BUFFER_QNX = $3551;
  622. EGL_PLATFORM_SCREEN_QNX = $3550;
  623. EGL_NATIVE_BUFFER_TIZEN = $32A0;
  624. EGL_NATIVE_SURFACE_TIZEN = $32A1;
  625. // EGL_WL_bind_wayland_display = 1;
  626. EGL_WAYLAND_BUFFER_WL = $31D5;
  627. EGL_WAYLAND_PLANE_WL = $31D6;
  628. EGL_TEXTURE_Y_U_V_WL = $31D7;
  629. EGL_TEXTURE_Y_UV_WL = $31D8;
  630. EGL_TEXTURE_Y_XUXV_WL = $31D9;
  631. EGL_TEXTURE_EXTERNAL_WL = $31DA;
  632. EGL_WAYLAND_Y_INVERTED_WL = $31DB;
  633. // EGL_WL_create_wayland_buffer_from_image = 1;
  634. EGL_PRESERVED_RESOURCES = $3030;
  635. { The types NativeDisplayType, NativeWindowType, and NativePixmapType
  636. * are aliases of window-system-dependent types, such as X Display * or
  637. * Windows Device Context. They must be defined in platform-specific
  638. * code below. The EGL-prefixed versions of Native*Type are the same
  639. * types, renamed in EGL 1.3 so all types in the API start with "EGL".
  640. *
  641. * Khronos STRONGLY RECOMMENDS that you use the default definitions
  642. * provided below, since these changes affect both binary and source
  643. * portability of applications using EGL running on different EGL
  644. * implementations.
  645. }
  646. //------------------------------------------------------------------------------
  647. (* Khronos platform-specific types and definitions.
  648. *
  649. * The master copy of khrplatform.h is maintained in the Khronos EGL
  650. * Registry repository at https://github.com/KhronosGroup/EGL-Registry
  651. * The last semantic modification to khrplatform.h was at commit ID:
  652. * 67a3e0864c2d75ea5287b9f3d2eb74a745936692
  653. *
  654. * Adopters may modify this file to suit their platform. Adopters are
  655. * encouraged to submit platform specific modifications to the Khronos
  656. * group so that they can be included in future versions of this file.
  657. * Please submit changes by filing pull requests or issues on
  658. * the EGL Registry repository linked above.
  659. *
  660. *
  661. * See the Implementer's Guidelines for information about where this file
  662. * should be located on your system and for more details of its use:
  663. * http://www.khronos.org/registry/implementers_guide.pdf
  664. *
  665. * This file should be included as
  666. * #include <KHR/khrplatform.h>
  667. * by Khronos client API header files that use its types and defines.
  668. *
  669. * The types in khrplatform.h should only be used to define API-specific types.
  670. *
  671. * Types defined in khrplatform.h:
  672. * khronos_int8_t signed 8 bit
  673. * khronos_uint8_t unsigned 8 bit
  674. * khronos_int16_t signed 16 bit
  675. * khronos_uint16_t unsigned 16 bit
  676. * khronos_int32_t signed 32 bit
  677. * khronos_uint32_t unsigned 32 bit
  678. * khronos_int64_t signed 64 bit
  679. * khronos_uint64_t unsigned 64 bit
  680. * khronos_intptr_t signed same number of bits as a pointer
  681. * khronos_uintptr_t unsigned same number of bits as a pointer
  682. * khronos_ssize_t signed size
  683. * khronos_usize_t unsigned size
  684. * khronos_float_t signed 32 bit floating point
  685. * khronos_time_ns_t unsigned 64 bit time in nanoseconds
  686. * khronos_utime_nanoseconds_t unsigned time interval or absolute time in
  687. * nanoseconds
  688. * khronos_stime_nanoseconds_t signed time interval in nanoseconds
  689. * khronos_boolean_enum_t enumerated boolean type. This should
  690. * only be used as a base type when a client API's boolean type is
  691. * an enum. Client APIs which use an integer or other type for
  692. * booleans cannot use this as the base type for their boolean.
  693. *
  694. * Tokens defined in khrplatform.h:
  695. *
  696. * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
  697. *
  698. * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
  699. * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
  700. *
  701. * Calling convention macros defined in this file:
  702. * KHRONOS_APICALL
  703. * KHRONOS_APIENTRY
  704. * KHRONOS_APIATTRIBUTES
  705. *
  706. * These may be used in function prototypes as:
  707. *
  708. * KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
  709. * int arg1,
  710. * int arg2) KHRONOS_APIATTRIBUTES;
  711. *)
  712. {$IfDef EGL_NO_PLATFORM_SPECIFIC_TYPES}
  713. // Это значение по умолчанию, для каких систем вообще?
  714. type
  715. EGLNativeDisplayType = pointer;
  716. EGLNativePixmapType = pointer;
  717. EGLNativeWindowType = pointer;
  718. {$EndIf}
  719. {$IfDef Windows} // для всех Windows? Или только для 32-х битной?
  720. type
  721. EGLNativeDisplayType = HDC;
  722. EGLNativePixmapType = HBITMAP;
  723. EGLNativeWindowType = HWND;
  724. {$EndIf}
  725. (*{$else defined(__EMSCRIPTEN__)} // что за платформа?
  726. type
  727. EGLNativeDisplayType = longint;
  728. EGLNativePixmapType = longint;
  729. EGLNativeWindowType = longint; *)
  730. {$If defined(__WINSCW__) or defined(__SYMBIAN32__)} // Symbian // может пригодится...
  731. type
  732. EGLNativeDisplayType = longint;
  733. EGLNativePixmapType = pointer;
  734. EGLNativeWindowType = pointer;
  735. {$IfEnd}
  736. (* {$else defined(__GBM__)} // что за платформа?
  737. type
  738. EGLNativeDisplayType = ^gbm_device;
  739. EGLNativePixmapType = ^gbm_bo;
  740. EGLNativeWindowType = pointer; *)
  741. {$IfDef ANDROID}
  742. type
  743. ANativeWindow = record end;
  744. egl_native_pixmap_t = record end;
  745. EGLNativeDisplayType = pointer;
  746. EGLNativePixmapType = ^egl_native_pixmap_t;
  747. EGLNativeWindowType = ^ANativeWindow;
  748. {$EndIf}
  749. (* {$else defined(USE_OZONE)} // что за платформа?
  750. type
  751. EGLNativeDisplayType = intptr_t;
  752. EGLNativePixmapType = intptr_t;
  753. EGLNativeWindowType = intptr_t; *)
  754. {$IfDef UNIX)}
  755. {$If not defined(LINUX) and not defined(MACOSX) and not defined(ANDROID)} // QNX???
  756. type
  757. EGLNativeDisplayType = pointer;
  758. EGLNativePixmapType = khronos_uintptr_t; // khronos_uintptr_t = qword;
  759. EGLNativeWindowType = khronos_uintptr_t; // or khronos_uintptr_t = dword; в зависимости от разрядности.
  760. {$IfEnd}
  761. {$IfDef LINUX}
  762. {$IfDef WAYLAND} // Wayland WL_EGL_PLATFORM
  763. type
  764. EGLNativeDisplayType = ^wl_display;
  765. EGLNativePixmapType = ^wl_egl_pixmap;
  766. EGLNativeWindowType = ^wl_egl_window;
  767. {$Else}
  768. type
  769. EGLNativeDisplayType = PDisplay;
  770. EGLNativePixmapType = TPixmap;
  771. EGLNativeWindowType = TWindow;
  772. {$EndIf}{$EndIf}
  773. {$IfDef MACOSX}
  774. type
  775. EGLNativeDisplayType = longint;
  776. EGLNativePixmapType = pointer;
  777. EGLNativeWindowType = pointer;
  778. {$EndIf}
  779. {$EndIf}
  780. {$IfDef __HAIKU__}
  781. type
  782. EGLNativeDisplayType = pointer;
  783. EGLNativePixmapType = khronos_uintptr_t;
  784. EGLNativeWindowType = khronos_uintptr_t;
  785. {$EndIf}
  786. {$IfDef __Fuchsia__}
  787. type
  788. EGLNativeDisplayType = pointer;
  789. EGLNativePixmapType = khronos_uintptr_t;
  790. EGLNativeWindowType = khronos_uintptr_t;
  791. {$endif}
  792. {$IfDef QNX}
  793. type
  794. EGLNativeDisplayType = khronos_uintptr_t;
  795. EGLNativePixmapType = ^_screen_pixmap;
  796. EGLNativeWindowType = ^_screen_window;
  797. {$EndIf}
  798. { EGL 1.2 types, renamed for consistency in EGL 1.3 }
  799. type
  800. NativeDisplayType = EGLNativeDisplayType;
  801. NativePixmapType = EGLNativePixmapType;
  802. NativeWindowType = EGLNativeWindowType;
  803. { Define EGLint. This must be a signed integral type large enough to contain
  804. * all legal attribute names and values passed into and out of EGL, whether
  805. * their type is boolean, bitmask, enumerant (symbolic constant), integer,
  806. * handle, or other. While in general a 32-bit integer will suffice, if
  807. * handles are 64 bit types, then EGLint should be defined as a signed 64-bit
  808. * integer type.
  809. }
  810. type
  811. EGLSync = pointer;
  812. {$IfDef CPU64}
  813. EGLTime = QWord; // khronos_utime_nanoseconds_t
  814. {$Else}
  815. EGLTime = DWord;
  816. {$EndIf}
  817. PEGLImage = ^EGLImage;
  818. EGLImage = pointer;
  819. PAHardwareBuffer = ^AHardwareBuffer;
  820. Pchar = ^char;
  821. PEGLAttribKHR = ^EGLAttribKHR;
  822. {$IfDef CPU64}
  823. EGLAttribKHR = int64; // intptr_t
  824. {$Else}
  825. EGLAttribKHR = LongInt; // intptr_t;
  826. {$EndIf}
  827. PEGLBoolean = ^EGLBoolean;
  828. PEGLClientPixmapHI = ^EGLClientPixmapHI;
  829. PEGLDeviceEXT = ^EGLDeviceEXT;
  830. PEGLNativeDisplayType = ^EGLNativeDisplayType;
  831. PEGLNativePixmapType = ^EGLNativePixmapType;
  832. PEGLNativeWindowType = ^EGLNativeWindowType;
  833. PEGLnsecsANDROID = ^EGLnsecsANDROID;
  834. {$IfDef CPU64}
  835. EGLnsecsANDROID = Int64; // khronos_stime_nanoseconds_t;
  836. {$Else}
  837. EGLnsecsANDROID = LongInt; // khronos_stime_nanoseconds_t;
  838. {$EndIf}
  839. PEGLOutputLayerEXT = ^EGLOutputLayerEXT;
  840. PEGLOutputPortEXT = ^EGLOutputPortEXT;
  841. PEGLTimeKHR = ^EGLTimeKHR;
  842. PEGLuint64KHR = ^EGLuint64KHR;
  843. {$IfDef CPU64}
  844. EGLTimeKHR = QWord; // khronos_utime_nanoseconds_t
  845. EGLuint64KHR = QWord; // khronos_uint64_t;
  846. {$Else}
  847. EGLTimeKHR = DWord;
  848. EGLuint64KHR = DWord; // khronos_uint64_t;
  849. {$EndIf}
  850. //
  851. PEGLAttrib = ^EGLAttrib;
  852. {$IfDef CPU64}
  853. EGLAttrib = int64; // intptr_t
  854. {$Else}
  855. EGLAttrib = LongInt; // intptr_t;
  856. {$EndIf}
  857. PEGLConfig = ^EGLConfig;
  858. PEGLint = ^EGLint;
  859. EGLint = longint;
  860. EGLConfig = pointer;
  861. EGLBoolean = LongBool; // dword;
  862. EGLDisplay = pointer;
  863. EGLSurface = pointer;
  864. EGLContext = pointer;
  865. PEGLenum = ^EGLenum;
  866. EGLenum = DWord;
  867. EGLClientBuffer = pointer;
  868. //const
  869. (* {$IfDef WINDOWS}
  870. EGL_DEFAULT_DISPLAY = 0;
  871. {$ELSE}
  872. EGL_DEFAULT_DISPLAY = nil;
  873. {$EndIf}
  874. EGL_NO_CONTEXT = nil;
  875. EGL_NO_DISPLAY = nil;
  876. EGL_NO_SURFACE = nil; *)
  877. //
  878. Plongint = ^longint;
  879. Pwl_display = ^wl_display;
  880. Pwl_resource = ^wl_resource;
  881. Pwl_buffer = ^wl_buffer;
  882. EGLSyncKHR = pointer;
  883. EGLLabelKHR = pointer;
  884. EGLObjectKHR = pointer;
  885. EGLImageKHR = pointer;
  886. EGLStreamKHR = pointer;
  887. EGLNativeFileDescriptorKHR = longint;
  888. {$IfDef CPU64}
  889. EGLsizeiANDROID = Int64; // khronos_ssize_t;
  890. {$Else}
  891. EGLsizeiANDROID = LongInt; // khronos_ssize_t;
  892. {$EndIf}
  893. AHardwareBuffer = record end;
  894. EGLDeviceEXT = pointer;
  895. EGLOutputLayerEXT = pointer;
  896. EGLOutputPortEXT = pointer;
  897. {$IfDef EGL_HI_clientpixmap}
  898. EGLClientPixmapHI = record
  899. pData : pointer;
  900. iWidth : EGLint;
  901. iHeight : EGLint;
  902. iStride : EGLint;
  903. end;
  904. {$EndIf}
  905. EGLSyncNV = pointer;
  906. {$IfDef CPU64}
  907. EGLTimeNV = QWord; // khronos_utime_nanoseconds_t;
  908. EGLuint64NV = QWord; // khronos_utime_nanoseconds_t;
  909. {$Else}
  910. EGLTimeNV = DWord; // khronos_utime_nanoseconds_t;
  911. EGLuint64NV = DWord; // khronos_utime_nanoseconds_t;
  912. {$EndIf}
  913. wl_display = record end;
  914. wl_resource = record end;
  915. wl_buffer = record end;
  916. // __eglMustCastToProperFunctionPointerType = procedure (_para1: pointer); cdecl;
  917. var
  918. eglLibrary : {$IFDEF WINDOWS}LongWord{$ELSE}Pointer{$ENDIF};
  919. separateEGL : Boolean;
  920. {$IfDef EGL_VERSION_1_0}
  921. var
  922. // eglGetProcAddress: function(procname: Pchar): __eglMustCastToProperFunctionPointerType; stdcall;
  923. eglGetProcAddress: function(name: PAnsiChar): Pointer; stdcall;
  924. eglChooseConfig: function(dpy: EGLDisplay; attrib_list: PEGLint; configs: PEGLConfig; config_size: EGLint; num_config: PEGLint): EGLBoolean; stdcall;
  925. eglCreateContext: function(dpy: EGLDisplay; config: EGLConfig; share_context: EGLContext; attrib_list: PEGLint): EGLContext; stdcall;
  926. eglCreateWindowSurface: function(dpy: EGLDisplay; config: EGLConfig; win: EGLNativeWindowType; attrib_list: PEGLint): EGLSurface; stdcall;
  927. eglDestroyContext: function(dpy: EGLDisplay; ctx: EGLContext): EGLBoolean; stdcall;
  928. eglDestroySurface: function(dpy: EGLDisplay; surface: EGLSurface): EGLBoolean; stdcall;
  929. eglGetDisplay: function(display_id: EGLNativeDisplayType): EGLDisplay; stdcall;
  930. eglGetError: function: EGLint; stdcall;
  931. eglInitialize: function(dpy: EGLDisplay; major: PEGLint; minor: PEGLint): EGLBoolean; stdcall;
  932. eglMakeCurrent: function(dpy: EGLDisplay; draw: EGLSurface; read: EGLSurface; ctx: EGLContext): EGLBoolean; stdcall;
  933. eglSwapBuffers: function(dpy: EGLDisplay; surface: EGLSurface): EGLBoolean; stdcall;
  934. eglTerminate: function(dpy: EGLDisplay): EGLBoolean; stdcall;
  935. {$IfDef EGL_NO_MIN}
  936. eglCopyBuffers: function(dpy: EGLDisplay; surface: EGLSurface; target: EGLNativePixmapType): EGLBoolean; stdcall;
  937. eglCreatePbufferSurface: function(dpy: EGLDisplay; config: EGLConfig; attrib_list: PEGLint): EGLSurface; stdcall;
  938. eglCreatePixmapSurface: function(dpy: EGLDisplay; config: EGLConfig; pixmap: EGLNativePixmapType; attrib_list: PEGLint): EGLSurface; stdcall;
  939. eglGetConfigAttrib: function(dpy: EGLDisplay; config: EGLConfig; attribute: EGLint; value: PEGLint): EGLBoolean; stdcall;
  940. eglGetConfigs: function(dpy: EGLDisplay; configs: PEGLConfig; config_size: EGLint; num_config: PEGLint): EGLBoolean; stdcall;
  941. eglGetCurrentDisplay: function: EGLDisplay; stdcall;
  942. eglGetCurrentSurface: function(readdraw: EGLint): EGLSurface; stdcall;
  943. eglQueryContext: function(dpy: EGLDisplay; ctx: EGLContext; attribute: EGLint; value: PEGLint): EGLBoolean; stdcall;
  944. eglQueryString: function(dpy: EGLDisplay; name: EGLint): Pchar; stdcall;
  945. eglQuerySurface: function(dpy: EGLDisplay; surface: EGLSurface; attribute: EGLint; value: PEGLint): EGLBoolean; stdcall;
  946. eglWaitGL: function: EGLBoolean; stdcall;
  947. eglWaitNative: function(engine: EGLint): EGLBoolean; stdcall;
  948. {$EndIf}
  949. {$EndIf}
  950. {$IfDef EGL_VERSION_1_1}
  951. var
  952. {$IfDef EGL_NO_MIN}
  953. eglBindTexImage: function(dpy: EGLDisplay; surface: EGLSurface; buffer: EGLint): EGLBoolean; stdcall;
  954. eglReleaseTexImage: function(dpy: EGLDisplay; surface: EGLSurface; buffer: EGLint): EGLBoolean; stdcall;
  955. eglSurfaceAttrib: function(dpy: EGLDisplay; surface: EGLSurface; attribute: EGLint; value: EGLint): EGLBoolean; stdcall;
  956. {$EndIf}
  957. eglSwapInterval: function(dpy: EGLDisplay; interval: EGLint): EGLBoolean; stdcall;
  958. {$EndIf}
  959. {$IfDef EGL_NO_MIN}
  960. {$IfDef EGL_VERSION_1_2}
  961. var
  962. eglBindAPI: function(api: EGLenum): EGLBoolean; stdcall;
  963. eglQueryAPI: function: EGLenum; stdcall;
  964. eglCreatePbufferFromClientBuffer: function(dpy: EGLDisplay; buftype: EGLenum; buffer: EGLClientBuffer; config: EGLConfig; attrib_list: PEGLint): EGLSurface; stdcall;
  965. eglReleaseThread: function: EGLBoolean; stdcall;
  966. eglWaitClient: function: EGLBoolean; stdcall;
  967. {$EndIf}
  968. {$IfDef EGL_VERSION_1_3}
  969. // function EGL_DEFAULT_DISPLAY: longint;
  970. {$EndIf}
  971. {$IfDef EGL_VERSION_1_4}
  972. var
  973. eglGetCurrentContext: function: EGLContext; stdcall;
  974. // function EGL_NO_SYNC: longint;
  975. // function EGL_NO_IMAGE: longint;
  976. {$EndIf}
  977. {$IfDef EGL_VERSION_1_5}
  978. var
  979. eglCreateSync: function(dpy: EGLDisplay; _type: EGLenum; attrib_list: PEGLAttrib): EGLSync; stdcall;
  980. eglDestroySync: function(dpy: EGLDisplay; sync: EGLSync): EGLBoolean; stdcall;
  981. eglClientWaitSync: function(dpy: EGLDisplay; sync: EGLSync; flags: EGLint; timeout: EGLTime): EGLint; stdcall;
  982. eglGetSyncAttrib: function(dpy: EGLDisplay; sync: EGLSync; attribute: EGLint; value: PEGLAttrib): EGLBoolean; stdcall;
  983. eglCreateImage: function(dpy: EGLDisplay; ctx: EGLContext; target: EGLenum; buffer: EGLClientBuffer; attrib_list: PEGLAttrib): EGLImage; stdcall;
  984. eglDestroyImage: function(dpy: EGLDisplay; image: EGLImage): EGLBoolean; stdcall;
  985. eglGetPlatformDisplay: function(platform: EGLenum; native_display: pointer; attrib_list: PEGLAttrib): EGLDisplay; stdcall;
  986. eglCreatePlatformWindowSurface: function(dpy: EGLDisplay; config: EGLConfig; native_window: pointer; attrib_list: PEGLAttrib): EGLSurface; stdcall;
  987. eglCreatePlatformPixmapSurface: function(dpy: EGLDisplay; config: EGLConfig; native_pixmap: pointer; attrib_list: PEGLAttrib): EGLSurface; stdcall;
  988. eglWaitSync: function(dpy: EGLDisplay; sync: EGLSync; flags: EGLint): EGLBoolean; stdcall;
  989. {$EndIf}
  990. {$IfDef EGL_KHR_cl_event2}
  991. eglCreateSync64KHR: function(dpy: EGLDisplay; _type: EGLenum; attrib_list: PEGLAttribKHR): EGLSyncKHR; stdcall;
  992. {$EndIf}
  993. {$IfDef EGL_KHR_debug}
  994. type
  995. EGLDEBUGPROCKHR = procedure (error: EGLenum; command: Pchar; messageType: EGLint; threadLabel: EGLLabelKHR; objectLabel: EGLLabelKHR;
  996. message: Pchar); stdcall;
  997. var
  998. eglDebugMessageControlKHR: function(callback: EGLDEBUGPROCKHR; attrib_list: PEGLAttrib): EGLint; stdcall;
  999. eglQueryDebugKHR: function(attribute: EGLint; value: PEGLAttrib): EGLBoolean; stdcall;
  1000. eglLabelObjectKHR: function(display: EGLDisplay; objectType: EGLenum; objectKHR: EGLObjectKHR; _label: EGLLabelKHR): EGLint; stdcall;
  1001. {$EndIf}
  1002. {$IfDef EGL_KHR_display_reference}
  1003. eglQueryDisplayAttribKHR: function(dpy: EGLDisplay; name: EGLint; value: PEGLAttrib): EGLBoolean; stdcall;
  1004. {$EndIf}
  1005. {$IfDef EGL_KHR_fence_sync}
  1006. {$IfDef CPU64}
  1007. eglCreateSyncKHR: function(dpy: EGLDisplay; _type: EGLenum; attrib_list: PEGLint): EGLSyncKHR; stdcall;
  1008. eglDestroySyncKHR: function(dpy: EGLDisplay; sync: EGLSyncKHR): EGLBoolean; stdcall;
  1009. eglClientWaitSyncKHR: function(dpy: EGLDisplay; sync: EGLSyncKHR; flags: EGLint; timeout: EGLTimeKHR): EGLint; stdcall;
  1010. eglGetSyncAttribKHR: function(dpy: EGLDisplay; sync: EGLSyncKHR; attribute: EGLint; value: PEGLint): EGLBoolean; stdcall;
  1011. {$EndIf}
  1012. {$EndIf}
  1013. // function EGL_NO_IMAGE_KHR: longint;
  1014. {$IfDef EGL_KHR_image}
  1015. eglCreateImageKHR: function(dpy: EGLDisplay; ctx: EGLContext; target: EGLenum; buffer: EGLClientBuffer; attrib_list: PEGLint): EGLImageKHR; stdcall;
  1016. eglDestroyImageKHR: function(dpy: EGLDisplay; image: EGLImageKHR): EGLBoolean; stdcall;
  1017. {$EndIf}
  1018. {$IfDef EGL_KHR_lock_surface}
  1019. eglLockSurfaceKHR: function(dpy: EGLDisplay; surface: EGLSurface; attrib_list: PEGLint): EGLBoolean; stdcall;
  1020. eglUnlockSurfaceKHR: function(dpy: EGLDisplay; surface: EGLSurface): EGLBoolean; stdcall;
  1021. {$EndIf}
  1022. {$IfDef EGL_KHR_lock_surface3}
  1023. eglQuerySurface64KHR: function(dpy: EGLDisplay; surface: EGLSurface; attribute: EGLint; value: PEGLAttribKHR): EGLBoolean; stdcall;
  1024. {$EndIf}
  1025. // function EGL_NO_CONFIG_KHR: longint;
  1026. {$IfDef EGL_KHR_partial_update}
  1027. eglSetDamageRegionKHR: function(dpy: EGLDisplay; surface: EGLSurface; rects: PEGLint; n_rects: EGLint): EGLBoolean; stdcall;
  1028. {$EndIf}
  1029. // function EGL_NO_SYNC_KHR: longint;
  1030. {$IfDef EGL_KHR_reusable_sync}
  1031. {$IfDef CPU64}
  1032. eglSignalSyncKHR: function(dpy: EGLDisplay; sync: EGLSyncKHR; mode: EGLenum): EGLBoolean; stdcall;
  1033. {$EndIf}{$EndIf}
  1034. // function EGL_NO_STREAM_KHR: longint; { return type might be wrong }
  1035. {$IfDef EGL_KHR_stream}
  1036. {$IfDef CPU64}
  1037. eglCreateStreamKHR: function(dpy: EGLDisplay; attrib_list: PEGLint): EGLStreamKHR; stdcall;
  1038. eglDestroyStreamKHR: function(dpy: EGLDisplay; stream: EGLStreamKHR): EGLBoolean; stdcall;
  1039. eglStreamAttribKHR: function(dpy: EGLDisplay; stream: EGLStreamKHR; attribute: EGLenum; value: EGLint): EGLBoolean; stdcall;
  1040. eglQueryStreamKHR: function(dpy: EGLDisplay; stream: EGLStreamKHR; attribute: EGLenum; value: PEGLint): EGLBoolean; stdcall;
  1041. eglQueryStreamu64KHR: function(dpy: EGLDisplay; stream: EGLStreamKHR; attribute: EGLenum; value: PEGLuint64KHR): EGLBoolean; stdcall;
  1042. {$EndIf}{$EndIf}
  1043. {$IfDef EGL_KHR_stream_attrib}
  1044. {$IfDef CPU64}
  1045. eglCreateStreamAttribKHR: function(dpy: EGLDisplay; attrib_list: PEGLAttrib): EGLStreamKHR; stdcall;
  1046. eglSetStreamAttribKHR: function(dpy: EGLDisplay; stream: EGLStreamKHR; attribute: EGLenum; value: EGLAttrib): EGLBoolean; stdcall;
  1047. eglQueryStreamAttribKHR: function(dpy: EGLDisplay; stream: EGLStreamKHR; attribute: EGLenum; value: PEGLAttrib): EGLBoolean; stdcall;
  1048. eglStreamConsumerAcquireAttribKHR: function(dpy: EGLDisplay; stream: EGLStreamKHR; attrib_list: PEGLAttrib):EGLBoolean; stdcall;
  1049. eglStreamConsumerReleaseAttribKHR: function(dpy: EGLDisplay; stream: EGLStreamKHR; attrib_list: PEGLAttrib): EGLBoolean; stdcall;
  1050. {$EndIf}{$EndIf}
  1051. {$IfDef EGL_KHR_stream_consumer_gltexture}
  1052. eglStreamConsumerGLTextureExternalKHR: function(dpy: EGLDisplay; stream: EGLStreamKHR): EGLBoolean; stdcall;
  1053. eglStreamConsumerAcquireKHR: function(dpy: EGLDisplay; stream: EGLStreamKHR): EGLBoolean; stdcall;
  1054. eglStreamConsumerReleaseKHR: function(dpy: EGLDisplay; stream: EGLStreamKHR): EGLBoolean; stdcall;
  1055. {$EndIf}
  1056. {$IfDef EGL_KHR_stream_cross_process_fd}
  1057. eglGetStreamFileDescriptorKHR: function(dpy: EGLDisplay; stream: EGLStreamKHR): EGLNativeFileDescriptorKHR; stdcall;
  1058. eglCreateStreamFromFileDescriptorKHR: function(dpy: EGLDisplay; file_descriptor: EGLNativeFileDescriptorKHR): EGLStreamKHR; stdcall;
  1059. {$EndIf}
  1060. {$IfDef EGL_KHR_stream_fifo}
  1061. eglQueryStreamTimeKHR: function(dpy: EGLDisplay; stream: EGLStreamKHR; attribute: EGLenum; value: PEGLTimeKHR): EGLBoolean; stdcall;
  1062. {$EndIf}
  1063. {$IfDef EGL_KHR_stream_producer_eglsurface}
  1064. eglCreateStreamProducerSurfaceKHR: function(dpy: EGLDisplay; config: EGLConfig; stream: EGLStreamKHR; attrib_list: PEGLint): EGLSurface; stdcall;
  1065. {$EndIf}
  1066. {$IfDef EGL_KHR_swap_buffers_with_damage}
  1067. eglSwapBuffersWithDamageKHR: function(dpy: EGLDisplay; surface: EGLSurface; rects: PEGLint; n_rects: EGLint): EGLBoolean; stdcall;
  1068. {$EndIf}
  1069. {$IfDef EGL_KHR_wait_sync}
  1070. eglWaitSyncKHR: function(dpy: EGLDisplay; sync: EGLSyncKHR; flags: EGLint): EGLint; stdcall;
  1071. {$EndIf}
  1072. {$IfDef EGL_ANDROID_blob_cache}
  1073. type
  1074. EGLSetBlobFuncANDROID = procedure (key: pointer; keySize: EGLsizeiANDROID; value: pointer; valueSize: EGLsizeiANDROID); stdcall;
  1075. EGLGetBlobFuncANDROID = function (key: pointer; keySize: EGLsizeiANDROID; value: pointer; valueSize: EGLsizeiANDROID): EGLsizeiANDROID; stdcall;
  1076. var
  1077. eglSetBlobCacheFuncsANDROID: procedure(dpy: EGLDisplay; setBlob: EGLSetBlobFuncANDROID; get: EGLGetBlobFuncANDROID); stdcall;
  1078. {$EndIf}
  1079. {$IfDef EGL_ANDROID_create_native_client_buffer}
  1080. eglCreateNativeClientBufferANDROID: function(attrib_list: PEGLint): EGLClientBuffer; stdcall;
  1081. {$EndIf}
  1082. {$IfDef EGL_ANDROID_get_frame_timestamps}
  1083. eglGetCompositorTimingSupportedANDROID: function(dpy: EGLDisplay; surface: EGLSurface; name: EGLint): EGLBoolean; stdcall;
  1084. eglGetCompositorTimingANDROID: function(dpy: EGLDisplay; surface: EGLSurface; numTimestamps: EGLint; names: PEGLint; values: PEGLnsecsANDROID): EGLBoolean; stdcall;
  1085. eglGetNextFrameIdANDROID: function(dpy: EGLDisplay; surface: EGLSurface; frameId: PEGLuint64KHR): EGLBoolean; stdcall;
  1086. eglGetFrameTimestampSupportedANDROID: function(dpy: EGLDisplay; surface: EGLSurface; timestamp: EGLint): EGLBoolean; stdcall;
  1087. eglGetFrameTimestampsANDROID: function(dpy: EGLDisplay; surface: EGLSurface; frameId: EGLuint64KHR; numTimestamps: EGLint; timestamps: PEGLint;
  1088. values:PEGLnsecsANDROID): EGLBoolean; stdcall;
  1089. {$EndIf}
  1090. {$IfDef EGL_ANDROID_get_native_client_buffer}
  1091. eglGetNativeClientBufferANDROID: function(buffer: PAHardwareBuffer): EGLClientBuffer; stdcall;
  1092. {$EndIf}
  1093. {$IfDef EGL_ANDROID_native_fence_sync}
  1094. eglDupNativeFenceFDANDROID: function(dpy: EGLDisplay; sync: EGLSyncKHR): EGLint; stdcall;
  1095. {$EndIf}
  1096. {$IfDef EGL_ANDROID_presentation_time}
  1097. eglPresentationTimeANDROID: function(dpy: EGLDisplay; surface: EGLSurface; time: EGLnsecsANDROID): EGLBoolean; stdcall;
  1098. {$EndIf}
  1099. {$IfDef EGL_ANGLE_query_surface_pointer}
  1100. eglQuerySurfacePointerANGLE: function(dpy: EGLDisplay; surface: EGLSurface; attribute: EGLint; value: Ppointer): EGLBoolean; stdcall;
  1101. {$EndIf}
  1102. {$IfDef EGL_ANGLE_sync_control_rate}
  1103. eglGetMscRateANGLE: function(dpy: EGLDisplay; surface: EGLSurface; numerator: PEGLint; denominator: PEGLint): EGLBoolean; stdcall;
  1104. {$EndIf}
  1105. {$IfDef EGL_EXT_client_sync}
  1106. eglClientSignalSyncEXT: function(dpy: EGLDisplay; sync: EGLSync; attrib_list: PEGLAttrib): EGLBoolean; stdcall;
  1107. {$EndIf}
  1108. {$IfDef EGL_EXT_compositor}
  1109. eglCompositorSetContextListEXT: function(external_ref_ids: PEGLint; num_entries: EGLint): EGLBoolean; stdcall;
  1110. eglCompositorSetContextAttributesEXT: function(external_ref_id: EGLint; context_attributes: PEGLint; num_entries: EGLint): EGLBoolean; stdcall;
  1111. eglCompositorSetWindowListEXT: function(external_ref_id: EGLint; external_win_ids: PEGLint; num_entries: EGLint): EGLBoolean; stdcall;
  1112. eglCompositorSetWindowAttributesEXT: function(external_win_id: EGLint; window_attributes: PEGLint; num_entries: EGLint): EGLBoolean; stdcall;
  1113. eglCompositorBindTexWindowEXT: function(external_win_id: EGLint): EGLBoolean; stdcall;
  1114. eglCompositorSetSizeEXT: function(external_win_id: EGLint; width: EGLint; height: EGLint): EGLBoolean; stdcall;
  1115. eglCompositorSwapPolicyEXT: function(external_win_id: EGLint; policy: EGLint): EGLBoolean; stdcall;
  1116. {$EndIf}
  1117. {$IfDef EGL_EXT_device_base}
  1118. eglQueryDeviceAttribEXT: function(device: EGLDeviceEXT; attribute: EGLint; value: PEGLAttrib): EGLBoolean; stdcall;
  1119. eglQueryDeviceStringEXT: function(device: EGLDeviceEXT; name: EGLint): Pchar; stdcall;
  1120. eglQueryDevicesEXT: function(max_devices: EGLint; devices: PEGLDeviceEXT; num_devices: PEGLint): EGLBoolean; stdcall;
  1121. eglQueryDisplayAttribEXT: function(dpy: EGLDisplay; attribute: EGLint; value: PEGLAttrib): EGLBoolean; stdcall;
  1122. {$EndIf}
  1123. {$IfDef EGL_EXT_device_persistent_id}
  1124. eglQueryDeviceBinaryEXT: function(device: EGLDeviceEXT; name: EGLint; max_size: EGLint; value: pointer; size: PEGLint): EGLBoolean; stdcall;
  1125. {$EndIf}
  1126. {$IfDef EGL_EXT_image_dma_buf_import_modifiers}
  1127. eglQueryDmaBufFormatsEXT: function(dpy: EGLDisplay; max_formats: EGLint; formats: PEGLint; num_formats: PEGLint): EGLBoolean; stdcall;
  1128. eglQueryDmaBufModifiersEXT: function(dpy: EGLDisplay; format: EGLint; max_modifiers: EGLint; modifiers: PEGLuint64KHR; external_only: PEGLBoolean;
  1129. num_modifiers: PEGLint): EGLBoolean; stdcall;
  1130. {$EndIf}
  1131. {$IfDef EGL_EXT_output_base}
  1132. eglGetOutputLayersEXT: function(dpy: EGLDisplay; attrib_list: PEGLAttrib; layers: PEGLOutputLayerEXT; max_layers: EGLint; num_layers: PEGLint): EGLBoolean; stdcall;
  1133. eglGetOutputPortsEXT: function(dpy: EGLDisplay; attrib_list: PEGLAttrib; ports: PEGLOutputPortEXT; max_ports: EGLint; num_ports: PEGLint): EGLBoolean; stdcall;
  1134. eglOutputLayerAttribEXT: function(dpy: EGLDisplay; layer: EGLOutputLayerEXT; attribute: EGLint; value: EGLAttrib): EGLBoolean; stdcall;
  1135. eglQueryOutputLayerAttribEXT: function(dpy: EGLDisplay; layer: EGLOutputLayerEXT; attribute: EGLint; value: PEGLAttrib): EGLBoolean; stdcall;
  1136. eglQueryOutputLayerStringEXT: function(dpy: EGLDisplay; layer: EGLOutputLayerEXT; name: EGLint): Pchar; stdcall;
  1137. eglOutputPortAttribEXT: function(dpy: EGLDisplay; port: EGLOutputPortEXT; attribute: EGLint; value: EGLAttrib): EGLBoolean; stdcall;
  1138. eglQueryOutputPortAttribEXT: function(dpy: EGLDisplay; port: EGLOutputPortEXT; attribute: EGLint; value: PEGLAttrib): EGLBoolean; stdcall;
  1139. eglQueryOutputPortStringEXT: function(dpy: EGLDisplay; port: EGLOutputPortEXT; name: EGLint): Pchar; stdcall;
  1140. {$EndIf}
  1141. {$IfDef EGL_EXT_platform_base}
  1142. eglGetPlatformDisplayEXT: function(platform: EGLenum; native_display: pointer; attrib_list: PEGLint): EGLDisplay; stdcall;
  1143. eglCreatePlatformWindowSurfaceEXT: function(dpy: EGLDisplay; config: EGLConfig; native_window: pointer; attrib_list: PEGLint): EGLSurface; stdcall;
  1144. eglCreatePlatformPixmapSurfaceEXT: function(dpy: EGLDisplay; config: EGLConfig; native_pixmap: pointer; attrib_list: PEGLint): EGLSurface; stdcall;
  1145. {$EndIf}
  1146. {$IfDef EGL_EXT_stream_consumer_egloutput}
  1147. eglStreamConsumerOutputEXT: function(dpy: EGLDisplay; stream: EGLStreamKHR; layer: EGLOutputLayerEXT): EGLBoolean; stdcall;
  1148. {$EndIf}
  1149. {$IfDef EGL_EXT_surface_compression}
  1150. eglQuerySupportedCompressionRatesEXT: function(dpy: EGLDisplay; configs: PEGLConfig; attrib_list: PEGLAttrib; rates: PEGLint; rate_size: EGLint;
  1151. num_rates: PEGLint): EGLBoolean; stdcall;
  1152. {$EndIf}
  1153. {$IfDef EGL_EXT_swap_buffers_with_damage}
  1154. eglSwapBuffersWithDamageEXT: function(dpy: EGLDisplay; surface: EGLSurface; rects: PEGLint; n_rects: EGLint): EGLBoolean; stdcall;
  1155. {$EndIf}
  1156. {$IfDef EGL_EXT_sync_reuse}
  1157. eglUnsignalSyncEXT: function(dpy: EGLDisplay; sync: EGLSync; attrib_list: PEGLAttrib): EGLBoolean; stdcall;
  1158. {$EndIf}
  1159. {$IfDef EGL_HI_clientpixmap}
  1160. eglCreatePixmapSurfaceHI: function(dpy: EGLDisplay; config: EGLConfig; pixmap: PEGLClientPixmapHI): EGLSurface; stdcall;
  1161. {$EndIf}
  1162. {$IfDef EGL_MESA_drm_image}
  1163. eglCreateDRMImageMESA: function(dpy: EGLDisplay; attrib_list: PEGLint): EGLImageKHR; stdcall;
  1164. eglExportDRMImageMESA: function(dpy: EGLDisplay; image: EGLImageKHR; name: PEGLint; handle: PEGLint; stride: PEGLint): EGLBoolean; stdcall;
  1165. {$EndIf}
  1166. {$IfDef EGL_MESA_image_dma_buf_export}
  1167. eglExportDMABUFImageQueryMESA: function(dpy: EGLDisplay; image: EGLImageKHR; fourcc: Plongint; num_planes: Plongint; modifiers: PEGLuint64KHR): EGLBoolean; stdcall;
  1168. eglExportDMABUFImageMESA: function(dpy: EGLDisplay; image: EGLImageKHR; fds: Plongint; strides: PEGLint; offsets: PEGLint): EGLBoolean; stdcall;
  1169. {$EndIf}
  1170. {$IfDef EGL_MESA_query_driver}
  1171. eglGetDisplayDriverConfig: function(dpy: EGLDisplay): Pchar; stdcall;
  1172. eglGetDisplayDriverName: function(dpy: EGLDisplay): Pchar; stdcall;
  1173. {$EndIf}
  1174. {$IfDef EGL_NOK_swap_region}
  1175. eglSwapBuffersRegionNOK: function(dpy: EGLDisplay; surface: EGLSurface; numRects: EGLint; rects: PEGLint): EGLBoolean; stdcall;
  1176. {$EndIf}
  1177. {$IfDef EGL_NOK_swap_region2}
  1178. eglSwapBuffersRegion2NOK: function(dpy: EGLDisplay; surface: EGLSurface; numRects: EGLint; rects: PEGLint): EGLBoolean; stdcall;
  1179. {$EndIf}
  1180. {$IfDef EGL_NV_native_query}
  1181. eglQueryNativeDisplayNV: function(dpy: EGLDisplay; display_id: PEGLNativeDisplayType): EGLBoolean; stdcall;
  1182. eglQueryNativeWindowNV: function(dpy: EGLDisplay; surf: EGLSurface; window: PEGLNativeWindowType): EGLBoolean; stdcall;
  1183. eglQueryNativePixmapNV: function(dpy: EGLDisplay; surf: EGLSurface; pixmap: PEGLNativePixmapType): EGLBoolean; stdcall;
  1184. {$EndIf}
  1185. {$IfDef EGL_NV_post_sub_buffer}
  1186. eglPostSubBufferNV: function(dpy: EGLDisplay; surface: EGLSurface; x: EGLint; y: EGLint; width: EGLint;
  1187. height: EGLint): EGLBoolean; stdcall;
  1188. {$EndIf}
  1189. {$IfDef EGL_NV_stream_consumer_eglimage}
  1190. eglStreamImageConsumerConnectNV: function(dpy: EGLDisplay; stream: EGLStreamKHR; num_modifiers: EGLint; modifiers: PEGLuint64KHR; attrib_list: PEGLAttrib): EGLBoolean; stdcall;
  1191. eglQueryStreamConsumerEventNV: function(dpy: EGLDisplay; stream: EGLStreamKHR; timeout: EGLTime; event: PEGLenum; aux: PEGLAttrib): EGLint; stdcall;
  1192. eglStreamAcquireImageNV: function(dpy: EGLDisplay; stream: EGLStreamKHR; pImage: PEGLImage; sync: EGLSync): EGLBoolean; stdcall;
  1193. eglStreamReleaseImageNV: function(dpy: EGLDisplay; stream: EGLStreamKHR; image: EGLImage; sync: EGLSync): EGLBoolean; stdcall;
  1194. {$EndIf}
  1195. {$IfDef EGL_NV_stream_consumer_gltexture_yuv}
  1196. eglStreamConsumerGLTextureExternalAttribsNV: function(dpy: EGLDisplay; stream: EGLStreamKHR; attrib_list: PEGLAttrib): EGLBoolean; stdcall;
  1197. {$EndIf}
  1198. {$IfDef EGL_NV_stream_flush}
  1199. eglStreamFlushNV: function(dpy: EGLDisplay; stream: EGLStreamKHR): EGLBoolean; stdcall;
  1200. {$EndIf}
  1201. {$IfDef EGL_NV_stream_metadata}
  1202. eglQueryDisplayAttribNV: function(dpy: EGLDisplay; attribute: EGLint; value: PEGLAttrib): EGLBoolean; stdcall;
  1203. eglSetStreamMetadataNV: function(dpy: EGLDisplay; stream: EGLStreamKHR; n: EGLint; offset: EGLint; size: EGLint;
  1204. data: pointer): EGLBoolean; stdcall;
  1205. eglQueryStreamMetadataNV: function(dpy: EGLDisplay; stream: EGLStreamKHR; name: EGLenum; n: EGLint; offset: EGLint;
  1206. size: EGLint; data: pointer): EGLBoolean; stdcall;
  1207. {$EndIf}
  1208. {$IfDef EGL_NV_stream_reset}
  1209. eglResetStreamNV: function(dpy: EGLDisplay; stream: EGLStreamKHR): EGLBoolean; stdcall;
  1210. {$EndIf}
  1211. {$IfDef EGL_NV_stream_sync}
  1212. eglCreateStreamSyncNV: function(dpy: EGLDisplay; stream: EGLStreamKHR; _type: EGLenum; attrib_list: PEGLint): EGLSyncKHR; stdcall;
  1213. {$EndIf}
  1214. {$IfDef EGL_NV_sync}
  1215. {$IfDef CPU64}
  1216. eglCreateFenceSyncNV: function(dpy: EGLDisplay; condition: EGLenum; attrib_list: PEGLint): EGLSyncNV; stdcall;
  1217. eglDestroySyncNV: function(sync: EGLSyncNV): EGLBoolean; stdcall;
  1218. eglFenceNV: function(sync: EGLSyncNV): EGLBoolean; stdcall;
  1219. eglClientWaitSyncNV: function(sync: EGLSyncNV; flags: EGLint; timeout: EGLTimeNV): EGLint; stdcall;
  1220. eglSignalSyncNV: function(sync: EGLSyncNV; mode: EGLenum): EGLBoolean; stdcall;
  1221. eglGetSyncAttribNV: function(sync: EGLSyncNV; attribute: EGLint; value: PEGLint): EGLBoolean; stdcall;
  1222. {$EndIf}{$EndIf}
  1223. {$IfDef EGL_NV_system_time}
  1224. {$IfDef CPU64}
  1225. eglGetSystemTimeFrequencyNV: function: EGLuint64NV; stdcall;
  1226. eglGetSystemTimeNV: function: EGLuint64NV; stdcall;
  1227. {$EndIf}{$EndIf}
  1228. {$IfDef EGL_WL_bind_wayland_display}
  1229. eglBindWaylandDisplayWL: function(dpy: EGLDisplay; display: Pwl_display): EGLBoolean; stdcall;
  1230. eglUnbindWaylandDisplayWL: function(dpy: EGLDisplay; display: Pwl_display): EGLBoolean; stdcall;
  1231. eglQueryWaylandBufferWL: function(dpy: EGLDisplay; buffer: Pwl_resource; attribute: EGLint; value: PEGLint): EGLBoolean; stdcall;
  1232. {$EndIf}
  1233. {$IfDef EGL_WL_create_wayland_buffer_from_image}
  1234. {EGLAPI struct wl_buffer *EGLAPIENTRY eglCreateWaylandBufferFromImageWL (EGLDisplay dpy, EGLImageKHR image); }
  1235. eglCreateWaylandBufferFromImageWL: function(dpy: EGLDisplay; image: EGLImageKHR): Pwl_buffer; stdcall;
  1236. {$EndIf}
  1237. {$EndIf}
  1238. function InitEGL: Boolean;
  1239. procedure FreeEGL;
  1240. implementation
  1241. function InitEGL: Boolean;
  1242. begin
  1243. Result := False;
  1244. {$IfDef EGL_VERSION_1_0}
  1245. eglGetProcAddress := dlsym(eglLibrary, 'eglGetProcAddress');
  1246. if not Assigned(eglGetProcAddress) then
  1247. exit;
  1248. eglChooseConfig := eglGetProcAddress('eglChooseConfig');
  1249. eglCreateContext := eglGetProcAddress('eglCreateContext');
  1250. eglCreateWindowSurface := eglGetProcAddress('eglCreateWindowSurface');
  1251. eglDestroyContext := eglGetProcAddress('eglDestroyContext');
  1252. eglDestroySurface := eglGetProcAddress('eglDestroySurface');
  1253. eglGetDisplay := eglGetProcAddress('eglGetDisplay');
  1254. eglGetError := eglGetProcAddress('eglGetError');
  1255. eglInitialize := eglGetProcAddress('eglInitialize');
  1256. eglMakeCurrent := eglGetProcAddress('eglMakeCurrent');
  1257. eglSwapBuffers := eglGetProcAddress('eglSwapBuffers');
  1258. eglTerminate := eglGetProcAddress('eglTerminate');
  1259. if not Assigned(eglGetDisplay) or not Assigned(eglInitialize) or not Assigned(eglTerminate) or not Assigned(eglChooseConfig) or
  1260. not Assigned(eglCreateWindowSurface) or not Assigned(eglDestroySurface) or not Assigned(eglCreateContext) or not Assigned(eglDestroyContext) or
  1261. not Assigned(eglMakeCurrent) or not Assigned(eglSwapBuffers) then
  1262. exit;
  1263. {$IfDef EGL_NO_MIN}
  1264. eglCopyBuffers := eglGetProcAddress('eglCopyBuffers');
  1265. eglCreatePbufferSurface := eglGetProcAddress('eglCreatePbufferSurface');
  1266. eglCreatePixmapSurface := eglGetProcAddress('eglCreatePixmapSurface'); // eglCreatePixmapSurfaceHI
  1267. eglGetConfigAttrib := eglGetProcAddress('eglGetConfigAttrib');
  1268. eglGetConfigs := eglGetProcAddress('eglGetConfigs');
  1269. eglGetCurrentDisplay := eglGetProcAddress('eglGetCurrentDisplay');
  1270. eglGetCurrentSurface := eglGetProcAddress('eglGetCurrentSurface');
  1271. eglQueryContext := eglGetProcAddress('eglQueryContext');
  1272. eglQueryString := eglGetProcAddress('eglQueryString');
  1273. eglQuerySurface := eglGetProcAddress('eglQuerySurface'); // eglQuerySurface64KHR
  1274. eglWaitGL := eglGetProcAddress('eglWaitGL');
  1275. eglWaitNative := eglGetProcAddress('eglWaitNative');
  1276. {$EndIf}{$EndIf}
  1277. {$IfDef EGL_VERSION_1_1}
  1278. {$IfDef EGL_NO_MIN}
  1279. eglBindTexImage := eglGetProcAddress('eglBindTexImage');
  1280. eglReleaseTexImage := eglGetProcAddress('eglReleaseTexImage');
  1281. eglSurfaceAttrib := eglGetProcAddress('eglSurfaceAttrib');
  1282. {$EndIf}
  1283. eglSwapInterval := eglGetProcAddress('eglSwapInterval');
  1284. {$EndIf}
  1285. {$IfDef EGL_NO_MIN}
  1286. {$IfDef EGL_VERSION_1_2}
  1287. eglBindAPI := eglGetProcAddress('eglBindAPI');
  1288. eglQueryAPI := eglGetProcAddress('eglQueryAPI');
  1289. eglCreatePbufferFromClientBuffer := eglGetProcAddress('eglCreatePbufferFromClientBuffer');
  1290. eglReleaseThread := eglGetProcAddress('eglReleaseThread');
  1291. eglWaitClient := eglGetProcAddress('eglWaitClient');
  1292. {$EndIf}
  1293. {$IfDef EGL_VERSION_1_4}
  1294. eglGetCurrentContext := eglGetProcAddress('eglGetCurrentContext');
  1295. {$EndIf}
  1296. {$IfDef EGL_VERSION_1_5}
  1297. eglCreateSync := eglGetProcAddress('eglCreateSync'); // KHR, 64KHR
  1298. eglDestroySync := eglGetProcAddress('eglDestroySync'); // KHR, NV
  1299. eglClientWaitSync := eglGetProcAddress('eglClientWaitSync'); // KHR, NV
  1300. eglGetSyncAttrib := eglGetProcAddress('eglGetSyncAttrib'); // KHR, NV
  1301. eglCreateImage := eglGetProcAddress('eglCreateImage'); // KHR
  1302. eglDestroyImage := eglGetProcAddress('eglDestroyImage'); // KHR
  1303. eglGetPlatformDisplay := eglGetProcAddress('eglGetPlatformDisplay'); // EXT
  1304. eglCreatePlatformWindowSurface := eglGetProcAddress('eglCreatePlatformWindowSurface'); // EXT
  1305. eglCreatePlatformPixmapSurface := eglGetProcAddress('eglCreatePlatformPixmapSurface'); // EXT
  1306. eglWaitSync := eglGetProcAddress('eglWaitSync'); // KHR
  1307. {$EndIf}
  1308. {$IfDef EGL_KHR_cl_event2}
  1309. eglCreateSync64KHR := eglGetProcAddress('eglCreateSync64KHR');
  1310. {$EndIf}
  1311. {$IfDef EGL_KHR_debug}
  1312. eglDebugMessageControlKHR := eglGetProcAddress('eglDebugMessageControlKHR');
  1313. eglQueryDebugKHR := eglGetProcAddress('eglQueryDebugKHR');
  1314. eglLabelObjectKHR := eglGetProcAddress('eglLabelObjectKHR');
  1315. {$EndIf}
  1316. {$IfDef EGL_KHR_display_reference}
  1317. eglQueryDisplayAttribKHR := eglGetProcAddress('eglQueryDisplayAttribKHR');
  1318. {$EndIf}
  1319. {$IfDef EGL_KHR_fence_sync}
  1320. {$IfDef CPU64}
  1321. eglCreateSyncKHR := eglGetProcAddress('eglCreateSyncKHR');
  1322. eglDestroySyncKHR := eglGetProcAddress('eglDestroySyncKHR');
  1323. eglClientWaitSyncKHR := eglGetProcAddress('eglClientWaitSyncKHR');
  1324. eglGetSyncAttribKHR := eglGetProcAddress('eglGetSyncAttribKHR');
  1325. {$EndIf}
  1326. {$EndIf}
  1327. {$IfDef EGL_KHR_image}
  1328. eglCreateImageKHR := eglGetProcAddress('eglCreateImageKHR');
  1329. eglDestroyImageKHR := eglGetProcAddress('eglDestroyImageKHR');
  1330. {$EndIf}
  1331. {$IfDef EGL_KHR_lock_surface}
  1332. eglLockSurfaceKHR := eglGetProcAddress('eglLockSurfaceKHR');
  1333. eglUnlockSurfaceKHR := eglGetProcAddress('eglUnlockSurfaceKHR');
  1334. {$EndIf}
  1335. {$IfDef EGL_KHR_lock_surface3}
  1336. eglQuerySurface64KHR := eglGetProcAddress('eglQuerySurface64KHR');
  1337. {$EndIf}
  1338. {$IfDef EGL_KHR_partial_update}
  1339. eglSetDamageRegionKHR := eglGetProcAddress('eglSetDamageRegionKHR');
  1340. {$EndIf}
  1341. {$IfDef EGL_KHR_reusable_sync}
  1342. {$IfDef CPU64}
  1343. eglSignalSyncKHR := eglGetProcAddress('eglSignalSyncKHR');
  1344. {$EndIf}{$EndIf}
  1345. {$IfDef EGL_KHR_stream}
  1346. {$IfDef CPU64}
  1347. eglCreateStreamKHR := eglGetProcAddress('eglCreateStreamKHR');
  1348. eglDestroyStreamKHR := eglGetProcAddress('eglDestroyStreamKHR');
  1349. eglStreamAttribKHR := eglGetProcAddress('eglStreamAttribKHR');
  1350. eglQueryStreamKHR := eglGetProcAddress('eglQueryStreamKHR');
  1351. eglQueryStreamu64KHR := eglGetProcAddress('eglQueryStreamu64KHR');
  1352. {$EndIf}{$EndIf}
  1353. {$IfDef EGL_KHR_stream_attrib}
  1354. {$IfDef CPU64}
  1355. eglCreateStreamAttribKHR := eglGetProcAddress('eglCreateStreamAttribKHR');
  1356. eglSetStreamAttribKHR := eglGetProcAddress('eglSetStreamAttribKHR');
  1357. eglQueryStreamAttribKHR := eglGetProcAddress('eglQueryStreamAttribKHR');
  1358. eglStreamConsumerAcquireAttribKHR := eglGetProcAddress('eglStreamConsumerAcquireAttribKHR');
  1359. eglStreamConsumerReleaseAttribKHR := eglGetProcAddress('eglStreamConsumerReleaseAttribKHR');
  1360. {$EndIf}{$EndIf}
  1361. {$IfDef EGL_KHR_stream_consumer_gltexture}
  1362. eglStreamConsumerGLTextureExternalKHR := eglGetProcAddress('eglStreamConsumerGLTextureExternalKHR');
  1363. eglStreamConsumerAcquireKHR := eglGetProcAddress('eglStreamConsumerAcquireKHR');
  1364. eglStreamConsumerReleaseKHR := eglGetProcAddress('eglStreamConsumerReleaseKHR');
  1365. {$EndIf}
  1366. {$IfDef EGL_KHR_stream_cross_process_fd}
  1367. eglGetStreamFileDescriptorKHR := eglGetProcAddress('eglGetStreamFileDescriptorKHR');
  1368. eglCreateStreamFromFileDescriptorKHR := eglGetProcAddress('eglCreateStreamFromFileDescriptorKHR');
  1369. {$EndIf}
  1370. {$IfDef EGL_KHR_stream_fifo}
  1371. eglQueryStreamTimeKHR := eglGetProcAddress('eglQueryStreamTimeKHR');
  1372. {$EndIf}
  1373. {$IfDef EGL_KHR_stream_producer_eglsurface}
  1374. eglCreateStreamProducerSurfaceKHR := eglGetProcAddress('eglCreateStreamProducerSurfaceKHR');
  1375. {$EndIf}
  1376. {$IfDef EGL_KHR_swap_buffers_with_damage}
  1377. eglSwapBuffersWithDamageKHR := eglGetProcAddress('eglSwapBuffersWithDamageKHR');
  1378. {$EndIf}
  1379. {$IfDef EGL_KHR_wait_sync}
  1380. eglWaitSyncKHR := eglGetProcAddress('eglWaitSyncKHR');
  1381. {$EndIf}
  1382. {$IfDef EGL_ANDROID_blob_cache}
  1383. eglSetBlobCacheFuncsANDROID := eglGetProcAddress('eglSetBlobCacheFuncsANDROID');
  1384. {$EndIf}
  1385. {$IfDef EGL_ANDROID_create_native_client_buffer}
  1386. eglCreateNativeClientBufferANDROID := eglGetProcAddress('eglCreateNativeClientBufferANDROID');
  1387. {$EndIf}
  1388. {$IfDef EGL_ANDROID_get_frame_timestamps}
  1389. eglGetCompositorTimingSupportedANDROID := eglGetProcAddress('eglGetCompositorTimingSupportedANDROID');
  1390. eglGetCompositorTimingANDROID := eglGetProcAddress('eglGetCompositorTimingANDROID');
  1391. eglGetNextFrameIdANDROID := eglGetProcAddress('eglGetNextFrameIdANDROID');
  1392. eglGetFrameTimestampSupportedANDROID := eglGetProcAddress('eglGetFrameTimestampSupportedANDROID');
  1393. eglGetFrameTimestampsANDROID := eglGetProcAddress('eglGetFrameTimestampsANDROID');
  1394. {$EndIf}
  1395. {$IfDef EGL_ANDROID_get_native_client_buffer}
  1396. eglGetNativeClientBufferANDROID := eglGetProcAddress('eglGetNativeClientBufferANDROID');
  1397. {$EndIf}
  1398. {$IfDef EGL_ANDROID_native_fence_sync}
  1399. eglDupNativeFenceFDANDROID := eglGetProcAddress('eglDupNativeFenceFDANDROID');
  1400. {$EndIf}
  1401. {$IfDef EGL_ANDROID_presentation_time}
  1402. eglPresentationTimeANDROID := eglGetProcAddress('eglPresentationTimeANDROID');
  1403. {$EndIf}
  1404. {$IfDef EGL_ANGLE_query_surface_pointer}
  1405. eglQuerySurfacePointerANGLE := eglGetProcAddress('eglQuerySurfacePointerANGLE');
  1406. {$EndIf}
  1407. {$IfDef EGL_ANGLE_sync_control_rate}
  1408. eglGetMscRateANGLE := eglGetProcAddress('eglGetMscRateANGLE');
  1409. {$EndIf}
  1410. {$IfDef EGL_EXT_client_sync}
  1411. eglClientSignalSyncEXT := eglGetProcAddress('eglClientSignalSyncEXT');
  1412. {$EndIf}
  1413. {$IfDef EGL_EXT_compositor}
  1414. eglCompositorSetContextListEXT := eglGetProcAddress('eglCompositorSetContextListEXT');
  1415. eglCompositorSetContextAttributesEXT := eglGetProcAddress('eglCompositorSetContextAttributesEXT');
  1416. eglCompositorSetWindowListEXT := eglGetProcAddress('eglCompositorSetWindowListEXT');
  1417. eglCompositorSetWindowAttributesEXT := eglGetProcAddress('eglCompositorSetWindowAttributesEXT');
  1418. eglCompositorBindTexWindowEXT := eglGetProcAddress('eglCompositorBindTexWindowEXT');
  1419. eglCompositorSetSizeEXT := eglGetProcAddress('eglCompositorSetSizeEXT');
  1420. eglCompositorSwapPolicyEXT := eglGetProcAddress('eglCompositorSwapPolicyEXT');
  1421. {$EndIf}
  1422. {$IfDef EGL_EXT_device_base}
  1423. eglQueryDeviceAttribEXT := eglGetProcAddress('eglQueryDeviceAttribEXT');
  1424. eglQueryDeviceStringEXT := eglGetProcAddress('eglQueryDeviceStringEXT');
  1425. eglQueryDevicesEXT := eglGetProcAddress('eglQueryDevicesEXT');
  1426. eglQueryDisplayAttribEXT := eglGetProcAddress('eglQueryDisplayAttribEXT');
  1427. {$EndIf}
  1428. {$IfDef EGL_EXT_device_persistent_id}
  1429. eglQueryDeviceBinaryEXT := eglGetProcAddress('eglQueryDeviceBinaryEXT');
  1430. {$EndIf}
  1431. {$IfDef EGL_EXT_image_dma_buf_import_modifiers}
  1432. eglQueryDmaBufFormatsEXT := eglGetProcAddress('eglQueryDmaBufFormatsEXT');
  1433. eglQueryDmaBufModifiersEXT := eglGetProcAddress('eglQueryDmaBufModifiersEXT');
  1434. {$EndIf}
  1435. {$IfDef EGL_EXT_output_base}
  1436. eglGetOutputLayersEXT := eglGetProcAddress('eglGetOutputLayersEXT');
  1437. eglGetOutputPortsEXT := eglGetProcAddress('eglGetOutputPortsEXT');
  1438. eglOutputLayerAttribEXT := eglGetProcAddress('eglOutputLayerAttribEXT');
  1439. eglQueryOutputLayerAttribEXT := eglGetProcAddress('eglQueryOutputLayerAttribEXT');
  1440. eglQueryOutputLayerStringEXT := eglGetProcAddress('eglQueryOutputLayerStringEXT');
  1441. eglOutputPortAttribEXT := eglGetProcAddress('eglOutputPortAttribEXT');
  1442. eglQueryOutputPortAttribEXT := eglGetProcAddress('eglQueryOutputPortAttribEXT');
  1443. eglQueryOutputPortStringEXT := eglGetProcAddress('eglQueryOutputPortStringEXT');
  1444. {$EndIf}
  1445. {$IfDef EGL_EXT_platform_base}
  1446. eglGetPlatformDisplayEXT := eglGetProcAddress('eglGetPlatformDisplayEXT');
  1447. eglCreatePlatformWindowSurfaceEXT := eglGetProcAddress('eglCreatePlatformWindowSurfaceEXT');
  1448. eglCreatePlatformPixmapSurfaceEXT := eglGetProcAddress('eglCreatePlatformPixmapSurfaceEXT');
  1449. {$EndIf}
  1450. {$IfDef EGL_EXT_stream_consumer_egloutput}
  1451. eglStreamConsumerOutputEXT := eglGetProcAddress('eglStreamConsumerOutputEXT');
  1452. {$EndIf}
  1453. {$IfDef EGL_EXT_surface_compression}
  1454. eglQuerySupportedCompressionRatesEXT := eglGetProcAddress('eglQuerySupportedCompressionRatesEXT');
  1455. {$EndIf}
  1456. {$IfDef EGL_EXT_swap_buffers_with_damage}
  1457. eglSwapBuffersWithDamageEXT := eglGetProcAddress('eglSwapBuffersWithDamageEXT');
  1458. {$EndIf}
  1459. {$IfDef EGL_EXT_sync_reuse}
  1460. eglUnsignalSyncEXT := eglGetProcAddress('eglUnsignalSyncEXT');
  1461. {$EndIf}
  1462. {$IfDef EGL_HI_clientpixmap}
  1463. eglCreatePixmapSurfaceHI := eglGetProcAddress('eglCreatePixmapSurfaceHI');
  1464. {$EndIf}
  1465. {$IfDef EGL_MESA_drm_image}
  1466. eglCreateDRMImageMESA := eglGetProcAddress('eglCreateDRMImageMESA');
  1467. eglExportDRMImageMESA := eglGetProcAddress('eglExportDRMImageMESA');
  1468. {$EndIf}
  1469. {$IfDef EGL_MESA_image_dma_buf_export}
  1470. eglExportDMABUFImageQueryMESA := eglGetProcAddress('eglExportDMABUFImageQueryMESA');
  1471. eglExportDMABUFImageMESA := eglGetProcAddress('eglExportDMABUFImageMESA');
  1472. {$EndIf}
  1473. {$IfDef EGL_MESA_query_driver}
  1474. eglGetDisplayDriverConfig := eglGetProcAddress('eglGetDisplayDriverConfig');
  1475. eglGetDisplayDriverName := eglGetProcAddress('eglGetDisplayDriverName');
  1476. {$EndIf}
  1477. {$IfDef EGL_NOK_swap_region}
  1478. eglSwapBuffersRegionNOK := eglGetProcAddress('eglSwapBuffersRegionNOK');
  1479. {$EndIf}
  1480. {$IfDef EGL_NOK_swap_region2}
  1481. eglSwapBuffersRegion2NOK := eglGetProcAddress('eglSwapBuffersRegion2NOK');
  1482. {$EndIf}
  1483. {$IfDef EGL_NV_native_query}
  1484. eglQueryNativeDisplayNV := eglGetProcAddress('eglQueryNativeDisplayNV');
  1485. eglQueryNativeWindowNV := eglGetProcAddress('eglQueryNativeWindowNV');
  1486. eglQueryNativePixmapNV := eglGetProcAddress('eglQueryNativePixmapNV');
  1487. {$EndIf}
  1488. {$IfDef EGL_NV_post_sub_buffer}
  1489. eglPostSubBufferNV := eglGetProcAddress('eglPostSubBufferNV');
  1490. {$EndIf}
  1491. {$IfDef EGL_NV_stream_consumer_eglimage}
  1492. eglStreamImageConsumerConnectNV := eglGetProcAddress('eglStreamImageConsumerConnectNV');
  1493. eglQueryStreamConsumerEventNV := eglGetProcAddress('eglQueryStreamConsumerEventNV');
  1494. eglStreamAcquireImageNV := eglGetProcAddress('eglStreamAcquireImageNV');
  1495. eglStreamReleaseImageNV := eglGetProcAddress('eglStreamReleaseImageNV');
  1496. {$EndIf}
  1497. {$IfDef EGL_NV_stream_consumer_gltexture_yuv}
  1498. eglStreamConsumerGLTextureExternalAttribsNV := eglGetProcAddress('eglStreamConsumerGLTextureExternalAttribsNV');
  1499. {$EndIf}
  1500. {$IfDef EGL_NV_stream_flush}
  1501. eglStreamFlushNV := eglGetProcAddress('eglStreamFlushNV');
  1502. {$EndIf}
  1503. {$IfDef EGL_NV_stream_metadata}
  1504. eglQueryDisplayAttribNV := eglGetProcAddress('eglQueryDisplayAttribNV');
  1505. eglSetStreamMetadataNV := eglGetProcAddress('eglSetStreamMetadataNV');
  1506. eglQueryStreamMetadataNV := eglGetProcAddress('eglQueryStreamMetadataNV');
  1507. {$EndIf}
  1508. {$IfDef EGL_NV_stream_reset}
  1509. eglResetStreamNV := eglGetProcAddress('eglResetStreamNV');
  1510. {$EndIf}
  1511. {$IfDef EGL_NV_stream_sync}
  1512. eglCreateStreamSyncNV := eglGetProcAddress('eglCreateStreamSyncNV');
  1513. {$EndIf}
  1514. {$IfDef EGL_NV_sync}
  1515. {$IfDef CPU64}
  1516. eglCreateFenceSyncNV := eglGetProcAddress('eglCreateFenceSyncNV');
  1517. eglDestroySyncNV := eglGetProcAddress('eglDestroySyncNV');
  1518. eglFenceNV := eglGetProcAddress('eglFenceNV');
  1519. eglClientWaitSyncNV := eglGetProcAddress('eglClientWaitSyncNV');
  1520. eglSignalSyncNV := eglGetProcAddress('eglSignalSyncNV');
  1521. eglGetSyncAttribNV := eglGetProcAddress('eglGetSyncAttribNV');
  1522. {$EndIf}{$EndIf}
  1523. {$IfDef EGL_NV_system_time}
  1524. {$IfDef CPU64}
  1525. eglGetSystemTimeFrequencyNV := eglGetProcAddress('eglGetSystemTimeFrequencyNV');
  1526. eglGetSystemTimeNV := eglGetProcAddress('eglGetSystemTimeNV');
  1527. {$EndIf}{$EndIf}
  1528. {$IfDef EGL_WL_bind_wayland_display}
  1529. eglBindWaylandDisplayWL := eglGetProcAddress('eglBindWaylandDisplayWL');
  1530. eglUnbindWaylandDisplayWL := eglGetProcAddress('eglUnbindWaylandDisplayWL');
  1531. eglQueryWaylandBufferWL := eglGetProcAddress('eglQueryWaylandBufferWL');
  1532. {$EndIf}
  1533. {$IfDef EGL_WL_create_wayland_buffer_from_image}
  1534. eglCreateWaylandBufferFromImageWL := eglGetProcAddress('eglCreateWaylandBufferFromImageWL');
  1535. {$EndIf}
  1536. {$EndIf}
  1537. Result := True;
  1538. end;
  1539. procedure FreeEGL;
  1540. begin
  1541. {$IfDef EGL_VERSION_1_0}
  1542. eglGetProcAddress := nil;
  1543. eglChooseConfig := nil;
  1544. eglCreateContext := nil;
  1545. eglCreateWindowSurface := nil;
  1546. eglDestroyContext := nil;
  1547. eglDestroySurface := nil;
  1548. eglGetDisplay := nil;
  1549. eglGetError := nil;
  1550. eglInitialize := nil;
  1551. eglMakeCurrent := nil;
  1552. eglSwapBuffers := nil;
  1553. eglTerminate := nil;
  1554. {$IfDef EGL_NO_MIN}
  1555. eglCopyBuffers := nil;
  1556. eglCreatePbufferSurface := nil;
  1557. eglCreatePixmapSurface := nil; // eglCreatePixmapSurfaceHI
  1558. eglGetConfigAttrib := nil;
  1559. eglGetConfigs := nil;
  1560. eglGetCurrentDisplay := nil;
  1561. eglGetCurrentSurface := nil;
  1562. eglQueryContext := nil;
  1563. eglQueryString := nil;
  1564. eglQuerySurface := nil; // eglQuerySurface64KHR
  1565. eglWaitGL := nil;
  1566. eglWaitNative := nil;
  1567. {$EndIf}{$EndIf}
  1568. {$IfDef EGL_VERSION_1_1}
  1569. {$IfDef EGL_NO_MIN}
  1570. eglBindTexImage := nil;
  1571. eglReleaseTexImage := nil;
  1572. eglSurfaceAttrib := nil;
  1573. {$EndIf}
  1574. eglSwapInterval := nil;
  1575. {$EndIf}
  1576. {$IfDef EGL_NO_MIN}
  1577. {$IfDef EGL_VERSION_1_2}
  1578. eglBindAPI := nil;
  1579. eglQueryAPI := nil;
  1580. eglCreatePbufferFromClientBuffer := nil;
  1581. eglReleaseThread := nil;
  1582. eglWaitClient := nil;
  1583. {$EndIf}
  1584. {$IfDef EGL_VERSION_1_4}
  1585. eglGetCurrentContext := nil;
  1586. {$EndIf}
  1587. {$IfDef EGL_VERSION_1_5}
  1588. eglCreateSync := nil; // KHR, 64KHR
  1589. eglDestroySync := nil; // KHR, NV
  1590. eglClientWaitSync := nil; // KHR, NV
  1591. eglGetSyncAttrib := nil; // KHR, NV
  1592. eglCreateImage := nil; // KHR
  1593. eglDestroyImage := nil; // KHR
  1594. eglGetPlatformDisplay := nil; // EXT
  1595. eglCreatePlatformWindowSurface := nil; // EXT
  1596. eglCreatePlatformPixmapSurface := nil; // EXT
  1597. eglWaitSync := nil; // KHR
  1598. {$EndIf}
  1599. {$IfDef EGL_KHR_cl_event2}
  1600. eglCreateSync64KHR := nil;
  1601. {$EndIf}
  1602. {$IfDef EGL_KHR_debug}
  1603. eglDebugMessageControlKHR := nil;
  1604. eglQueryDebugKHR := nil;
  1605. eglLabelObjectKHR := nil;
  1606. {$EndIf}
  1607. {$IfDef EGL_KHR_display_reference}
  1608. eglQueryDisplayAttribKHR := nil;
  1609. {$EndIf}
  1610. {$IfDef EGL_KHR_fence_sync}
  1611. {$IfDef CPU64}
  1612. eglCreateSyncKHR := nil;
  1613. eglDestroySyncKHR := nil;
  1614. eglClientWaitSyncKHR := nil;
  1615. eglGetSyncAttribKHR := nil;
  1616. {$EndIf}
  1617. {$EndIf}
  1618. {$IfDef EGL_KHR_image}
  1619. eglCreateImageKHR := nil;
  1620. eglDestroyImageKHR := nil;
  1621. {$EndIf}
  1622. {$IfDef EGL_KHR_lock_surface}
  1623. eglLockSurfaceKHR := nil;
  1624. eglUnlockSurfaceKHR := nil;
  1625. {$EndIf}
  1626. {$IfDef EGL_KHR_lock_surface3}
  1627. eglQuerySurface64KHR := nil;
  1628. {$EndIf}
  1629. {$IfDef EGL_KHR_partial_update}
  1630. eglSetDamageRegionKHR := nil;
  1631. {$EndIf}
  1632. {$IfDef EGL_KHR_reusable_sync}
  1633. {$IfDef CPU64}
  1634. eglSignalSyncKHR := nil;
  1635. {$EndIf}{$EndIf}
  1636. {$IfDef EGL_KHR_stream}
  1637. {$IfDef CPU64}
  1638. eglCreateStreamKHR := nil;
  1639. eglDestroyStreamKHR := nil;
  1640. eglStreamAttribKHR := nil;
  1641. eglQueryStreamKHR := nil;
  1642. eglQueryStreamu64KHR := nil;
  1643. {$EndIf}{$EndIf}
  1644. {$IfDef EGL_KHR_stream_attrib}
  1645. {$IfDef CPU64}
  1646. eglCreateStreamAttribKHR := nil;
  1647. eglSetStreamAttribKHR := nil;
  1648. eglQueryStreamAttribKHR := nil;
  1649. eglStreamConsumerAcquireAttribKHR := nil;
  1650. eglStreamConsumerReleaseAttribKHR := nil;
  1651. {$EndIf}{$EndIf}
  1652. {$IfDef EGL_KHR_stream_consumer_gltexture}
  1653. eglStreamConsumerGLTextureExternalKHR := nil;
  1654. eglStreamConsumerAcquireKHR := nil;
  1655. eglStreamConsumerReleaseKHR := nil;
  1656. {$EndIf}
  1657. {$IfDef EGL_KHR_stream_cross_process_fd}
  1658. eglGetStreamFileDescriptorKHR := nil;
  1659. eglCreateStreamFromFileDescriptorKHR := nil;
  1660. {$EndIf}
  1661. {$IfDef EGL_KHR_stream_fifo}
  1662. eglQueryStreamTimeKHR := nil;
  1663. {$EndIf}
  1664. {$IfDef EGL_KHR_stream_producer_eglsurface}
  1665. eglCreateStreamProducerSurfaceKHR := nil;
  1666. {$EndIf}
  1667. {$IfDef EGL_KHR_swap_buffers_with_damage}
  1668. eglSwapBuffersWithDamageKHR := nil;
  1669. {$EndIf}
  1670. {$IfDef EGL_KHR_wait_sync}
  1671. eglWaitSyncKHR := nil;
  1672. {$EndIf}
  1673. {$IfDef EGL_ANDROID_blob_cache}
  1674. eglSetBlobCacheFuncsANDROID := nil;
  1675. {$EndIf}
  1676. {$IfDef EGL_ANDROID_create_native_client_buffer}
  1677. eglCreateNativeClientBufferANDROID := nil;
  1678. {$EndIf}
  1679. {$IfDef EGL_ANDROID_get_frame_timestamps}
  1680. eglGetCompositorTimingSupportedANDROID := nil;
  1681. eglGetCompositorTimingANDROID := nil;
  1682. eglGetNextFrameIdANDROID := nil;
  1683. eglGetFrameTimestampSupportedANDROID
  1684. eglGetFrameTimestampsANDROID := nil;
  1685. {$EndIf}
  1686. {$IfDef EGL_ANDROID_get_native_client_buffer}
  1687. eglGetNativeClientBufferANDROID := nil;
  1688. {$EndIf}
  1689. {$IfDef EGL_ANDROID_native_fence_sync}
  1690. eglDupNativeFenceFDANDROID := nil;
  1691. {$EndIf}
  1692. {$IfDef EGL_ANDROID_presentation_time}
  1693. eglPresentationTimeANDROID := nil;
  1694. {$EndIf}
  1695. {$IfDef EGL_ANGLE_query_surface_pointer}
  1696. eglQuerySurfacePointerANGLE := nil;
  1697. {$EndIf}
  1698. {$IfDef EGL_ANGLE_sync_control_rate}
  1699. eglGetMscRateANGLE := nil;
  1700. {$EndIf}
  1701. {$IfDef EGL_EXT_client_sync}
  1702. eglClientSignalSyncEXT := nil;
  1703. {$EndIf}
  1704. {$IfDef EGL_EXT_compositor}
  1705. eglCompositorSetContextListEXT := nil;
  1706. eglCompositorSetContextAttributesEXT := nil;
  1707. eglCompositorSetWindowListEXT := nil;
  1708. eglCompositorSetWindowAttributesEXT := nil;
  1709. eglCompositorBindTexWindowEXT := nil;
  1710. eglCompositorSetSizeEXT := nil;
  1711. eglCompositorSwapPolicyEXT := nil;
  1712. {$EndIf}
  1713. {$IfDef EGL_EXT_device_base}
  1714. eglQueryDeviceAttribEXT := nil;
  1715. eglQueryDeviceStringEXT := nil;
  1716. eglQueryDevicesEXT := nil;
  1717. eglQueryDisplayAttribEXT := nil;
  1718. {$EndIf}
  1719. {$IfDef EGL_EXT_device_persistent_id}
  1720. eglQueryDeviceBinaryEXT := nil;
  1721. {$EndIf}
  1722. {$IfDef EGL_EXT_image_dma_buf_import_modifiers}
  1723. eglQueryDmaBufFormatsEXT := nil;
  1724. eglQueryDmaBufModifiersEXT := nil;
  1725. {$EndIf}
  1726. {$IfDef EGL_EXT_output_base}
  1727. eglGetOutputLayersEXT := nil;
  1728. eglGetOutputPortsEXT := nil;
  1729. eglOutputLayerAttribEXT := nil;
  1730. eglQueryOutputLayerAttribEXT := nil;
  1731. eglQueryOutputLayerStringEXT := nil;
  1732. eglOutputPortAttribEXT := nil;
  1733. eglQueryOutputPortAttribEXT := nil;
  1734. eglQueryOutputPortStringEXT := nil;
  1735. {$EndIf}
  1736. {$IfDef EGL_EXT_platform_base}
  1737. eglGetPlatformDisplayEXT := nil;
  1738. eglCreatePlatformWindowSurfaceEXT := nil;
  1739. eglCreatePlatformPixmapSurfaceEXT := nil;
  1740. {$EndIf}
  1741. {$IfDef EGL_EXT_stream_consumer_egloutput}
  1742. eglStreamConsumerOutputEXT := nil;
  1743. {$EndIf}
  1744. {$IfDef EGL_EXT_surface_compression}
  1745. eglQuerySupportedCompressionRatesEXT := nil;
  1746. {$EndIf}
  1747. {$IfDef EGL_EXT_swap_buffers_with_damage}
  1748. eglSwapBuffersWithDamageEXT := nil;
  1749. {$EndIf}
  1750. {$IfDef EGL_EXT_sync_reuse}
  1751. eglUnsignalSyncEXT := nil;
  1752. {$EndIf}
  1753. {$IfDef EGL_HI_clientpixmap}
  1754. eglCreatePixmapSurfaceHI := nil;
  1755. {$EndIf}
  1756. {$IfDef EGL_MESA_drm_image}
  1757. eglCreateDRMImageMESA := nil;
  1758. eglExportDRMImageMESA := nil;
  1759. {$EndIf}
  1760. {$IfDef EGL_MESA_image_dma_buf_export}
  1761. eglExportDMABUFImageQueryMESA := nil;
  1762. eglExportDMABUFImageMESA := nil;
  1763. {$EndIf}
  1764. {$IfDef EGL_MESA_query_driver}
  1765. eglGetDisplayDriverConfig := nil;
  1766. eglGetDisplayDriverName := nil;
  1767. {$EndIf}
  1768. {$IfDef EGL_NOK_swap_region}
  1769. eglSwapBuffersRegionNOK := nil;
  1770. {$EndIf}
  1771. {$IfDef EGL_NOK_swap_region2}
  1772. eglSwapBuffersRegion2NOK := nil;
  1773. {$EndIf}
  1774. {$IfDef EGL_NV_native_query}
  1775. eglQueryNativeDisplayNV := nil;
  1776. eglQueryNativeWindowNV := nil;
  1777. eglQueryNativePixmapNV := nil;
  1778. {$EndIf}
  1779. {$IfDef EGL_NV_post_sub_buffer}
  1780. eglPostSubBufferNV := nil;
  1781. {$EndIf}
  1782. {$IfDef EGL_NV_stream_consumer_eglimage}
  1783. eglStreamImageConsumerConnectNV := nil;
  1784. eglQueryStreamConsumerEventNV := nil;
  1785. eglStreamAcquireImageNV := nil;
  1786. eglStreamReleaseImageNV := nil;
  1787. {$EndIf}
  1788. {$IfDef EGL_NV_stream_consumer_gltexture_yuv}
  1789. eglStreamConsumerGLTextureExternalAttribsNV := nil;
  1790. {$EndIf}
  1791. {$IfDef EGL_NV_stream_flush}
  1792. eglStreamFlushNV := nil;
  1793. {$EndIf}
  1794. {$IfDef EGL_NV_stream_metadata}
  1795. eglQueryDisplayAttribNV := nil;
  1796. eglSetStreamMetadataNV := nil;
  1797. eglQueryStreamMetadataNV := nil;
  1798. {$EndIf}
  1799. {$IfDef EGL_NV_stream_reset}
  1800. eglResetStreamNV := nil;
  1801. {$EndIf}
  1802. {$IfDef EGL_NV_stream_sync}
  1803. eglCreateStreamSyncNV := nil;
  1804. {$EndIf}
  1805. {$IfDef EGL_NV_sync}
  1806. {$IfDef CPU64}
  1807. eglCreateFenceSyncNV := nil;
  1808. eglDestroySyncNV := nil;
  1809. eglFenceNV := nil;
  1810. eglClientWaitSyncNV := nil;
  1811. eglSignalSyncNV := nil;
  1812. eglGetSyncAttribNV := nil;
  1813. {$EndIf}{$EndIf}
  1814. {$IfDef EGL_NV_system_time}
  1815. {$IfDef CPU64}
  1816. eglGetSystemTimeFrequencyNV := nil;
  1817. eglGetSystemTimeNV := nil;
  1818. {$EndIf}{$EndIf}
  1819. {$IfDef EGL_WL_bind_wayland_display}
  1820. eglBindWaylandDisplayWL := nil;
  1821. eglUnbindWaylandDisplayWL := nil;
  1822. eglQueryWaylandBufferWL := nil;
  1823. {$EndIf}
  1824. {$IfDef EGL_WL_create_wayland_buffer_from_image}
  1825. eglCreateWaylandBufferFromImageWL := nil;
  1826. {$EndIf}
  1827. {$EndIf}
  1828. end;
  1829. end.