xref: /aosp_15_r20/external/angle/src/libEGL/libEGL_autogen.cpp (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by generate_entry_points.py using data from egl.xml and egl_angle_ext.xml.
3 //
4 // Copyright 2020 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // libEGL_autogen.cpp: Implements the exported EGL functions.
9 
10 #include "anglebase/no_destructor.h"
11 #include "common/system_utils.h"
12 
13 #include <memory>
14 
15 #if defined(ANGLE_USE_EGL_LOADER)
16 #    include "libEGL/egl_loader_autogen.h"
17 #else
18 #    include "libGLESv2/entry_points_egl_autogen.h"
19 #    include "libGLESv2/entry_points_egl_ext_autogen.h"
20 #endif  // defined(ANGLE_USE_EGL_LOADER)
21 
22 namespace
23 {
24 #if defined(ANGLE_USE_EGL_LOADER)
25 bool gLoaded          = false;
26 void *gEntryPointsLib = nullptr;
27 
GlobalLoad(const char * symbol)28 GenericProc KHRONOS_APIENTRY GlobalLoad(const char *symbol)
29 {
30     return reinterpret_cast<GenericProc>(angle::GetLibrarySymbol(gEntryPointsLib, symbol));
31 }
32 
EnsureEGLLoaded()33 void EnsureEGLLoaded()
34 {
35     if (gLoaded)
36     {
37         return;
38     }
39 
40     std::string errorOut;
41     gEntryPointsLib = OpenSystemLibraryAndGetError(ANGLE_DISPATCH_LIBRARY,
42                                                    angle::SearchType::ModuleDir, &errorOut);
43     if (gEntryPointsLib)
44     {
45         LoadLibEGL_EGL(GlobalLoad);
46         gLoaded = true;
47     }
48     else
49     {
50         fprintf(stderr, "Error loading EGL entry points: %s\n", errorOut.c_str());
51     }
52 }
53 #else
54 void EnsureEGLLoaded() {}
55 #endif  // defined(ANGLE_USE_EGL_LOADER)
56 }  // anonymous namespace
57 
58 extern "C" {
59 
60 // EGL 1.0
eglChooseConfig(EGLDisplay dpy,const EGLint * attrib_list,EGLConfig * configs,EGLint config_size,EGLint * num_config)61 EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy,
62                                        const EGLint *attrib_list,
63                                        EGLConfig *configs,
64                                        EGLint config_size,
65                                        EGLint *num_config)
66 {
67     EnsureEGLLoaded();
68     return EGL_ChooseConfig(dpy, attrib_list, configs, config_size, num_config);
69 }
70 
eglCopyBuffers(EGLDisplay dpy,EGLSurface surface,EGLNativePixmapType target)71 EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy,
72                                       EGLSurface surface,
73                                       EGLNativePixmapType target)
74 {
75     EnsureEGLLoaded();
76     return EGL_CopyBuffers(dpy, surface, target);
77 }
78 
eglCreateContext(EGLDisplay dpy,EGLConfig config,EGLContext share_context,const EGLint * attrib_list)79 EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy,
80                                         EGLConfig config,
81                                         EGLContext share_context,
82                                         const EGLint *attrib_list)
83 {
84     EnsureEGLLoaded();
85     return EGL_CreateContext(dpy, config, share_context, attrib_list);
86 }
87 
eglCreatePbufferSurface(EGLDisplay dpy,EGLConfig config,const EGLint * attrib_list)88 EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy,
89                                                EGLConfig config,
90                                                const EGLint *attrib_list)
91 {
92     EnsureEGLLoaded();
93     return EGL_CreatePbufferSurface(dpy, config, attrib_list);
94 }
95 
eglCreatePixmapSurface(EGLDisplay dpy,EGLConfig config,EGLNativePixmapType pixmap,const EGLint * attrib_list)96 EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy,
97                                               EGLConfig config,
98                                               EGLNativePixmapType pixmap,
99                                               const EGLint *attrib_list)
100 {
101     EnsureEGLLoaded();
102     return EGL_CreatePixmapSurface(dpy, config, pixmap, attrib_list);
103 }
104 
eglCreateWindowSurface(EGLDisplay dpy,EGLConfig config,EGLNativeWindowType win,const EGLint * attrib_list)105 EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy,
106                                               EGLConfig config,
107                                               EGLNativeWindowType win,
108                                               const EGLint *attrib_list)
109 {
110     EnsureEGLLoaded();
111     return EGL_CreateWindowSurface(dpy, config, win, attrib_list);
112 }
113 
eglDestroyContext(EGLDisplay dpy,EGLContext ctx)114 EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx)
115 {
116     EnsureEGLLoaded();
117     return EGL_DestroyContext(dpy, ctx);
118 }
119 
eglDestroySurface(EGLDisplay dpy,EGLSurface surface)120 EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface)
121 {
122     EnsureEGLLoaded();
123     return EGL_DestroySurface(dpy, surface);
124 }
125 
eglGetConfigAttrib(EGLDisplay dpy,EGLConfig config,EGLint attribute,EGLint * value)126 EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy,
127                                           EGLConfig config,
128                                           EGLint attribute,
129                                           EGLint *value)
130 {
131     EnsureEGLLoaded();
132     return EGL_GetConfigAttrib(dpy, config, attribute, value);
133 }
134 
eglGetConfigs(EGLDisplay dpy,EGLConfig * configs,EGLint config_size,EGLint * num_config)135 EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy,
136                                      EGLConfig *configs,
137                                      EGLint config_size,
138                                      EGLint *num_config)
139 {
140     EnsureEGLLoaded();
141     return EGL_GetConfigs(dpy, configs, config_size, num_config);
142 }
143 
eglGetCurrentDisplay()144 EGLDisplay EGLAPIENTRY eglGetCurrentDisplay()
145 {
146     EnsureEGLLoaded();
147     return EGL_GetCurrentDisplay();
148 }
149 
eglGetCurrentSurface(EGLint readdraw)150 EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw)
151 {
152     EnsureEGLLoaded();
153     return EGL_GetCurrentSurface(readdraw);
154 }
155 
eglGetDisplay(EGLNativeDisplayType display_id)156 EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id)
157 {
158     EnsureEGLLoaded();
159     return EGL_GetDisplay(display_id);
160 }
161 
eglGetError()162 EGLint EGLAPIENTRY eglGetError()
163 {
164     EnsureEGLLoaded();
165     return EGL_GetError();
166 }
167 
eglGetProcAddress(const char * procname)168 __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress(const char *procname)
169 {
170     EnsureEGLLoaded();
171     return EGL_GetProcAddress(procname);
172 }
173 
eglInitialize(EGLDisplay dpy,EGLint * major,EGLint * minor)174 EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
175 {
176     EnsureEGLLoaded();
177     return EGL_Initialize(dpy, major, minor);
178 }
179 
eglMakeCurrent(EGLDisplay dpy,EGLSurface draw,EGLSurface read,EGLContext ctx)180 EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy,
181                                       EGLSurface draw,
182                                       EGLSurface read,
183                                       EGLContext ctx)
184 {
185     EnsureEGLLoaded();
186     return EGL_MakeCurrent(dpy, draw, read, ctx);
187 }
188 
eglQueryContext(EGLDisplay dpy,EGLContext ctx,EGLint attribute,EGLint * value)189 EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy,
190                                        EGLContext ctx,
191                                        EGLint attribute,
192                                        EGLint *value)
193 {
194     EnsureEGLLoaded();
195     return EGL_QueryContext(dpy, ctx, attribute, value);
196 }
197 
eglQueryString(EGLDisplay dpy,EGLint name)198 const char *EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name)
199 {
200     EnsureEGLLoaded();
201     return EGL_QueryString(dpy, name);
202 }
203 
eglQuerySurface(EGLDisplay dpy,EGLSurface surface,EGLint attribute,EGLint * value)204 EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy,
205                                        EGLSurface surface,
206                                        EGLint attribute,
207                                        EGLint *value)
208 {
209     EnsureEGLLoaded();
210     return EGL_QuerySurface(dpy, surface, attribute, value);
211 }
212 
eglSwapBuffers(EGLDisplay dpy,EGLSurface surface)213 EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)
214 {
215     EnsureEGLLoaded();
216     return EGL_SwapBuffers(dpy, surface);
217 }
218 
eglTerminate(EGLDisplay dpy)219 EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy)
220 {
221     EnsureEGLLoaded();
222     return EGL_Terminate(dpy);
223 }
224 
eglWaitGL()225 EGLBoolean EGLAPIENTRY eglWaitGL()
226 {
227     EnsureEGLLoaded();
228     return EGL_WaitGL();
229 }
230 
eglWaitNative(EGLint engine)231 EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine)
232 {
233     EnsureEGLLoaded();
234     return EGL_WaitNative(engine);
235 }
236 
237 // EGL 1.1
eglBindTexImage(EGLDisplay dpy,EGLSurface surface,EGLint buffer)238 EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
239 {
240     EnsureEGLLoaded();
241     return EGL_BindTexImage(dpy, surface, buffer);
242 }
243 
eglReleaseTexImage(EGLDisplay dpy,EGLSurface surface,EGLint buffer)244 EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
245 {
246     EnsureEGLLoaded();
247     return EGL_ReleaseTexImage(dpy, surface, buffer);
248 }
249 
eglSurfaceAttrib(EGLDisplay dpy,EGLSurface surface,EGLint attribute,EGLint value)250 EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy,
251                                         EGLSurface surface,
252                                         EGLint attribute,
253                                         EGLint value)
254 {
255     EnsureEGLLoaded();
256     return EGL_SurfaceAttrib(dpy, surface, attribute, value);
257 }
258 
eglSwapInterval(EGLDisplay dpy,EGLint interval)259 EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval)
260 {
261     EnsureEGLLoaded();
262     return EGL_SwapInterval(dpy, interval);
263 }
264 
265 // EGL 1.2
eglBindAPI(EGLenum api)266 EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api)
267 {
268     EnsureEGLLoaded();
269     return EGL_BindAPI(api);
270 }
271 
eglCreatePbufferFromClientBuffer(EGLDisplay dpy,EGLenum buftype,EGLClientBuffer buffer,EGLConfig config,const EGLint * attrib_list)272 EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(EGLDisplay dpy,
273                                                         EGLenum buftype,
274                                                         EGLClientBuffer buffer,
275                                                         EGLConfig config,
276                                                         const EGLint *attrib_list)
277 {
278     EnsureEGLLoaded();
279     return EGL_CreatePbufferFromClientBuffer(dpy, buftype, buffer, config, attrib_list);
280 }
281 
eglQueryAPI()282 EGLenum EGLAPIENTRY eglQueryAPI()
283 {
284     EnsureEGLLoaded();
285     return EGL_QueryAPI();
286 }
287 
eglReleaseThread()288 EGLBoolean EGLAPIENTRY eglReleaseThread()
289 {
290     EnsureEGLLoaded();
291     return EGL_ReleaseThread();
292 }
293 
eglWaitClient()294 EGLBoolean EGLAPIENTRY eglWaitClient()
295 {
296     EnsureEGLLoaded();
297     return EGL_WaitClient();
298 }
299 
300 // EGL 1.4
eglGetCurrentContext()301 EGLContext EGLAPIENTRY eglGetCurrentContext()
302 {
303     EnsureEGLLoaded();
304     return EGL_GetCurrentContext();
305 }
306 
307 // EGL 1.5
eglClientWaitSync(EGLDisplay dpy,EGLSync sync,EGLint flags,EGLTime timeout)308 EGLint EGLAPIENTRY eglClientWaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout)
309 {
310     EnsureEGLLoaded();
311     return EGL_ClientWaitSync(dpy, sync, flags, timeout);
312 }
313 
eglCreateImage(EGLDisplay dpy,EGLContext ctx,EGLenum target,EGLClientBuffer buffer,const EGLAttrib * attrib_list)314 EGLImage EGLAPIENTRY eglCreateImage(EGLDisplay dpy,
315                                     EGLContext ctx,
316                                     EGLenum target,
317                                     EGLClientBuffer buffer,
318                                     const EGLAttrib *attrib_list)
319 {
320     EnsureEGLLoaded();
321     return EGL_CreateImage(dpy, ctx, target, buffer, attrib_list);
322 }
323 
eglCreatePlatformPixmapSurface(EGLDisplay dpy,EGLConfig config,void * native_pixmap,const EGLAttrib * attrib_list)324 EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface(EGLDisplay dpy,
325                                                       EGLConfig config,
326                                                       void *native_pixmap,
327                                                       const EGLAttrib *attrib_list)
328 {
329     EnsureEGLLoaded();
330     return EGL_CreatePlatformPixmapSurface(dpy, config, native_pixmap, attrib_list);
331 }
332 
eglCreatePlatformWindowSurface(EGLDisplay dpy,EGLConfig config,void * native_window,const EGLAttrib * attrib_list)333 EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface(EGLDisplay dpy,
334                                                       EGLConfig config,
335                                                       void *native_window,
336                                                       const EGLAttrib *attrib_list)
337 {
338     EnsureEGLLoaded();
339     return EGL_CreatePlatformWindowSurface(dpy, config, native_window, attrib_list);
340 }
341 
eglCreateSync(EGLDisplay dpy,EGLenum type,const EGLAttrib * attrib_list)342 EGLSync EGLAPIENTRY eglCreateSync(EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list)
343 {
344     EnsureEGLLoaded();
345     return EGL_CreateSync(dpy, type, attrib_list);
346 }
347 
eglDestroyImage(EGLDisplay dpy,EGLImage image)348 EGLBoolean EGLAPIENTRY eglDestroyImage(EGLDisplay dpy, EGLImage image)
349 {
350     EnsureEGLLoaded();
351     return EGL_DestroyImage(dpy, image);
352 }
353 
eglDestroySync(EGLDisplay dpy,EGLSync sync)354 EGLBoolean EGLAPIENTRY eglDestroySync(EGLDisplay dpy, EGLSync sync)
355 {
356     EnsureEGLLoaded();
357     return EGL_DestroySync(dpy, sync);
358 }
359 
eglGetPlatformDisplay(EGLenum platform,void * native_display,const EGLAttrib * attrib_list)360 EGLDisplay EGLAPIENTRY eglGetPlatformDisplay(EGLenum platform,
361                                              void *native_display,
362                                              const EGLAttrib *attrib_list)
363 {
364     EnsureEGLLoaded();
365     return EGL_GetPlatformDisplay(platform, native_display, attrib_list);
366 }
367 
eglGetSyncAttrib(EGLDisplay dpy,EGLSync sync,EGLint attribute,EGLAttrib * value)368 EGLBoolean EGLAPIENTRY eglGetSyncAttrib(EGLDisplay dpy,
369                                         EGLSync sync,
370                                         EGLint attribute,
371                                         EGLAttrib *value)
372 {
373     EnsureEGLLoaded();
374     return EGL_GetSyncAttrib(dpy, sync, attribute, value);
375 }
376 
eglWaitSync(EGLDisplay dpy,EGLSync sync,EGLint flags)377 EGLBoolean EGLAPIENTRY eglWaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags)
378 {
379     EnsureEGLLoaded();
380     return EGL_WaitSync(dpy, sync, flags);
381 }
382 
383 // EGL_ANDROID_blob_cache
eglSetBlobCacheFuncsANDROID(EGLDisplay dpy,EGLSetBlobFuncANDROID set,EGLGetBlobFuncANDROID get)384 void EGLAPIENTRY eglSetBlobCacheFuncsANDROID(EGLDisplay dpy,
385                                              EGLSetBlobFuncANDROID set,
386                                              EGLGetBlobFuncANDROID get)
387 {
388     EnsureEGLLoaded();
389     return EGL_SetBlobCacheFuncsANDROID(dpy, set, get);
390 }
391 
392 // EGL_ANDROID_create_native_client_buffer
eglCreateNativeClientBufferANDROID(const EGLint * attrib_list)393 EGLClientBuffer EGLAPIENTRY eglCreateNativeClientBufferANDROID(const EGLint *attrib_list)
394 {
395     EnsureEGLLoaded();
396     return EGL_CreateNativeClientBufferANDROID(attrib_list);
397 }
398 
399 // EGL_ANDROID_get_frame_timestamps
eglGetCompositorTimingSupportedANDROID(EGLDisplay dpy,EGLSurface surface,EGLint name)400 EGLBoolean EGLAPIENTRY eglGetCompositorTimingSupportedANDROID(EGLDisplay dpy,
401                                                               EGLSurface surface,
402                                                               EGLint name)
403 {
404     EnsureEGLLoaded();
405     return EGL_GetCompositorTimingSupportedANDROID(dpy, surface, name);
406 }
407 
eglGetCompositorTimingANDROID(EGLDisplay dpy,EGLSurface surface,EGLint numTimestamps,const EGLint * names,EGLnsecsANDROID * values)408 EGLBoolean EGLAPIENTRY eglGetCompositorTimingANDROID(EGLDisplay dpy,
409                                                      EGLSurface surface,
410                                                      EGLint numTimestamps,
411                                                      const EGLint *names,
412                                                      EGLnsecsANDROID *values)
413 {
414     EnsureEGLLoaded();
415     return EGL_GetCompositorTimingANDROID(dpy, surface, numTimestamps, names, values);
416 }
417 
eglGetNextFrameIdANDROID(EGLDisplay dpy,EGLSurface surface,EGLuint64KHR * frameId)418 EGLBoolean EGLAPIENTRY eglGetNextFrameIdANDROID(EGLDisplay dpy,
419                                                 EGLSurface surface,
420                                                 EGLuint64KHR *frameId)
421 {
422     EnsureEGLLoaded();
423     return EGL_GetNextFrameIdANDROID(dpy, surface, frameId);
424 }
425 
eglGetFrameTimestampSupportedANDROID(EGLDisplay dpy,EGLSurface surface,EGLint timestamp)426 EGLBoolean EGLAPIENTRY eglGetFrameTimestampSupportedANDROID(EGLDisplay dpy,
427                                                             EGLSurface surface,
428                                                             EGLint timestamp)
429 {
430     EnsureEGLLoaded();
431     return EGL_GetFrameTimestampSupportedANDROID(dpy, surface, timestamp);
432 }
433 
eglGetFrameTimestampsANDROID(EGLDisplay dpy,EGLSurface surface,EGLuint64KHR frameId,EGLint numTimestamps,const EGLint * timestamps,EGLnsecsANDROID * values)434 EGLBoolean EGLAPIENTRY eglGetFrameTimestampsANDROID(EGLDisplay dpy,
435                                                     EGLSurface surface,
436                                                     EGLuint64KHR frameId,
437                                                     EGLint numTimestamps,
438                                                     const EGLint *timestamps,
439                                                     EGLnsecsANDROID *values)
440 {
441     EnsureEGLLoaded();
442     return EGL_GetFrameTimestampsANDROID(dpy, surface, frameId, numTimestamps, timestamps, values);
443 }
444 
445 // EGL_ANDROID_get_native_client_buffer
eglGetNativeClientBufferANDROID(const struct AHardwareBuffer * buffer)446 EGLClientBuffer EGLAPIENTRY eglGetNativeClientBufferANDROID(const struct AHardwareBuffer *buffer)
447 {
448     EnsureEGLLoaded();
449     return EGL_GetNativeClientBufferANDROID(buffer);
450 }
451 
452 // EGL_ANDROID_native_fence_sync
eglDupNativeFenceFDANDROID(EGLDisplay dpy,EGLSyncKHR sync)453 EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID(EGLDisplay dpy, EGLSyncKHR sync)
454 {
455     EnsureEGLLoaded();
456     return EGL_DupNativeFenceFDANDROID(dpy, sync);
457 }
458 
459 // EGL_ANDROID_presentation_time
eglPresentationTimeANDROID(EGLDisplay dpy,EGLSurface surface,EGLnsecsANDROID time)460 EGLBoolean EGLAPIENTRY eglPresentationTimeANDROID(EGLDisplay dpy,
461                                                   EGLSurface surface,
462                                                   EGLnsecsANDROID time)
463 {
464     EnsureEGLLoaded();
465     return EGL_PresentationTimeANDROID(dpy, surface, time);
466 }
467 
468 // EGL_ANGLE_device_creation
eglCreateDeviceANGLE(EGLint device_type,void * native_device,const EGLAttrib * attrib_list)469 EGLDeviceEXT EGLAPIENTRY eglCreateDeviceANGLE(EGLint device_type,
470                                               void *native_device,
471                                               const EGLAttrib *attrib_list)
472 {
473     EnsureEGLLoaded();
474     return EGL_CreateDeviceANGLE(device_type, native_device, attrib_list);
475 }
476 
eglReleaseDeviceANGLE(EGLDeviceEXT device)477 EGLBoolean EGLAPIENTRY eglReleaseDeviceANGLE(EGLDeviceEXT device)
478 {
479     EnsureEGLLoaded();
480     return EGL_ReleaseDeviceANGLE(device);
481 }
482 
483 // EGL_ANGLE_external_context_and_surface
eglAcquireExternalContextANGLE(EGLDisplay dpy,EGLSurface drawAndRead)484 void EGLAPIENTRY eglAcquireExternalContextANGLE(EGLDisplay dpy, EGLSurface drawAndRead)
485 {
486     EnsureEGLLoaded();
487     return EGL_AcquireExternalContextANGLE(dpy, drawAndRead);
488 }
489 
eglReleaseExternalContextANGLE(EGLDisplay dpy)490 void EGLAPIENTRY eglReleaseExternalContextANGLE(EGLDisplay dpy)
491 {
492     EnsureEGLLoaded();
493     return EGL_ReleaseExternalContextANGLE(dpy);
494 }
495 
496 // EGL_ANGLE_feature_control
eglQueryStringiANGLE(EGLDisplay dpy,EGLint name,EGLint index)497 const char *EGLAPIENTRY eglQueryStringiANGLE(EGLDisplay dpy, EGLint name, EGLint index)
498 {
499     EnsureEGLLoaded();
500     return EGL_QueryStringiANGLE(dpy, name, index);
501 }
502 
eglQueryDisplayAttribANGLE(EGLDisplay dpy,EGLint attribute,EGLAttrib * value)503 EGLBoolean EGLAPIENTRY eglQueryDisplayAttribANGLE(EGLDisplay dpy,
504                                                   EGLint attribute,
505                                                   EGLAttrib *value)
506 {
507     EnsureEGLLoaded();
508     return EGL_QueryDisplayAttribANGLE(dpy, attribute, value);
509 }
510 
511 // EGL_ANGLE_metal_shared_event_sync
eglCopyMetalSharedEventANGLE(EGLDisplay dpy,EGLSyncKHR sync)512 void *EGLAPIENTRY eglCopyMetalSharedEventANGLE(EGLDisplay dpy, EGLSyncKHR sync)
513 {
514     EnsureEGLLoaded();
515     return EGL_CopyMetalSharedEventANGLE(dpy, sync);
516 }
517 
518 // EGL_ANGLE_no_error
eglSetValidationEnabledANGLE(EGLBoolean validationState)519 void EGLAPIENTRY eglSetValidationEnabledANGLE(EGLBoolean validationState)
520 {
521     EnsureEGLLoaded();
522     return EGL_SetValidationEnabledANGLE(validationState);
523 }
524 
525 // EGL_ANGLE_power_preference
eglReleaseHighPowerGPUANGLE(EGLDisplay dpy,EGLContext ctx)526 void EGLAPIENTRY eglReleaseHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx)
527 {
528     EnsureEGLLoaded();
529     return EGL_ReleaseHighPowerGPUANGLE(dpy, ctx);
530 }
531 
eglReacquireHighPowerGPUANGLE(EGLDisplay dpy,EGLContext ctx)532 void EGLAPIENTRY eglReacquireHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx)
533 {
534     EnsureEGLLoaded();
535     return EGL_ReacquireHighPowerGPUANGLE(dpy, ctx);
536 }
537 
eglHandleGPUSwitchANGLE(EGLDisplay dpy)538 void EGLAPIENTRY eglHandleGPUSwitchANGLE(EGLDisplay dpy)
539 {
540     EnsureEGLLoaded();
541     return EGL_HandleGPUSwitchANGLE(dpy);
542 }
543 
eglForceGPUSwitchANGLE(EGLDisplay dpy,EGLint gpuIDHigh,EGLint gpuIDLow)544 void EGLAPIENTRY eglForceGPUSwitchANGLE(EGLDisplay dpy, EGLint gpuIDHigh, EGLint gpuIDLow)
545 {
546     EnsureEGLLoaded();
547     return EGL_ForceGPUSwitchANGLE(dpy, gpuIDHigh, gpuIDLow);
548 }
549 
550 // EGL_ANGLE_prepare_swap_buffers
eglPrepareSwapBuffersANGLE(EGLDisplay dpy,EGLSurface surface)551 EGLBoolean EGLAPIENTRY eglPrepareSwapBuffersANGLE(EGLDisplay dpy, EGLSurface surface)
552 {
553     EnsureEGLLoaded();
554     return EGL_PrepareSwapBuffersANGLE(dpy, surface);
555 }
556 
557 // EGL_ANGLE_program_cache_control
eglProgramCacheGetAttribANGLE(EGLDisplay dpy,EGLenum attrib)558 EGLint EGLAPIENTRY eglProgramCacheGetAttribANGLE(EGLDisplay dpy, EGLenum attrib)
559 {
560     EnsureEGLLoaded();
561     return EGL_ProgramCacheGetAttribANGLE(dpy, attrib);
562 }
563 
eglProgramCacheQueryANGLE(EGLDisplay dpy,EGLint index,void * key,EGLint * keysize,void * binary,EGLint * binarysize)564 void EGLAPIENTRY eglProgramCacheQueryANGLE(EGLDisplay dpy,
565                                            EGLint index,
566                                            void *key,
567                                            EGLint *keysize,
568                                            void *binary,
569                                            EGLint *binarysize)
570 {
571     EnsureEGLLoaded();
572     return EGL_ProgramCacheQueryANGLE(dpy, index, key, keysize, binary, binarysize);
573 }
574 
eglProgramCachePopulateANGLE(EGLDisplay dpy,const void * key,EGLint keysize,const void * binary,EGLint binarysize)575 void EGLAPIENTRY eglProgramCachePopulateANGLE(EGLDisplay dpy,
576                                               const void *key,
577                                               EGLint keysize,
578                                               const void *binary,
579                                               EGLint binarysize)
580 {
581     EnsureEGLLoaded();
582     return EGL_ProgramCachePopulateANGLE(dpy, key, keysize, binary, binarysize);
583 }
584 
eglProgramCacheResizeANGLE(EGLDisplay dpy,EGLint limit,EGLint mode)585 EGLint EGLAPIENTRY eglProgramCacheResizeANGLE(EGLDisplay dpy, EGLint limit, EGLint mode)
586 {
587     EnsureEGLLoaded();
588     return EGL_ProgramCacheResizeANGLE(dpy, limit, mode);
589 }
590 
591 // EGL_ANGLE_query_surface_pointer
eglQuerySurfacePointerANGLE(EGLDisplay dpy,EGLSurface surface,EGLint attribute,void ** value)592 EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE(EGLDisplay dpy,
593                                                    EGLSurface surface,
594                                                    EGLint attribute,
595                                                    void **value)
596 {
597     EnsureEGLLoaded();
598     return EGL_QuerySurfacePointerANGLE(dpy, surface, attribute, value);
599 }
600 
601 // EGL_ANGLE_stream_producer_d3d_texture
eglCreateStreamProducerD3DTextureANGLE(EGLDisplay dpy,EGLStreamKHR stream,const EGLAttrib * attrib_list)602 EGLBoolean EGLAPIENTRY eglCreateStreamProducerD3DTextureANGLE(EGLDisplay dpy,
603                                                               EGLStreamKHR stream,
604                                                               const EGLAttrib *attrib_list)
605 {
606     EnsureEGLLoaded();
607     return EGL_CreateStreamProducerD3DTextureANGLE(dpy, stream, attrib_list);
608 }
609 
eglStreamPostD3DTextureANGLE(EGLDisplay dpy,EGLStreamKHR stream,void * texture,const EGLAttrib * attrib_list)610 EGLBoolean EGLAPIENTRY eglStreamPostD3DTextureANGLE(EGLDisplay dpy,
611                                                     EGLStreamKHR stream,
612                                                     void *texture,
613                                                     const EGLAttrib *attrib_list)
614 {
615     EnsureEGLLoaded();
616     return EGL_StreamPostD3DTextureANGLE(dpy, stream, texture, attrib_list);
617 }
618 
619 // EGL_ANGLE_swap_with_frame_token
eglSwapBuffersWithFrameTokenANGLE(EGLDisplay dpy,EGLSurface surface,EGLFrameTokenANGLE frametoken)620 EGLBoolean EGLAPIENTRY eglSwapBuffersWithFrameTokenANGLE(EGLDisplay dpy,
621                                                          EGLSurface surface,
622                                                          EGLFrameTokenANGLE frametoken)
623 {
624     EnsureEGLLoaded();
625     return EGL_SwapBuffersWithFrameTokenANGLE(dpy, surface, frametoken);
626 }
627 
628 // EGL_ANGLE_sync_control_rate
eglGetMscRateANGLE(EGLDisplay dpy,EGLSurface surface,EGLint * numerator,EGLint * denominator)629 EGLBoolean EGLAPIENTRY eglGetMscRateANGLE(EGLDisplay dpy,
630                                           EGLSurface surface,
631                                           EGLint *numerator,
632                                           EGLint *denominator)
633 {
634     EnsureEGLLoaded();
635     return EGL_GetMscRateANGLE(dpy, surface, numerator, denominator);
636 }
637 
638 // EGL_ANGLE_vulkan_image
eglExportVkImageANGLE(EGLDisplay dpy,EGLImage image,void * vk_image,void * vk_image_create_info)639 EGLBoolean EGLAPIENTRY eglExportVkImageANGLE(EGLDisplay dpy,
640                                              EGLImage image,
641                                              void *vk_image,
642                                              void *vk_image_create_info)
643 {
644     EnsureEGLLoaded();
645     return EGL_ExportVkImageANGLE(dpy, image, vk_image, vk_image_create_info);
646 }
647 
648 // EGL_ANGLE_wait_until_work_scheduled
eglWaitUntilWorkScheduledANGLE(EGLDisplay dpy)649 void EGLAPIENTRY eglWaitUntilWorkScheduledANGLE(EGLDisplay dpy)
650 {
651     EnsureEGLLoaded();
652     return EGL_WaitUntilWorkScheduledANGLE(dpy);
653 }
654 
655 // EGL_CHROMIUM_sync_control
eglGetSyncValuesCHROMIUM(EGLDisplay dpy,EGLSurface surface,EGLuint64KHR * ust,EGLuint64KHR * msc,EGLuint64KHR * sbc)656 EGLBoolean EGLAPIENTRY eglGetSyncValuesCHROMIUM(EGLDisplay dpy,
657                                                 EGLSurface surface,
658                                                 EGLuint64KHR *ust,
659                                                 EGLuint64KHR *msc,
660                                                 EGLuint64KHR *sbc)
661 {
662     EnsureEGLLoaded();
663     return EGL_GetSyncValuesCHROMIUM(dpy, surface, ust, msc, sbc);
664 }
665 
666 // EGL_EXT_device_query
eglQueryDeviceAttribEXT(EGLDeviceEXT device,EGLint attribute,EGLAttrib * value)667 EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT(EGLDeviceEXT device,
668                                                EGLint attribute,
669                                                EGLAttrib *value)
670 {
671     EnsureEGLLoaded();
672     return EGL_QueryDeviceAttribEXT(device, attribute, value);
673 }
674 
eglQueryDeviceStringEXT(EGLDeviceEXT device,EGLint name)675 const char *EGLAPIENTRY eglQueryDeviceStringEXT(EGLDeviceEXT device, EGLint name)
676 {
677     EnsureEGLLoaded();
678     return EGL_QueryDeviceStringEXT(device, name);
679 }
680 
eglQueryDisplayAttribEXT(EGLDisplay dpy,EGLint attribute,EGLAttrib * value)681 EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT(EGLDisplay dpy, EGLint attribute, EGLAttrib *value)
682 {
683     EnsureEGLLoaded();
684     return EGL_QueryDisplayAttribEXT(dpy, attribute, value);
685 }
686 
687 // EGL_EXT_image_dma_buf_import_modifiers
eglQueryDmaBufFormatsEXT(EGLDisplay dpy,EGLint max_formats,EGLint * formats,EGLint * num_formats)688 EGLBoolean EGLAPIENTRY eglQueryDmaBufFormatsEXT(EGLDisplay dpy,
689                                                 EGLint max_formats,
690                                                 EGLint *formats,
691                                                 EGLint *num_formats)
692 {
693     EnsureEGLLoaded();
694     return EGL_QueryDmaBufFormatsEXT(dpy, max_formats, formats, num_formats);
695 }
696 
eglQueryDmaBufModifiersEXT(EGLDisplay dpy,EGLint format,EGLint max_modifiers,EGLuint64KHR * modifiers,EGLBoolean * external_only,EGLint * num_modifiers)697 EGLBoolean EGLAPIENTRY eglQueryDmaBufModifiersEXT(EGLDisplay dpy,
698                                                   EGLint format,
699                                                   EGLint max_modifiers,
700                                                   EGLuint64KHR *modifiers,
701                                                   EGLBoolean *external_only,
702                                                   EGLint *num_modifiers)
703 {
704     EnsureEGLLoaded();
705     return EGL_QueryDmaBufModifiersEXT(dpy, format, max_modifiers, modifiers, external_only,
706                                        num_modifiers);
707 }
708 
709 // EGL_EXT_platform_base
eglCreatePlatformPixmapSurfaceEXT(EGLDisplay dpy,EGLConfig config,void * native_pixmap,const EGLint * attrib_list)710 EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT(EGLDisplay dpy,
711                                                          EGLConfig config,
712                                                          void *native_pixmap,
713                                                          const EGLint *attrib_list)
714 {
715     EnsureEGLLoaded();
716     return EGL_CreatePlatformPixmapSurfaceEXT(dpy, config, native_pixmap, attrib_list);
717 }
718 
eglCreatePlatformWindowSurfaceEXT(EGLDisplay dpy,EGLConfig config,void * native_window,const EGLint * attrib_list)719 EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT(EGLDisplay dpy,
720                                                          EGLConfig config,
721                                                          void *native_window,
722                                                          const EGLint *attrib_list)
723 {
724     EnsureEGLLoaded();
725     return EGL_CreatePlatformWindowSurfaceEXT(dpy, config, native_window, attrib_list);
726 }
727 
eglGetPlatformDisplayEXT(EGLenum platform,void * native_display,const EGLint * attrib_list)728 EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT(EGLenum platform,
729                                                 void *native_display,
730                                                 const EGLint *attrib_list)
731 {
732     EnsureEGLLoaded();
733     return EGL_GetPlatformDisplayEXT(platform, native_display, attrib_list);
734 }
735 
736 // EGL_KHR_debug
eglDebugMessageControlKHR(EGLDEBUGPROCKHR callback,const EGLAttrib * attrib_list)737 EGLint EGLAPIENTRY eglDebugMessageControlKHR(EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list)
738 {
739     EnsureEGLLoaded();
740     return EGL_DebugMessageControlKHR(callback, attrib_list);
741 }
742 
eglLabelObjectKHR(EGLDisplay display,EGLenum objectType,EGLObjectKHR object,EGLLabelKHR label)743 EGLint EGLAPIENTRY eglLabelObjectKHR(EGLDisplay display,
744                                      EGLenum objectType,
745                                      EGLObjectKHR object,
746                                      EGLLabelKHR label)
747 {
748     EnsureEGLLoaded();
749     return EGL_LabelObjectKHR(display, objectType, object, label);
750 }
751 
eglQueryDebugKHR(EGLint attribute,EGLAttrib * value)752 EGLBoolean EGLAPIENTRY eglQueryDebugKHR(EGLint attribute, EGLAttrib *value)
753 {
754     EnsureEGLLoaded();
755     return EGL_QueryDebugKHR(attribute, value);
756 }
757 
758 // EGL_KHR_fence_sync
eglClientWaitSyncKHR(EGLDisplay dpy,EGLSyncKHR sync,EGLint flags,EGLTimeKHR timeout)759 EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy,
760                                         EGLSyncKHR sync,
761                                         EGLint flags,
762                                         EGLTimeKHR timeout)
763 {
764     EnsureEGLLoaded();
765     return EGL_ClientWaitSyncKHR(dpy, sync, flags, timeout);
766 }
767 
eglCreateSyncKHR(EGLDisplay dpy,EGLenum type,const EGLint * attrib_list)768 EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list)
769 {
770     EnsureEGLLoaded();
771     return EGL_CreateSyncKHR(dpy, type, attrib_list);
772 }
773 
eglDestroySyncKHR(EGLDisplay dpy,EGLSyncKHR sync)774 EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync)
775 {
776     EnsureEGLLoaded();
777     return EGL_DestroySyncKHR(dpy, sync);
778 }
779 
eglGetSyncAttribKHR(EGLDisplay dpy,EGLSyncKHR sync,EGLint attribute,EGLint * value)780 EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy,
781                                            EGLSyncKHR sync,
782                                            EGLint attribute,
783                                            EGLint *value)
784 {
785     EnsureEGLLoaded();
786     return EGL_GetSyncAttribKHR(dpy, sync, attribute, value);
787 }
788 
789 // EGL_KHR_image
eglCreateImageKHR(EGLDisplay dpy,EGLContext ctx,EGLenum target,EGLClientBuffer buffer,const EGLint * attrib_list)790 EGLImageKHR EGLAPIENTRY eglCreateImageKHR(EGLDisplay dpy,
791                                           EGLContext ctx,
792                                           EGLenum target,
793                                           EGLClientBuffer buffer,
794                                           const EGLint *attrib_list)
795 {
796     EnsureEGLLoaded();
797     return EGL_CreateImageKHR(dpy, ctx, target, buffer, attrib_list);
798 }
799 
eglDestroyImageKHR(EGLDisplay dpy,EGLImageKHR image)800 EGLBoolean EGLAPIENTRY eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)
801 {
802     EnsureEGLLoaded();
803     return EGL_DestroyImageKHR(dpy, image);
804 }
805 
806 // EGL_KHR_lock_surface3
eglLockSurfaceKHR(EGLDisplay dpy,EGLSurface surface,const EGLint * attrib_list)807 EGLBoolean EGLAPIENTRY eglLockSurfaceKHR(EGLDisplay dpy,
808                                          EGLSurface surface,
809                                          const EGLint *attrib_list)
810 {
811     EnsureEGLLoaded();
812     return EGL_LockSurfaceKHR(dpy, surface, attrib_list);
813 }
814 
eglQuerySurface64KHR(EGLDisplay dpy,EGLSurface surface,EGLint attribute,EGLAttribKHR * value)815 EGLBoolean EGLAPIENTRY eglQuerySurface64KHR(EGLDisplay dpy,
816                                             EGLSurface surface,
817                                             EGLint attribute,
818                                             EGLAttribKHR *value)
819 {
820     EnsureEGLLoaded();
821     return EGL_QuerySurface64KHR(dpy, surface, attribute, value);
822 }
823 
eglUnlockSurfaceKHR(EGLDisplay dpy,EGLSurface surface)824 EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR(EGLDisplay dpy, EGLSurface surface)
825 {
826     EnsureEGLLoaded();
827     return EGL_UnlockSurfaceKHR(dpy, surface);
828 }
829 
830 // EGL_KHR_partial_update
eglSetDamageRegionKHR(EGLDisplay dpy,EGLSurface surface,EGLint * rects,EGLint n_rects)831 EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR(EGLDisplay dpy,
832                                              EGLSurface surface,
833                                              EGLint *rects,
834                                              EGLint n_rects)
835 {
836     EnsureEGLLoaded();
837     return EGL_SetDamageRegionKHR(dpy, surface, rects, n_rects);
838 }
839 
840 // EGL_KHR_reusable_sync
eglSignalSyncKHR(EGLDisplay dpy,EGLSyncKHR sync,EGLenum mode)841 EGLBoolean EGLAPIENTRY eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode)
842 {
843     EnsureEGLLoaded();
844     return EGL_SignalSyncKHR(dpy, sync, mode);
845 }
846 
847 // EGL_KHR_stream
eglCreateStreamKHR(EGLDisplay dpy,const EGLint * attrib_list)848 EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR(EGLDisplay dpy, const EGLint *attrib_list)
849 {
850     EnsureEGLLoaded();
851     return EGL_CreateStreamKHR(dpy, attrib_list);
852 }
853 
eglDestroyStreamKHR(EGLDisplay dpy,EGLStreamKHR stream)854 EGLBoolean EGLAPIENTRY eglDestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream)
855 {
856     EnsureEGLLoaded();
857     return EGL_DestroyStreamKHR(dpy, stream);
858 }
859 
eglQueryStreamKHR(EGLDisplay dpy,EGLStreamKHR stream,EGLenum attribute,EGLint * value)860 EGLBoolean EGLAPIENTRY eglQueryStreamKHR(EGLDisplay dpy,
861                                          EGLStreamKHR stream,
862                                          EGLenum attribute,
863                                          EGLint *value)
864 {
865     EnsureEGLLoaded();
866     return EGL_QueryStreamKHR(dpy, stream, attribute, value);
867 }
868 
eglQueryStreamu64KHR(EGLDisplay dpy,EGLStreamKHR stream,EGLenum attribute,EGLuint64KHR * value)869 EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR(EGLDisplay dpy,
870                                             EGLStreamKHR stream,
871                                             EGLenum attribute,
872                                             EGLuint64KHR *value)
873 {
874     EnsureEGLLoaded();
875     return EGL_QueryStreamu64KHR(dpy, stream, attribute, value);
876 }
877 
eglStreamAttribKHR(EGLDisplay dpy,EGLStreamKHR stream,EGLenum attribute,EGLint value)878 EGLBoolean EGLAPIENTRY eglStreamAttribKHR(EGLDisplay dpy,
879                                           EGLStreamKHR stream,
880                                           EGLenum attribute,
881                                           EGLint value)
882 {
883     EnsureEGLLoaded();
884     return EGL_StreamAttribKHR(dpy, stream, attribute, value);
885 }
886 
887 // EGL_KHR_stream_consumer_gltexture
eglStreamConsumerAcquireKHR(EGLDisplay dpy,EGLStreamKHR stream)888 EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR stream)
889 {
890     EnsureEGLLoaded();
891     return EGL_StreamConsumerAcquireKHR(dpy, stream);
892 }
893 
eglStreamConsumerGLTextureExternalKHR(EGLDisplay dpy,EGLStreamKHR stream)894 EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR(EGLDisplay dpy, EGLStreamKHR stream)
895 {
896     EnsureEGLLoaded();
897     return EGL_StreamConsumerGLTextureExternalKHR(dpy, stream);
898 }
899 
eglStreamConsumerReleaseKHR(EGLDisplay dpy,EGLStreamKHR stream)900 EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR stream)
901 {
902     EnsureEGLLoaded();
903     return EGL_StreamConsumerReleaseKHR(dpy, stream);
904 }
905 
906 // EGL_KHR_swap_buffers_with_damage
eglSwapBuffersWithDamageKHR(EGLDisplay dpy,EGLSurface surface,const EGLint * rects,EGLint n_rects)907 EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR(EGLDisplay dpy,
908                                                    EGLSurface surface,
909                                                    const EGLint *rects,
910                                                    EGLint n_rects)
911 {
912     EnsureEGLLoaded();
913     return EGL_SwapBuffersWithDamageKHR(dpy, surface, rects, n_rects);
914 }
915 
916 // EGL_KHR_wait_sync
eglWaitSyncKHR(EGLDisplay dpy,EGLSyncKHR sync,EGLint flags)917 EGLint EGLAPIENTRY eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags)
918 {
919     EnsureEGLLoaded();
920     return EGL_WaitSyncKHR(dpy, sync, flags);
921 }
922 
923 // EGL_NV_post_sub_buffer
eglPostSubBufferNV(EGLDisplay dpy,EGLSurface surface,EGLint x,EGLint y,EGLint width,EGLint height)924 EGLBoolean EGLAPIENTRY eglPostSubBufferNV(EGLDisplay dpy,
925                                           EGLSurface surface,
926                                           EGLint x,
927                                           EGLint y,
928                                           EGLint width,
929                                           EGLint height)
930 {
931     EnsureEGLLoaded();
932     return EGL_PostSubBufferNV(dpy, surface, x, y, width, height);
933 }
934 
935 // EGL_NV_stream_consumer_gltexture_yuv
eglStreamConsumerGLTextureExternalAttribsNV(EGLDisplay dpy,EGLStreamKHR stream,const EGLAttrib * attrib_list)936 EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV(EGLDisplay dpy,
937                                                                    EGLStreamKHR stream,
938                                                                    const EGLAttrib *attrib_list)
939 {
940     EnsureEGLLoaded();
941     return EGL_StreamConsumerGLTextureExternalAttribsNV(dpy, stream, attrib_list);
942 }
943 
944 }  // extern "C"
945