• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
10 #ifndef INCLUDE_EGL_EGLEXT_ANGLE_
11 #define INCLUDE_EGL_EGLEXT_ANGLE_
12 
13 // clang-format off
14 
15 #ifndef EGL_ANGLE_robust_resource_initialization
16 #define EGL_ANGLE_robust_resource_initialization 1
17 #define EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE 0x3453
18 #endif /* EGL_ANGLE_robust_resource_initialization */
19 
20 #ifndef EGL_ANGLE_keyed_mutex
21 #define EGL_ANGLE_keyed_mutex 1
22 #define EGL_DXGI_KEYED_MUTEX_ANGLE        0x33A2
23 #endif /* EGL_ANGLE_keyed_mutex */
24 
25 #ifndef EGL_ANGLE_d3d_texture_client_buffer
26 #define EGL_ANGLE_d3d_texture_client_buffer 1
27 #define EGL_D3D_TEXTURE_ANGLE             0x33A3
28 #define EGL_TEXTURE_OFFSET_X_ANGLE        0x3490
29 #define EGL_TEXTURE_OFFSET_Y_ANGLE        0x3491
30 #endif /* EGL_ANGLE_d3d_texture_client_buffer */
31 
32 #ifndef EGL_ANGLE_software_display
33 #define EGL_ANGLE_software_display 1
34 #define EGL_SOFTWARE_DISPLAY_ANGLE ((EGLNativeDisplayType)-1)
35 #endif /* EGL_ANGLE_software_display */
36 
37 #ifndef EGL_ANGLE_direct3d_display
38 #define EGL_ANGLE_direct3d_display 1
39 #define EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE ((EGLNativeDisplayType)-2)
40 #define EGL_D3D11_ONLY_DISPLAY_ANGLE ((EGLNativeDisplayType)-3)
41 #endif /* EGL_ANGLE_direct3d_display */
42 
43 #ifndef EGL_ANGLE_direct_composition
44 #define EGL_ANGLE_direct_composition 1
45 #define EGL_DIRECT_COMPOSITION_ANGLE 0x33A5
46 #endif /* EGL_ANGLE_direct_composition */
47 
48 #ifndef EGL_ANGLE_platform_angle
49 #define EGL_ANGLE_platform_angle 1
50 #define EGL_PLATFORM_ANGLE_ANGLE          0x3202
51 #define EGL_PLATFORM_ANGLE_TYPE_ANGLE     0x3203
52 #define EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE 0x3204
53 #define EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE 0x3205
54 #define EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE 0x3206
55 #define EGL_PLATFORM_ANGLE_DEBUG_LAYERS_ENABLED_ANGLE 0x3451
56 #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE 0x3209
57 #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE 0x320A
58 #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE 0x345E
59 #define EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE 0x348F
60 #endif /* EGL_ANGLE_platform_angle */
61 
62 #ifndef EGL_ANGLE_platform_angle_d3d
63 #define EGL_ANGLE_platform_angle_d3d 1
64 #define EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE 0x3207
65 #define EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE 0x3208
66 #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE 0x320B
67 #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE 0x320C
68 #define EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE 0x320F
69 #endif /* EGL_ANGLE_platform_angle_d3d */
70 
71 #ifndef EGL_ANGLE_platform_angle_d3d_luid
72 #define EGL_ANGLE_platform_angle_d3d_luid 1
73 #define EGL_PLATFORM_ANGLE_D3D_LUID_HIGH_ANGLE 0x34A0
74 #define EGL_PLATFORM_ANGLE_D3D_LUID_LOW_ANGLE 0x34A1
75 #endif /* EGL_ANGLE_platform_angle_d3d_luid */
76 
77 #ifndef EGL_ANGLE_platform_angle_d3d11on12
78 #define EGL_ANGLE_platform_angle_d3d11on12 1
79 #define EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE 0x3488
80 #endif /* EGL_ANGLE_platform_angle_d3d11on12 */
81 
82 #ifndef EGL_ANGLE_platform_angle_opengl
83 #define EGL_ANGLE_platform_angle_opengl 1
84 #define EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE 0x320D
85 #define EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE 0x320E
86 #define EGL_PLATFORM_ANGLE_EGL_HANDLE_ANGLE 0x3480
87 #endif /* EGL_ANGLE_platform_angle_opengl */
88 
89 #ifndef EGL_ANGLE_platform_angle_null
90 #define EGL_ANGLE_platform_angle_null 1
91 #define EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE 0x33AE
92 #endif /* EGL_ANGLE_platform_angle_null */
93 
94 #ifndef EGL_ANGLE_platform_angle_vulkan
95 #define EGL_ANGLE_platform_angle_vulkan 1
96 #define EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE 0x3450
97 #endif /* EGL_ANGLE_platform_angle_vulkan */
98 
99 #ifndef EGL_ANGLE_platform_angle_metal
100 #define EGL_ANGLE_platform_angle_metal 1
101 #define EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE 0x3489
102 #endif /* EGL_ANGLE_platform_angle_metal  */
103 
104 #ifndef EGL_ANGLE_platform_angle_device_type_swiftshader
105 #define EGL_ANGLE_platform_angle_device_type_swiftshader
106 #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE 0x3487
107 #endif /* EGL_ANGLE_platform_angle_device_type_swiftshader */
108 
109 #ifndef EGL_ANGLE_platform_angle_device_type_egl_angle
110 #define EGL_ANGLE_platform_angle_device_type_egl_angle
111 #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_EGL_ANGLE 0x348E
112 #endif /* EGL_ANGLE_platform_angle_device_type_egl_angle */
113 
114 #ifndef EGL_ANGLE_platform_angle_context_virtualization
115 #define EGL_ANGLE_platform_angle_context_virtualization 1
116 #define EGL_PLATFORM_ANGLE_CONTEXT_VIRTUALIZATION_ANGLE 0x3481
117 #endif /* EGL_ANGLE_platform_angle_context_virtualization */
118 
119 #ifndef EGL_ANGLE_x11_visual
120 #define EGL_ANGLE_x11_visual
121 #define EGL_X11_VISUAL_ID_ANGLE 0x33A3
122 #endif /* EGL_ANGLE_x11_visual */
123 
124 #ifndef EGL_ANGLE_flexible_surface_compatibility
125 #define EGL_ANGLE_flexible_surface_compatibility 1
126 #define EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE 0x33A6
127 #endif /* EGL_ANGLE_flexible_surface_compatibility */
128 
129 #ifndef EGL_ANGLE_surface_orientation
130 #define EGL_ANGLE_surface_orientation
131 #define EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE 0x33A7
132 #define EGL_SURFACE_ORIENTATION_ANGLE 0x33A8
133 #define EGL_SURFACE_ORIENTATION_INVERT_X_ANGLE 0x0001
134 #define EGL_SURFACE_ORIENTATION_INVERT_Y_ANGLE 0x0002
135 #endif /* EGL_ANGLE_surface_orientation */
136 
137 #ifndef EGL_ANGLE_experimental_present_path
138 #define EGL_ANGLE_experimental_present_path
139 #define EGL_EXPERIMENTAL_PRESENT_PATH_ANGLE 0x33A4
140 #define EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE 0x33A9
141 #define EGL_EXPERIMENTAL_PRESENT_PATH_COPY_ANGLE 0x33AA
142 #endif /* EGL_ANGLE_experimental_present_path */
143 
144 #ifndef EGL_ANGLE_stream_producer_d3d_texture
145 #define EGL_ANGLE_stream_producer_d3d_texture
146 #define EGL_D3D_TEXTURE_SUBRESOURCE_ID_ANGLE 0x33AB
147 typedef EGLBoolean(EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC)(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
148 typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC)(EGLDisplay dpy, EGLStreamKHR stream, void *texture, const EGLAttrib *attrib_list);
149 #ifdef EGL_EGLEXT_PROTOTYPES
150 EGLAPI EGLBoolean EGLAPIENTRY eglCreateStreamProducerD3DTextureANGLE(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
151 EGLAPI EGLBoolean EGLAPIENTRY eglStreamPostD3DTextureANGLE(EGLDisplay dpy, EGLStreamKHR stream, void *texture, const EGLAttrib *attrib_list);
152 #endif
153 #endif /* EGL_ANGLE_stream_producer_d3d_texture */
154 
155 #ifndef EGL_ANGLE_create_context_webgl_compatibility
156 #define EGL_ANGLE_create_context_webgl_compatibility 1
157 #define EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE 0x33AC
158 #endif /* EGL_ANGLE_create_context_webgl_compatibility */
159 
160 #ifndef EGL_ANGLE_display_texture_share_group
161 #define EGL_ANGLE_display_texture_share_group 1
162 #define EGL_DISPLAY_TEXTURE_SHARE_GROUP_ANGLE 0x33AF
163 #endif /* EGL_ANGLE_display_texture_share_group */
164 
165 #ifndef EGL_CHROMIUM_create_context_bind_generates_resource
166 #define EGL_CHROMIUM_create_context_bind_generates_resource 1
167 #define EGL_CONTEXT_BIND_GENERATES_RESOURCE_CHROMIUM 0x33AD
168 #endif /* EGL_CHROMIUM_create_context_bind_generates_resource */
169 
170 #ifndef EGL_ANGLE_create_context_client_arrays
171 #define EGL_ANGLE_create_context_client_arrays 1
172 #define EGL_CONTEXT_CLIENT_ARRAYS_ENABLED_ANGLE 0x3452
173 #endif /* EGL_ANGLE_create_context_client_arrays */
174 
175 #ifndef EGL_ANGLE_device_creation
176 #define EGL_ANGLE_device_creation 1
177 typedef EGLDeviceEXT(EGLAPIENTRYP PFNEGLCREATEDEVICEANGLEPROC) (EGLint device_type, void *native_device, const EGLAttrib *attrib_list);
178 typedef EGLBoolean(EGLAPIENTRYP PFNEGLRELEASEDEVICEANGLEPROC) (EGLDeviceEXT device);
179 #ifdef EGL_EGLEXT_PROTOTYPES
180 EGLAPI EGLDeviceEXT EGLAPIENTRY eglCreateDeviceANGLE(EGLint device_type, void *native_device, const EGLAttrib *attrib_list);
181 EGLAPI EGLBoolean EGLAPIENTRY eglReleaseDeviceANGLE(EGLDeviceEXT device);
182 #endif
183 #endif /* EGL_ANGLE_device_creation */
184 
185 #ifndef EGL_ANGLE_program_cache_control
186 #define EGL_ANGLE_program_cache_control 1
187 #define EGL_PROGRAM_CACHE_SIZE_ANGLE 0x3455
188 #define EGL_PROGRAM_CACHE_KEY_LENGTH_ANGLE 0x3456
189 #define EGL_PROGRAM_CACHE_RESIZE_ANGLE 0x3457
190 #define EGL_PROGRAM_CACHE_TRIM_ANGLE 0x3458
191 #define EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE 0x3459
192 typedef EGLint (EGLAPIENTRYP PFNEGLPROGRAMCACHEGETATTRIBANGLEPROC) (EGLDisplay dpy, EGLenum attrib);
193 typedef void (EGLAPIENTRYP PFNEGLPROGRAMCACHEQUERYANGLEPROC) (EGLDisplay dpy, EGLint index, void *key, EGLint *keysize, void *binary, EGLint *binarysize);
194 typedef void (EGLAPIENTRYP PFNEGLPROGRAMCACHEPOPULATEANGLEPROC) (EGLDisplay dpy, const void *key, EGLint keysize, const void *binary, EGLint binarysize);
195 typedef EGLint (EGLAPIENTRYP PFNEGLPROGRAMCACHERESIZEANGLEPROC) (EGLDisplay dpy, EGLint limit, EGLenum mode);
196 #ifdef EGL_EGLEXT_PROTOTYPES
197 EGLAPI EGLint EGLAPIENTRY eglProgramCacheGetAttribANGLE(EGLDisplay dpy, EGLenum attrib);
198 EGLAPI void EGLAPIENTRY eglProgramCacheQueryANGLE(EGLDisplay dpy, EGLint index, void *key, EGLint *keysize, void *binary, EGLint *binarysize);
199 EGLAPI void EGLAPIENTRY eglProgramCachePopulateANGLE(EGLDisplay dpy, const void *key, EGLint keysize, const void *binary, EGLint binarysize);
200 EGLAPI EGLint EGLAPIENTRY eglProgramCacheResizeANGLE(EGLDisplay dpy, EGLint limit, EGLenum mode);
201 #endif
202 #endif /* EGL_ANGLE_program_cache_control */
203 
204 #ifndef EGL_ANGLE_iosurface_client_buffer
205 #define EGL_ANGLE_iosurface_client_buffer 1
206 #define EGL_IOSURFACE_ANGLE 0x3454
207 #define EGL_IOSURFACE_PLANE_ANGLE 0x345A
208 #define EGL_TEXTURE_RECTANGLE_ANGLE 0x345B
209 #define EGL_TEXTURE_TYPE_ANGLE 0x345C
210 #define EGL_TEXTURE_INTERNAL_FORMAT_ANGLE 0x345D
211 #define EGL_IOSURFACE_USAGE_HINT_ANGLE 0x348A
212 #define EGL_IOSURFACE_READ_HINT_ANGLE 0x0001
213 #define EGL_IOSURFACE_WRITE_HINT_ANGLE 0x0002
214 #define EGL_BIND_TO_TEXTURE_TARGET_ANGLE 0x348D
215 #endif /* EGL_ANGLE_iosurface_client_buffer */
216 
217 #ifndef EGL_ANGLE_create_context_extensions_enabled
218 #define EGL_ANGLE_create_context_extensions_enabled 1
219 #define EGL_EXTENSIONS_ENABLED_ANGLE 0x345F
220 #endif /* EGL_ANGLE_create_context_extensions_enabled */
221 
222 #ifndef EGL_CHROMIUM_sync_control
223 #define EGL_CHROMIUM_sync_control 1
224 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCVALUESCHROMIUMPROC) (EGLDisplay dpy,
225                                                              EGLSurface surface,
226                                                              EGLuint64KHR *ust,
227                                                              EGLuint64KHR *msc,
228                                                              EGLuint64KHR *sbc);
229 #ifdef EGL_EGLEXT_PROTOTYPES
230 EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncValuesCHROMIUM(EGLDisplay dpy,
231                                                              EGLSurface surface,
232                                                              EGLuint64KHR *ust,
233                                                              EGLuint64KHR *msc,
234                                                              EGLuint64KHR *sbc);
235 #endif
236 #endif /* EGL_CHROMIUM_sync_control */
237 
238 #ifndef EGL_ANGLE_sync_control_rate
239 #define EGL_ANGLE_sync_control_rate 1
240 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMSCRATEANGLEPROC) (EGLDisplay dpy,
241                                                              EGLSurface surface,
242                                                              EGLint *numerator,
243                                                              EGLint *denominator);
244 #ifdef EGL_EGLEXT_PROTOTYPES
245 EGLAPI EGLBoolean EGLAPIENTRY eglGetMscRateANGLE(EGLDisplay dpy,
246                                                              EGLSurface surface,
247                                                              EGLint *numerator,
248                                                              EGLint *denominator);
249 #endif
250 #endif /* EGL_ANGLE_sync_control_rate */
251 
252 #ifndef EGL_ANGLE_power_preference
253 #define EGL_ANGLE_power_preference 1
254 #define EGL_POWER_PREFERENCE_ANGLE 0x3482
255 #define EGL_LOW_POWER_ANGLE 0x0001
256 #define EGL_HIGH_POWER_ANGLE 0x0002
257 #endif /* EGL_ANGLE_power_preference */
258 
259 #ifndef EGL_ANGLE_feature_control
260 #define EGL_ANGLE_feature_control 1
261 #define EGL_FEATURE_NAME_ANGLE 0x3460
262 #define EGL_FEATURE_CATEGORY_ANGLE 0x3461
263 #define EGL_FEATURE_DESCRIPTION_ANGLE 0x3462
264 #define EGL_FEATURE_BUG_ANGLE 0x3463
265 #define EGL_FEATURE_STATUS_ANGLE 0x3464
266 #define EGL_FEATURE_COUNT_ANGLE 0x3465
267 #define EGL_FEATURE_OVERRIDES_ENABLED_ANGLE 0x3466
268 #define EGL_FEATURE_OVERRIDES_DISABLED_ANGLE 0x3467
269 #define EGL_FEATURE_CONDITION_ANGLE 0x3468
270 #define EGL_FEATURE_ALL_DISABLED_ANGLE 0x3469
271 typedef const char *(EGLAPIENTRYP PFNEGLQUERYSTRINGIANGLEPROC) (EGLDisplay dpy, EGLint name, EGLint index);
272 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBANGLEPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
273 #ifdef EGL_EGLEXT_PROTOTYPES
274 EGLAPI const char *EGLAPIENTRY eglQueryStringiANGLE(EGLDisplay dpy, EGLint name, EGLint index);
275 EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribANGLE(EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
276 #endif
277 #endif /* EGL_ANGLE_feature_control */
278 
279 #ifndef EGL_ANGLE_image_d3d11_texture
280 #define EGL_D3D11_TEXTURE_ANGLE 0x3484
281 #define EGL_TEXTURE_INTERNAL_FORMAT_ANGLE 0x345D
282 #endif /* EGL_ANGLE_image_d3d11_texture */
283 
284 #ifndef EGL_ANGLE_create_context_backwards_compatible
285 #define EGL_ANGLE_create_context_backwards_compatible 1
286 #define EGL_CONTEXT_OPENGL_BACKWARDS_COMPATIBLE_ANGLE 0x3483
287 #endif /* EGL_ANGLE_create_context_backwards_compatible */
288 
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 
295 #ifndef EGL_ANGLE_ggp_stream_descriptor
296 #define EGL_ANGLE_ggp_stream_descriptor 1
297 #define EGL_GGP_STREAM_DESCRIPTOR_ANGLE 0x348B
298 #endif /* EGL_ANGLE_ggp_stream_descriptor */
299 
300 #ifndef EGL_ANGLE_swap_with_frame_token
301 #define EGL_ANGLE_swap_with_frame_token 1
302 typedef khronos_uint64_t EGLFrameTokenANGLE;
303 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC)(EGLDisplay dpy, EGLSurface surface, EGLFrameTokenANGLE frametoken);
304 #ifdef EGL_EGLEXT_PROTOTYPES
305 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithFrameTokenANGLE(EGLDisplay dpy, EGLSurface surface, EGLFrameTokenANGLE frametoken);
306 #endif
307 #endif /* EGL_ANGLE_swap_with_frame_token */
308 
309 #ifndef EGL_ANGLE_device_eagl
310 #define EGL_ANGLE_device_eagl 1
311 #define EGL_EAGL_CONTEXT_ANGLE 0x348C
312 #endif
313 
314 // clang-format on
315 
316 #endif  // INCLUDE_EGL_EGLEXT_ANGLE_
317