eglext_angle.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428
  1. //
  2. // Copyright 2017 The ANGLE Project Authors. All rights reserved.
  3. // Use of this source code is governed by a BSD-style license that can be
  4. // found in the LICENSE file.
  5. //
  6. // eglext_angle.h: ANGLE modifications to the eglext.h header file.
  7. // Currently we don't include this file directly, we patch eglext.h
  8. // to include it implicitly so it is visible throughout our code.
  9. #ifndef INCLUDE_EGL_EGLEXT_ANGLE_
  10. #define INCLUDE_EGL_EGLEXT_ANGLE_
  11. // clang-format off
  12. #ifndef EGL_ANGLE_robust_resource_initialization
  13. #define EGL_ANGLE_robust_resource_initialization 1
  14. #define EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE 0x3453
  15. #endif /* EGL_ANGLE_robust_resource_initialization */
  16. #ifndef EGL_ANGLE_keyed_mutex
  17. #define EGL_ANGLE_keyed_mutex 1
  18. #define EGL_DXGI_KEYED_MUTEX_ANGLE 0x33A2
  19. #endif /* EGL_ANGLE_keyed_mutex */
  20. #ifndef EGL_ANGLE_d3d_texture_client_buffer
  21. #define EGL_ANGLE_d3d_texture_client_buffer 1
  22. #define EGL_D3D_TEXTURE_ANGLE 0x33A3
  23. #define EGL_TEXTURE_OFFSET_X_ANGLE 0x3490
  24. #define EGL_TEXTURE_OFFSET_Y_ANGLE 0x3491
  25. #define EGL_D3D11_TEXTURE_PLANE_ANGLE 0x3492
  26. #define EGL_D3D11_TEXTURE_ARRAY_SLICE_ANGLE 0x3493
  27. #endif /* EGL_ANGLE_d3d_texture_client_buffer */
  28. #ifndef EGL_ANGLE_software_display
  29. #define EGL_ANGLE_software_display 1
  30. #define EGL_SOFTWARE_DISPLAY_ANGLE ((EGLNativeDisplayType)-1)
  31. #endif /* EGL_ANGLE_software_display */
  32. #ifndef EGL_ANGLE_direct3d_display
  33. #define EGL_ANGLE_direct3d_display 1
  34. #define EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE ((EGLNativeDisplayType)-2)
  35. #define EGL_D3D11_ONLY_DISPLAY_ANGLE ((EGLNativeDisplayType)-3)
  36. #endif /* EGL_ANGLE_direct3d_display */
  37. #ifndef EGL_ANGLE_direct_composition
  38. #define EGL_ANGLE_direct_composition 1
  39. #define EGL_DIRECT_COMPOSITION_ANGLE 0x33A5
  40. #endif /* EGL_ANGLE_direct_composition */
  41. #ifndef EGL_ANGLE_platform_angle
  42. #define EGL_ANGLE_platform_angle 1
  43. #define EGL_PLATFORM_ANGLE_ANGLE 0x3202
  44. #define EGL_PLATFORM_ANGLE_TYPE_ANGLE 0x3203
  45. #define EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE 0x3204
  46. #define EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE 0x3205
  47. #define EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE 0x3206
  48. #define EGL_PLATFORM_ANGLE_DEBUG_LAYERS_ENABLED_ANGLE 0x3451
  49. #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE 0x3209
  50. #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE 0x320A
  51. #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE 0x345E
  52. #define EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE 0x348F
  53. #endif /* EGL_ANGLE_platform_angle */
  54. #ifndef EGL_ANGLE_platform_angle_d3d
  55. #define EGL_ANGLE_platform_angle_d3d 1
  56. #define EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE 0x3207
  57. #define EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE 0x3208
  58. #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE 0x320B
  59. #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE 0x320C
  60. #define EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE 0x320F
  61. #endif /* EGL_ANGLE_platform_angle_d3d */
  62. #ifndef EGL_ANGLE_platform_angle_d3d_luid
  63. #define EGL_ANGLE_platform_angle_d3d_luid 1
  64. #define EGL_PLATFORM_ANGLE_D3D_LUID_HIGH_ANGLE 0x34A0
  65. #define EGL_PLATFORM_ANGLE_D3D_LUID_LOW_ANGLE 0x34A1
  66. #endif /* EGL_ANGLE_platform_angle_d3d_luid */
  67. #ifndef EGL_ANGLE_platform_angle_d3d11on12
  68. #define EGL_ANGLE_platform_angle_d3d11on12 1
  69. #define EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE 0x3488
  70. #endif /* EGL_ANGLE_platform_angle_d3d11on12 */
  71. #ifndef EGL_ANGLE_platform_angle_opengl
  72. #define EGL_ANGLE_platform_angle_opengl 1
  73. #define EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE 0x320D
  74. #define EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE 0x320E
  75. #define EGL_PLATFORM_ANGLE_EGL_HANDLE_ANGLE 0x3480
  76. #endif /* EGL_ANGLE_platform_angle_opengl */
  77. #ifndef EGL_ANGLE_platform_angle_null
  78. #define EGL_ANGLE_platform_angle_null 1
  79. #define EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE 0x33AE
  80. #endif /* EGL_ANGLE_platform_angle_null */
  81. #ifndef EGL_ANGLE_platform_angle_vulkan
  82. #define EGL_ANGLE_platform_angle_vulkan 1
  83. #define EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE 0x3450
  84. #define EGL_PLATFORM_VULKAN_DISPLAY_MODE_SIMPLE_ANGLE 0x34A4
  85. #define EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE 0x34A5
  86. #endif /* EGL_ANGLE_platform_angle_vulkan */
  87. #ifndef EGL_ANGLE_platform_angle_metal
  88. #define EGL_ANGLE_platform_angle_metal 1
  89. #define EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE 0x3489
  90. #endif /* EGL_ANGLE_platform_angle_metal */
  91. #ifndef EGL_ANGLE_platform_angle_device_type_swiftshader
  92. #define EGL_ANGLE_platform_angle_device_type_swiftshader
  93. #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE 0x3487
  94. #endif /* EGL_ANGLE_platform_angle_device_type_swiftshader */
  95. #ifndef EGL_ANGLE_platform_angle_device_type_egl_angle
  96. #define EGL_ANGLE_platform_angle_device_type_egl_angle
  97. #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_EGL_ANGLE 0x348E
  98. #endif /* EGL_ANGLE_platform_angle_device_type_egl_angle */
  99. #ifndef EGL_ANGLE_context_virtualization
  100. #define EGL_ANGLE_context_virtualization 1
  101. #define EGL_CONTEXT_VIRTUALIZATION_GROUP_ANGLE 0x3481
  102. #endif /* EGL_ANGLE_context_virtualization */
  103. #ifndef EGL_ANGLE_platform_angle_device_context_volatile_eagl
  104. #define EGL_ANGLE_platform_angle_device_context_volatile_eagl 1
  105. #define EGL_PLATFORM_ANGLE_DEVICE_CONTEXT_VOLATILE_EAGL_ANGLE 0x34A2
  106. #endif /* EGL_ANGLE_platform_angle_device_context_volatile_eagl */
  107. #ifndef EGL_ANGLE_platform_angle_device_context_volatile_cgl
  108. #define EGL_ANGLE_platform_angle_device_context_volatile_cgl 1
  109. #define EGL_PLATFORM_ANGLE_DEVICE_CONTEXT_VOLATILE_CGL_ANGLE 0x34A3
  110. #endif /* EGL_ANGLE_platform_angle_device_context_volatile_cgl */
  111. #ifndef EGL_ANGLE_platform_angle_device_id
  112. #define EGL_ANGLE_platform_angle_device_id
  113. #define EGL_PLATFORM_ANGLE_DEVICE_ID_HIGH_ANGLE 0x34D6
  114. #define EGL_PLATFORM_ANGLE_DEVICE_ID_LOW_ANGLE 0x34D7
  115. #define EGL_PLATFORM_ANGLE_DISPLAY_KEY_ANGLE 0x34DC
  116. #endif /* EGL_ANGLE_platform_angle_device_id */
  117. #ifndef EGL_ANGLE_x11_visual
  118. #define EGL_ANGLE_x11_visual
  119. #define EGL_X11_VISUAL_ID_ANGLE 0x33A3
  120. #endif /* EGL_ANGLE_x11_visual */
  121. #ifndef EGL_ANGLE_surface_orientation
  122. #define EGL_ANGLE_surface_orientation
  123. #define EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE 0x33A7
  124. #define EGL_SURFACE_ORIENTATION_ANGLE 0x33A8
  125. #define EGL_SURFACE_ORIENTATION_INVERT_X_ANGLE 0x0001
  126. #define EGL_SURFACE_ORIENTATION_INVERT_Y_ANGLE 0x0002
  127. #endif /* EGL_ANGLE_surface_orientation */
  128. #ifndef EGL_ANGLE_experimental_present_path
  129. #define EGL_ANGLE_experimental_present_path
  130. #define EGL_EXPERIMENTAL_PRESENT_PATH_ANGLE 0x33A4
  131. #define EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE 0x33A9
  132. #define EGL_EXPERIMENTAL_PRESENT_PATH_COPY_ANGLE 0x33AA
  133. #endif /* EGL_ANGLE_experimental_present_path */
  134. #ifndef EGL_ANGLE_stream_producer_d3d_texture
  135. #define EGL_ANGLE_stream_producer_d3d_texture
  136. #define EGL_D3D_TEXTURE_SUBRESOURCE_ID_ANGLE 0x33AB
  137. typedef EGLBoolean(EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC)(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
  138. typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC)(EGLDisplay dpy, EGLStreamKHR stream, void *texture, const EGLAttrib *attrib_list);
  139. #ifdef EGL_EGLEXT_PROTOTYPES
  140. EGLAPI EGLBoolean EGLAPIENTRY eglCreateStreamProducerD3DTextureANGLE(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
  141. EGLAPI EGLBoolean EGLAPIENTRY eglStreamPostD3DTextureANGLE(EGLDisplay dpy, EGLStreamKHR stream, void *texture, const EGLAttrib *attrib_list);
  142. #endif
  143. #endif /* EGL_ANGLE_stream_producer_d3d_texture */
  144. #ifndef EGL_ANGLE_create_context_webgl_compatibility
  145. #define EGL_ANGLE_create_context_webgl_compatibility 1
  146. #define EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE 0x33AC
  147. #endif /* EGL_ANGLE_create_context_webgl_compatibility */
  148. #ifndef EGL_ANGLE_display_texture_share_group
  149. #define EGL_ANGLE_display_texture_share_group 1
  150. #define EGL_DISPLAY_TEXTURE_SHARE_GROUP_ANGLE 0x33AF
  151. #endif /* EGL_ANGLE_display_texture_share_group */
  152. #ifndef EGL_CHROMIUM_create_context_bind_generates_resource
  153. #define EGL_CHROMIUM_create_context_bind_generates_resource 1
  154. #define EGL_CONTEXT_BIND_GENERATES_RESOURCE_CHROMIUM 0x33AD
  155. #endif /* EGL_CHROMIUM_create_context_bind_generates_resource */
  156. #ifndef EGL_ANGLE_metal_create_context_ownership_identity
  157. #define EGL_ANGLE_metal_create_context_ownership_identity 1
  158. #define EGL_CONTEXT_METAL_OWNERSHIP_IDENTITY_ANGLE 0x34D2
  159. #endif /* EGL_ANGLE_metal_create_context_ownership_identity */
  160. #ifndef EGL_ANGLE_create_context_client_arrays
  161. #define EGL_ANGLE_create_context_client_arrays 1
  162. #define EGL_CONTEXT_CLIENT_ARRAYS_ENABLED_ANGLE 0x3452
  163. #endif /* EGL_ANGLE_create_context_client_arrays */
  164. #ifndef EGL_ANGLE_device_creation
  165. #define EGL_ANGLE_device_creation 1
  166. typedef EGLDeviceEXT(EGLAPIENTRYP PFNEGLCREATEDEVICEANGLEPROC) (EGLint device_type, void *native_device, const EGLAttrib *attrib_list);
  167. typedef EGLBoolean(EGLAPIENTRYP PFNEGLRELEASEDEVICEANGLEPROC) (EGLDeviceEXT device);
  168. #ifdef EGL_EGLEXT_PROTOTYPES
  169. EGLAPI EGLDeviceEXT EGLAPIENTRY eglCreateDeviceANGLE(EGLint device_type, void *native_device, const EGLAttrib *attrib_list);
  170. EGLAPI EGLBoolean EGLAPIENTRY eglReleaseDeviceANGLE(EGLDeviceEXT device);
  171. #endif
  172. #endif /* EGL_ANGLE_device_creation */
  173. #ifndef EGL_ANGLE_program_cache_control
  174. #define EGL_ANGLE_program_cache_control 1
  175. #define EGL_PROGRAM_CACHE_SIZE_ANGLE 0x3455
  176. #define EGL_PROGRAM_CACHE_KEY_LENGTH_ANGLE 0x3456
  177. #define EGL_PROGRAM_CACHE_RESIZE_ANGLE 0x3457
  178. #define EGL_PROGRAM_CACHE_TRIM_ANGLE 0x3458
  179. #define EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE 0x3459
  180. typedef EGLint (EGLAPIENTRYP PFNEGLPROGRAMCACHEGETATTRIBANGLEPROC) (EGLDisplay dpy, EGLenum attrib);
  181. typedef void (EGLAPIENTRYP PFNEGLPROGRAMCACHEQUERYANGLEPROC) (EGLDisplay dpy, EGLint index, void *key, EGLint *keysize, void *binary, EGLint *binarysize);
  182. typedef void (EGLAPIENTRYP PFNEGLPROGRAMCACHEPOPULATEANGLEPROC) (EGLDisplay dpy, const void *key, EGLint keysize, const void *binary, EGLint binarysize);
  183. typedef EGLint (EGLAPIENTRYP PFNEGLPROGRAMCACHERESIZEANGLEPROC) (EGLDisplay dpy, EGLint limit, EGLint mode);
  184. #ifdef EGL_EGLEXT_PROTOTYPES
  185. EGLAPI EGLint EGLAPIENTRY eglProgramCacheGetAttribANGLE(EGLDisplay dpy, EGLenum attrib);
  186. EGLAPI void EGLAPIENTRY eglProgramCacheQueryANGLE(EGLDisplay dpy, EGLint index, void *key, EGLint *keysize, void *binary, EGLint *binarysize);
  187. EGLAPI void EGLAPIENTRY eglProgramCachePopulateANGLE(EGLDisplay dpy, const void *key, EGLint keysize, const void *binary, EGLint binarysize);
  188. EGLAPI EGLint EGLAPIENTRY eglProgramCacheResizeANGLE(EGLDisplay dpy, EGLint limit, EGLint mode);
  189. #endif
  190. #endif /* EGL_ANGLE_program_cache_control */
  191. #ifndef EGL_ANGLE_iosurface_client_buffer
  192. #define EGL_ANGLE_iosurface_client_buffer 1
  193. #define EGL_IOSURFACE_ANGLE 0x3454
  194. #define EGL_IOSURFACE_PLANE_ANGLE 0x345A
  195. #define EGL_TEXTURE_RECTANGLE_ANGLE 0x345B
  196. #define EGL_TEXTURE_TYPE_ANGLE 0x345C
  197. #define EGL_TEXTURE_INTERNAL_FORMAT_ANGLE 0x345D
  198. #define EGL_IOSURFACE_USAGE_HINT_ANGLE 0x348A
  199. #define EGL_IOSURFACE_READ_HINT_ANGLE 0x0001
  200. #define EGL_IOSURFACE_WRITE_HINT_ANGLE 0x0002
  201. #define EGL_BIND_TO_TEXTURE_TARGET_ANGLE 0x348D
  202. #endif /* EGL_ANGLE_iosurface_client_buffer */
  203. #ifndef ANGLE_metal_texture_client_buffer
  204. #define ANGLE_metal_texture_client_buffer 1
  205. #define EGL_METAL_TEXTURE_ANGLE 0x34A7
  206. #endif /* ANGLE_metal_texture_client_buffer */
  207. #ifndef EGL_ANGLE_create_context_extensions_enabled
  208. #define EGL_ANGLE_create_context_extensions_enabled 1
  209. #define EGL_EXTENSIONS_ENABLED_ANGLE 0x345F
  210. #endif /* EGL_ANGLE_create_context_extensions_enabled */
  211. #ifndef EGL_CHROMIUM_sync_control
  212. #define EGL_CHROMIUM_sync_control 1
  213. typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCVALUESCHROMIUMPROC) (EGLDisplay dpy,
  214. EGLSurface surface,
  215. EGLuint64KHR *ust,
  216. EGLuint64KHR *msc,
  217. EGLuint64KHR *sbc);
  218. #ifdef EGL_EGLEXT_PROTOTYPES
  219. EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncValuesCHROMIUM(EGLDisplay dpy,
  220. EGLSurface surface,
  221. EGLuint64KHR *ust,
  222. EGLuint64KHR *msc,
  223. EGLuint64KHR *sbc);
  224. #endif
  225. #endif /* EGL_CHROMIUM_sync_control */
  226. #ifndef EGL_ANGLE_sync_control_rate
  227. #define EGL_ANGLE_sync_control_rate 1
  228. typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMSCRATEANGLEPROC) (EGLDisplay dpy,
  229. EGLSurface surface,
  230. EGLint *numerator,
  231. EGLint *denominator);
  232. #ifdef EGL_EGLEXT_PROTOTYPES
  233. EGLAPI EGLBoolean EGLAPIENTRY eglGetMscRateANGLE(EGLDisplay dpy,
  234. EGLSurface surface,
  235. EGLint *numerator,
  236. EGLint *denominator);
  237. #endif
  238. #endif /* EGL_ANGLE_sync_control_rate */
  239. #ifndef EGL_ANGLE_power_preference
  240. #define EGL_ANGLE_power_preference 1
  241. #define EGL_POWER_PREFERENCE_ANGLE 0x3482
  242. #define EGL_LOW_POWER_ANGLE 0x0001
  243. #define EGL_HIGH_POWER_ANGLE 0x0002
  244. typedef void(EGLAPIENTRYP PFNEGLRELEASEHIGHPOWERGPUANGLEPROC) (EGLDisplay dpy, EGLContext ctx);
  245. typedef void(EGLAPIENTRYP PFNEGLREACQUIREHIGHPOWERGPUANGLEPROC) (EGLDisplay dpy, EGLContext ctx);
  246. typedef void(EGLAPIENTRYP PFNEGLHANDLEGPUSWITCHANGLEPROC) (EGLDisplay dpy);
  247. typedef void(EGLAPIENTRYP PFNEGLFORCEGPUSWITCHANGLEPROC) (EGLDisplay dpy, EGLint gpuIDHigh, EGLint gpuIDLow);
  248. #ifdef EGL_EGLEXT_PROTOTYPES
  249. EGLAPI void EGLAPIENTRY eglReleaseHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx);
  250. EGLAPI void EGLAPIENTRY eglReacquireHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx);
  251. EGLAPI void EGLAPIENTRY eglHandleGPUSwitchANGLE(EGLDisplay dpy);
  252. EGLAPI void EGLAPIENTRY eglForceGPUSwitchANGLE(EGLDisplay dpy, EGLint gpuIDHigh, EGLint gpuIDLow);
  253. #endif
  254. #endif /* EGL_ANGLE_power_preference */
  255. #ifndef EGL_ANGLE_wait_until_work_scheduled
  256. #define EGL_ANGLE_wait_until_work_scheduled 1
  257. typedef void(EGLAPIENTRYP PFNEGLWAITUNTILWORKSCHEDULEDANGLEPROC) (EGLDisplay dpy);
  258. #ifdef EGL_EGLEXT_PROTOTYPES
  259. EGLAPI void EGLAPIENTRY eglWaitUntilWorkScheduledANGLE(EGLDisplay dpy);
  260. #endif
  261. #endif /* EGL_ANGLE_wait_until_work_scheduled */
  262. #ifndef EGL_ANGLE_feature_control
  263. #define EGL_ANGLE_feature_control 1
  264. #define EGL_FEATURE_NAME_ANGLE 0x3460
  265. #define EGL_FEATURE_CATEGORY_ANGLE 0x3461
  266. #define EGL_FEATURE_DESCRIPTION_ANGLE 0x3462
  267. #define EGL_FEATURE_BUG_ANGLE 0x3463
  268. #define EGL_FEATURE_STATUS_ANGLE 0x3464
  269. #define EGL_FEATURE_COUNT_ANGLE 0x3465
  270. #define EGL_FEATURE_OVERRIDES_ENABLED_ANGLE 0x3466
  271. #define EGL_FEATURE_OVERRIDES_DISABLED_ANGLE 0x3467
  272. #define EGL_FEATURE_CONDITION_ANGLE 0x3468
  273. #define EGL_FEATURE_ALL_DISABLED_ANGLE 0x3469
  274. typedef const char *(EGLAPIENTRYP PFNEGLQUERYSTRINGIANGLEPROC) (EGLDisplay dpy, EGLint name, EGLint index);
  275. typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBANGLEPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
  276. #ifdef EGL_EGLEXT_PROTOTYPES
  277. EGLAPI const char *EGLAPIENTRY eglQueryStringiANGLE(EGLDisplay dpy, EGLint name, EGLint index);
  278. EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribANGLE(EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
  279. #endif
  280. #endif /* EGL_ANGLE_feature_control */
  281. #ifndef EGL_ANGLE_image_d3d11_texture
  282. #define EGL_D3D11_TEXTURE_ANGLE 0x3484
  283. #define EGL_TEXTURE_INTERNAL_FORMAT_ANGLE 0x345D
  284. #endif /* EGL_ANGLE_image_d3d11_texture */
  285. #ifndef EGL_ANGLE_create_context_backwards_compatible
  286. #define EGL_ANGLE_create_context_backwards_compatible 1
  287. #define EGL_CONTEXT_OPENGL_BACKWARDS_COMPATIBLE_ANGLE 0x3483
  288. #endif /* EGL_ANGLE_create_context_backwards_compatible */
  289. #ifndef EGL_ANGLE_device_cgl
  290. #define EGL_ANGLE_device_cgl 1
  291. #define EGL_CGL_CONTEXT_ANGLE 0x3485
  292. #define EGL_CGL_PIXEL_FORMAT_ANGLE 0x3486
  293. #endif
  294. #ifndef EGL_ANGLE_ggp_stream_descriptor
  295. #define EGL_ANGLE_ggp_stream_descriptor 1
  296. #define EGL_GGP_STREAM_DESCRIPTOR_ANGLE 0x348B
  297. #endif /* EGL_ANGLE_ggp_stream_descriptor */
  298. #ifndef EGL_ANGLE_swap_with_frame_token
  299. #define EGL_ANGLE_swap_with_frame_token 1
  300. typedef khronos_uint64_t EGLFrameTokenANGLE;
  301. typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC)(EGLDisplay dpy, EGLSurface surface, EGLFrameTokenANGLE frametoken);
  302. #ifdef EGL_EGLEXT_PROTOTYPES
  303. EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithFrameTokenANGLE(EGLDisplay dpy, EGLSurface surface, EGLFrameTokenANGLE frametoken);
  304. #endif
  305. #endif /* EGL_ANGLE_swap_with_frame_token */
  306. #ifndef EGL_ANGLE_prepare_swap_buffers
  307. #define EGL_ANGLE_prepare_swap_buffers 1
  308. typedef EGLBoolean (EGLAPIENTRYP PFNEGLPREPARESWAPBUFFERSANGLEPROC)(EGLDisplay dpy, EGLSurface surface);
  309. #ifdef EGL_EGLEXT_PROTOTYPES
  310. EGLAPI EGLBoolean EGLAPIENTRY eglPrepareSwapBuffersANGLE(EGLDisplay dpy, EGLSurface surface);
  311. #endif
  312. #endif /* EGL_ANGLE_prepare_swap_buffers */
  313. #ifndef EGL_ANGLE_device_eagl
  314. #define EGL_ANGLE_device_eagl 1
  315. #define EGL_EAGL_CONTEXT_ANGLE 0x348C
  316. #endif
  317. #ifndef EGL_ANGLE_device_metal
  318. #define EGL_ANGLE_device_metal 1
  319. #define EGL_METAL_DEVICE_ANGLE 0x34A6
  320. #endif /* EGL_ANGLE_device_metal */
  321. #ifndef EGL_ANGLE_display_semaphore_share_group
  322. #define EGL_ANGLE_display_semaphore_share_group 1
  323. #define EGL_DISPLAY_SEMAPHORE_SHARE_GROUP_ANGLE 0x348D
  324. #endif /* EGL_ANGLE_display_semaphore_share_group */
  325. #ifndef EGL_ANGLE_external_context_and_surface
  326. #define EGL_ANGLE_external_context_and_surface 1
  327. #define EGL_EXTERNAL_CONTEXT_ANGLE 0x348E
  328. #define EGL_EXTERNAL_SURFACE_ANGLE 0x348F
  329. #define EGL_EXTERNAL_CONTEXT_SAVE_STATE_ANGLE 0x3490
  330. #endif /* EGL_ANGLE_external_context_and_surface */
  331. #ifndef EGL_ANGLE_create_surface_swap_interval
  332. #define EGL_ANGLE_create_surface_swap_interval 1
  333. #define EGL_SWAP_INTERVAL_ANGLE 0x322F
  334. #endif /* EGL_ANGLE_create_surface_swap_interval */
  335. #ifndef EGL_ANGLE_device_vulkan
  336. #define EGL_ANGLE_device_vulkan 1
  337. #define EGL_VULKAN_VERSION_ANGLE 0x34A8
  338. #define EGL_VULKAN_INSTANCE_ANGLE 0x34A9
  339. #define EGL_VULKAN_INSTANCE_EXTENSIONS_ANGLE 0x34AA
  340. #define EGL_VULKAN_PHYSICAL_DEVICE_ANGLE 0x34AB
  341. #define EGL_VULKAN_DEVICE_ANGLE 0x34AC
  342. #define EGL_VULKAN_DEVICE_EXTENSIONS_ANGLE 0x34AD
  343. #define EGL_VULKAN_FEATURES_ANGLE 0x34AE
  344. #define EGL_VULKAN_QUEUE_ANGLE 0x34AF
  345. #define EGL_VULKAN_QUEUE_FAMILIY_INDEX_ANGLE 0x34D0
  346. #define EGL_VULKAN_GET_INSTANCE_PROC_ADDR 0x34D1
  347. #endif /* EGL_ANGLE_device_vulkan */
  348. #ifndef EGL_ANGLE_vulkan_image
  349. #define EGL_ANGLE_vulkan_image
  350. #define EGL_VULKAN_IMAGE_ANGLE 0x34D3
  351. #define EGL_VULKAN_IMAGE_CREATE_INFO_HI_ANGLE 0x34D4
  352. #define EGL_VULKAN_IMAGE_CREATE_INFO_LO_ANGLE 0x34D5
  353. typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTVKIMAGEANGLEPROC)(EGLDisplay dpy, EGLImage image, void* vk_image, void* vk_image_create_info);
  354. #ifdef EGL_EGLEXT_PROTOTYPES
  355. EGLAPI EGLBoolean EGLAPIENTRY eglExportVkImageANGLE(EGLDisplay dpy, EGLImage image, void* vk_image, void* vk_image_create_info);
  356. #endif
  357. #endif /* EGL_ANGLE_vulkan_image */
  358. #ifndef EGL_ANGLE_metal_shared_event_sync
  359. #define EGL_ANGLE_metal_hared_event_sync 1
  360. #define EGL_SYNC_METAL_SHARED_EVENT_ANGLE 0x34D8
  361. #define EGL_SYNC_METAL_SHARED_EVENT_OBJECT_ANGLE 0x34D9
  362. #define EGL_SYNC_METAL_SHARED_EVENT_SIGNAL_VALUE_LO_ANGLE 0x34DA
  363. #define EGL_SYNC_METAL_SHARED_EVENT_SIGNAL_VALUE_HI_ANGLE 0x34DB
  364. #define EGL_SYNC_METAL_SHARED_EVENT_SIGNALED_ANGLE 0x34DC
  365. typedef void* (EGLAPIENTRYP PFNEGLCOPYMETALSHAREDEVENTANGLEPROC)(EGLDisplay dpy, EGLSync sync);
  366. #ifdef EGL_EGLEXT_PROTOTYPES
  367. EGLAPI void *EGLAPIENTRY eglCopyMetalSharedEventANGLE(EGLDisplay dpy, EGLSync sync);
  368. #endif
  369. #endif /* EGL_ANGLE_metal_shared_event_sync */
  370. // clang-format on
  371. #endif // INCLUDE_EGL_EGLEXT_ANGLE_