Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / ui / gl / gl_bindings_autogen_egl.cc
blob981dc8fa7b735164b1ab2894239212beccdebc15
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 //
5 // This file is auto-generated from
6 // ui/gl/generate_bindings.py
7 // It's formatted by clang-format using chromium coding style:
8 // clang-format -i -style=chromium filename
9 // DO NOT EDIT!
11 #include <string>
13 #include "base/trace_event/trace_event.h"
14 #include "ui/gl/gl_bindings.h"
15 #include "ui/gl/gl_context.h"
16 #include "ui/gl/gl_egl_api_implementation.h"
17 #include "ui/gl/gl_enums.h"
18 #include "ui/gl/gl_implementation.h"
19 #include "ui/gl/gl_version_info.h"
21 namespace gfx {
23 static bool g_debugBindingsInitialized;
24 DriverEGL g_driver_egl;
26 void DriverEGL::InitializeStaticBindings() {
27 fn.eglBindAPIFn =
28 reinterpret_cast<eglBindAPIProc>(GetGLProcAddress("eglBindAPI"));
29 fn.eglBindTexImageFn = reinterpret_cast<eglBindTexImageProc>(
30 GetGLProcAddress("eglBindTexImage"));
31 fn.eglChooseConfigFn = reinterpret_cast<eglChooseConfigProc>(
32 GetGLProcAddress("eglChooseConfig"));
33 fn.eglClientWaitSyncKHRFn = reinterpret_cast<eglClientWaitSyncKHRProc>(
34 GetGLProcAddress("eglClientWaitSyncKHR"));
35 fn.eglCopyBuffersFn =
36 reinterpret_cast<eglCopyBuffersProc>(GetGLProcAddress("eglCopyBuffers"));
37 fn.eglCreateContextFn = reinterpret_cast<eglCreateContextProc>(
38 GetGLProcAddress("eglCreateContext"));
39 fn.eglCreateImageKHRFn = 0;
40 fn.eglCreatePbufferFromClientBufferFn =
41 reinterpret_cast<eglCreatePbufferFromClientBufferProc>(
42 GetGLProcAddress("eglCreatePbufferFromClientBuffer"));
43 fn.eglCreatePbufferSurfaceFn = reinterpret_cast<eglCreatePbufferSurfaceProc>(
44 GetGLProcAddress("eglCreatePbufferSurface"));
45 fn.eglCreatePixmapSurfaceFn = reinterpret_cast<eglCreatePixmapSurfaceProc>(
46 GetGLProcAddress("eglCreatePixmapSurface"));
47 fn.eglCreateSyncKHRFn = reinterpret_cast<eglCreateSyncKHRProc>(
48 GetGLProcAddress("eglCreateSyncKHR"));
49 fn.eglCreateWindowSurfaceFn = reinterpret_cast<eglCreateWindowSurfaceProc>(
50 GetGLProcAddress("eglCreateWindowSurface"));
51 fn.eglDestroyContextFn = reinterpret_cast<eglDestroyContextProc>(
52 GetGLProcAddress("eglDestroyContext"));
53 fn.eglDestroyImageKHRFn = 0;
54 fn.eglDestroySurfaceFn = reinterpret_cast<eglDestroySurfaceProc>(
55 GetGLProcAddress("eglDestroySurface"));
56 fn.eglDestroySyncKHRFn = reinterpret_cast<eglDestroySyncKHRProc>(
57 GetGLProcAddress("eglDestroySyncKHR"));
58 fn.eglGetConfigAttribFn = reinterpret_cast<eglGetConfigAttribProc>(
59 GetGLProcAddress("eglGetConfigAttrib"));
60 fn.eglGetConfigsFn =
61 reinterpret_cast<eglGetConfigsProc>(GetGLProcAddress("eglGetConfigs"));
62 fn.eglGetCurrentContextFn = reinterpret_cast<eglGetCurrentContextProc>(
63 GetGLProcAddress("eglGetCurrentContext"));
64 fn.eglGetCurrentDisplayFn = reinterpret_cast<eglGetCurrentDisplayProc>(
65 GetGLProcAddress("eglGetCurrentDisplay"));
66 fn.eglGetCurrentSurfaceFn = reinterpret_cast<eglGetCurrentSurfaceProc>(
67 GetGLProcAddress("eglGetCurrentSurface"));
68 fn.eglGetDisplayFn =
69 reinterpret_cast<eglGetDisplayProc>(GetGLProcAddress("eglGetDisplay"));
70 fn.eglGetErrorFn =
71 reinterpret_cast<eglGetErrorProc>(GetGLProcAddress("eglGetError"));
72 fn.eglGetPlatformDisplayEXTFn = 0;
73 fn.eglGetProcAddressFn = reinterpret_cast<eglGetProcAddressProc>(
74 GetGLProcAddress("eglGetProcAddress"));
75 fn.eglGetSyncAttribKHRFn = reinterpret_cast<eglGetSyncAttribKHRProc>(
76 GetGLProcAddress("eglGetSyncAttribKHR"));
77 fn.eglGetSyncValuesCHROMIUMFn = 0;
78 fn.eglInitializeFn =
79 reinterpret_cast<eglInitializeProc>(GetGLProcAddress("eglInitialize"));
80 fn.eglMakeCurrentFn =
81 reinterpret_cast<eglMakeCurrentProc>(GetGLProcAddress("eglMakeCurrent"));
82 fn.eglPostSubBufferNVFn = 0;
83 fn.eglQueryAPIFn =
84 reinterpret_cast<eglQueryAPIProc>(GetGLProcAddress("eglQueryAPI"));
85 fn.eglQueryContextFn = reinterpret_cast<eglQueryContextProc>(
86 GetGLProcAddress("eglQueryContext"));
87 fn.eglQueryStringFn =
88 reinterpret_cast<eglQueryStringProc>(GetGLProcAddress("eglQueryString"));
89 fn.eglQuerySurfaceFn = reinterpret_cast<eglQuerySurfaceProc>(
90 GetGLProcAddress("eglQuerySurface"));
91 fn.eglQuerySurfacePointerANGLEFn = 0;
92 fn.eglReleaseTexImageFn = reinterpret_cast<eglReleaseTexImageProc>(
93 GetGLProcAddress("eglReleaseTexImage"));
94 fn.eglReleaseThreadFn = reinterpret_cast<eglReleaseThreadProc>(
95 GetGLProcAddress("eglReleaseThread"));
96 fn.eglSurfaceAttribFn = reinterpret_cast<eglSurfaceAttribProc>(
97 GetGLProcAddress("eglSurfaceAttrib"));
98 fn.eglSwapBuffersFn =
99 reinterpret_cast<eglSwapBuffersProc>(GetGLProcAddress("eglSwapBuffers"));
100 fn.eglSwapIntervalFn = reinterpret_cast<eglSwapIntervalProc>(
101 GetGLProcAddress("eglSwapInterval"));
102 fn.eglTerminateFn =
103 reinterpret_cast<eglTerminateProc>(GetGLProcAddress("eglTerminate"));
104 fn.eglWaitClientFn =
105 reinterpret_cast<eglWaitClientProc>(GetGLProcAddress("eglWaitClient"));
106 fn.eglWaitGLFn =
107 reinterpret_cast<eglWaitGLProc>(GetGLProcAddress("eglWaitGL"));
108 fn.eglWaitNativeFn =
109 reinterpret_cast<eglWaitNativeProc>(GetGLProcAddress("eglWaitNative"));
110 fn.eglWaitSyncKHRFn = 0;
113 void DriverEGL::InitializeExtensionBindings() {
114 std::string client_extensions(GetClientExtensions());
115 client_extensions += " ";
116 ALLOW_UNUSED_LOCAL(client_extensions);
118 ext.b_EGL_EXT_platform_base =
119 client_extensions.find("EGL_EXT_platform_base ") != std::string::npos;
121 debug_fn.eglGetPlatformDisplayEXTFn = 0;
122 if (ext.b_EGL_EXT_platform_base) {
123 fn.eglGetPlatformDisplayEXTFn =
124 reinterpret_cast<eglGetPlatformDisplayEXTProc>(
125 GetGLProcAddress("eglGetPlatformDisplayEXT"));
126 DCHECK(fn.eglGetPlatformDisplayEXTFn);
128 std::string extensions(GetPlatformExtensions());
129 extensions += " ";
130 ALLOW_UNUSED_LOCAL(extensions);
132 ext.b_EGL_ANGLE_d3d_share_handle_client_buffer =
133 extensions.find("EGL_ANGLE_d3d_share_handle_client_buffer ") !=
134 std::string::npos;
135 ext.b_EGL_ANGLE_query_surface_pointer =
136 extensions.find("EGL_ANGLE_query_surface_pointer ") != std::string::npos;
137 ext.b_EGL_ANGLE_surface_d3d_texture_2d_share_handle =
138 extensions.find("EGL_ANGLE_surface_d3d_texture_2d_share_handle ") !=
139 std::string::npos;
140 ext.b_EGL_CHROMIUM_sync_control =
141 extensions.find("EGL_CHROMIUM_sync_control ") != std::string::npos;
142 ext.b_EGL_KHR_fence_sync =
143 extensions.find("EGL_KHR_fence_sync ") != std::string::npos;
144 ext.b_EGL_KHR_gl_texture_2D_image =
145 extensions.find("EGL_KHR_gl_texture_2D_image ") != std::string::npos;
146 ext.b_EGL_KHR_image = extensions.find("EGL_KHR_image ") != std::string::npos;
147 ext.b_EGL_KHR_image_base =
148 extensions.find("EGL_KHR_image_base ") != std::string::npos;
149 ext.b_EGL_KHR_reusable_sync =
150 extensions.find("EGL_KHR_reusable_sync ") != std::string::npos;
151 ext.b_EGL_KHR_wait_sync =
152 extensions.find("EGL_KHR_wait_sync ") != std::string::npos;
153 ext.b_EGL_NV_post_sub_buffer =
154 extensions.find("EGL_NV_post_sub_buffer ") != std::string::npos;
155 ext.b_GL_CHROMIUM_egl_khr_fence_sync_hack =
156 extensions.find("GL_CHROMIUM_egl_khr_fence_sync_hack ") !=
157 std::string::npos;
159 debug_fn.eglCreateImageKHRFn = 0;
160 if (ext.b_EGL_KHR_image || ext.b_EGL_KHR_image_base ||
161 ext.b_EGL_KHR_gl_texture_2D_image) {
162 fn.eglCreateImageKHRFn = reinterpret_cast<eglCreateImageKHRProc>(
163 GetGLProcAddress("eglCreateImageKHR"));
164 DCHECK(fn.eglCreateImageKHRFn);
167 debug_fn.eglDestroyImageKHRFn = 0;
168 if (ext.b_EGL_KHR_image || ext.b_EGL_KHR_image_base) {
169 fn.eglDestroyImageKHRFn = reinterpret_cast<eglDestroyImageKHRProc>(
170 GetGLProcAddress("eglDestroyImageKHR"));
171 DCHECK(fn.eglDestroyImageKHRFn);
174 debug_fn.eglGetSyncValuesCHROMIUMFn = 0;
175 if (ext.b_EGL_CHROMIUM_sync_control) {
176 fn.eglGetSyncValuesCHROMIUMFn =
177 reinterpret_cast<eglGetSyncValuesCHROMIUMProc>(
178 GetGLProcAddress("eglGetSyncValuesCHROMIUM"));
179 DCHECK(fn.eglGetSyncValuesCHROMIUMFn);
182 debug_fn.eglPostSubBufferNVFn = 0;
183 if (ext.b_EGL_NV_post_sub_buffer) {
184 fn.eglPostSubBufferNVFn = reinterpret_cast<eglPostSubBufferNVProc>(
185 GetGLProcAddress("eglPostSubBufferNV"));
186 DCHECK(fn.eglPostSubBufferNVFn);
189 debug_fn.eglQuerySurfacePointerANGLEFn = 0;
190 if (ext.b_EGL_ANGLE_query_surface_pointer) {
191 fn.eglQuerySurfacePointerANGLEFn =
192 reinterpret_cast<eglQuerySurfacePointerANGLEProc>(
193 GetGLProcAddress("eglQuerySurfacePointerANGLE"));
194 DCHECK(fn.eglQuerySurfacePointerANGLEFn);
197 debug_fn.eglWaitSyncKHRFn = 0;
198 if (ext.b_EGL_KHR_wait_sync) {
199 fn.eglWaitSyncKHRFn = reinterpret_cast<eglWaitSyncKHRProc>(
200 GetGLProcAddress("eglWaitSyncKHR"));
201 DCHECK(fn.eglWaitSyncKHRFn);
204 if (g_debugBindingsInitialized)
205 InitializeDebugBindings();
208 extern "C" {
210 static EGLBoolean GL_BINDING_CALL Debug_eglBindAPI(EGLenum api) {
211 GL_SERVICE_LOG("eglBindAPI"
212 << "(" << api << ")");
213 EGLBoolean result = g_driver_egl.debug_fn.eglBindAPIFn(api);
214 GL_SERVICE_LOG("GL_RESULT: " << result);
215 return result;
218 static EGLBoolean GL_BINDING_CALL
219 Debug_eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) {
220 GL_SERVICE_LOG("eglBindTexImage"
221 << "(" << dpy << ", " << surface << ", " << buffer << ")");
222 EGLBoolean result =
223 g_driver_egl.debug_fn.eglBindTexImageFn(dpy, surface, buffer);
224 GL_SERVICE_LOG("GL_RESULT: " << result);
225 return result;
228 static EGLBoolean GL_BINDING_CALL
229 Debug_eglChooseConfig(EGLDisplay dpy,
230 const EGLint* attrib_list,
231 EGLConfig* configs,
232 EGLint config_size,
233 EGLint* num_config) {
234 GL_SERVICE_LOG("eglChooseConfig"
235 << "(" << dpy << ", " << static_cast<const void*>(attrib_list)
236 << ", " << static_cast<const void*>(configs) << ", "
237 << config_size << ", " << static_cast<const void*>(num_config)
238 << ")");
239 EGLBoolean result = g_driver_egl.debug_fn.eglChooseConfigFn(
240 dpy, attrib_list, configs, config_size, num_config);
241 GL_SERVICE_LOG("GL_RESULT: " << result);
242 return result;
245 static EGLint GL_BINDING_CALL Debug_eglClientWaitSyncKHR(EGLDisplay dpy,
246 EGLSyncKHR sync,
247 EGLint flags,
248 EGLTimeKHR timeout) {
249 GL_SERVICE_LOG("eglClientWaitSyncKHR"
250 << "(" << dpy << ", " << sync << ", " << flags << ", "
251 << timeout << ")");
252 EGLint result =
253 g_driver_egl.debug_fn.eglClientWaitSyncKHRFn(dpy, sync, flags, timeout);
254 GL_SERVICE_LOG("GL_RESULT: " << result);
255 return result;
258 static EGLBoolean GL_BINDING_CALL
259 Debug_eglCopyBuffers(EGLDisplay dpy,
260 EGLSurface surface,
261 EGLNativePixmapType target) {
262 GL_SERVICE_LOG("eglCopyBuffers"
263 << "(" << dpy << ", " << surface << ", " << target << ")");
264 EGLBoolean result =
265 g_driver_egl.debug_fn.eglCopyBuffersFn(dpy, surface, target);
266 GL_SERVICE_LOG("GL_RESULT: " << result);
267 return result;
270 static EGLContext GL_BINDING_CALL
271 Debug_eglCreateContext(EGLDisplay dpy,
272 EGLConfig config,
273 EGLContext share_context,
274 const EGLint* attrib_list) {
275 GL_SERVICE_LOG("eglCreateContext"
276 << "(" << dpy << ", " << config << ", " << share_context
277 << ", " << static_cast<const void*>(attrib_list) << ")");
278 EGLContext result = g_driver_egl.debug_fn.eglCreateContextFn(
279 dpy, config, share_context, attrib_list);
280 GL_SERVICE_LOG("GL_RESULT: " << result);
281 return result;
284 static EGLImageKHR GL_BINDING_CALL
285 Debug_eglCreateImageKHR(EGLDisplay dpy,
286 EGLContext ctx,
287 EGLenum target,
288 EGLClientBuffer buffer,
289 const EGLint* attrib_list) {
290 GL_SERVICE_LOG("eglCreateImageKHR"
291 << "(" << dpy << ", " << ctx << ", " << target << ", "
292 << buffer << ", " << static_cast<const void*>(attrib_list)
293 << ")");
294 EGLImageKHR result = g_driver_egl.debug_fn.eglCreateImageKHRFn(
295 dpy, ctx, target, buffer, attrib_list);
296 GL_SERVICE_LOG("GL_RESULT: " << result);
297 return result;
300 static EGLSurface GL_BINDING_CALL
301 Debug_eglCreatePbufferFromClientBuffer(EGLDisplay dpy,
302 EGLenum buftype,
303 void* buffer,
304 EGLConfig config,
305 const EGLint* attrib_list) {
306 GL_SERVICE_LOG("eglCreatePbufferFromClientBuffer"
307 << "(" << dpy << ", " << buftype << ", "
308 << static_cast<const void*>(buffer) << ", " << config << ", "
309 << static_cast<const void*>(attrib_list) << ")");
310 EGLSurface result = g_driver_egl.debug_fn.eglCreatePbufferFromClientBufferFn(
311 dpy, buftype, buffer, config, attrib_list);
312 GL_SERVICE_LOG("GL_RESULT: " << result);
313 return result;
316 static EGLSurface GL_BINDING_CALL
317 Debug_eglCreatePbufferSurface(EGLDisplay dpy,
318 EGLConfig config,
319 const EGLint* attrib_list) {
320 GL_SERVICE_LOG("eglCreatePbufferSurface"
321 << "(" << dpy << ", " << config << ", "
322 << static_cast<const void*>(attrib_list) << ")");
323 EGLSurface result =
324 g_driver_egl.debug_fn.eglCreatePbufferSurfaceFn(dpy, config, attrib_list);
325 GL_SERVICE_LOG("GL_RESULT: " << result);
326 return result;
329 static EGLSurface GL_BINDING_CALL
330 Debug_eglCreatePixmapSurface(EGLDisplay dpy,
331 EGLConfig config,
332 EGLNativePixmapType pixmap,
333 const EGLint* attrib_list) {
334 GL_SERVICE_LOG("eglCreatePixmapSurface"
335 << "(" << dpy << ", " << config << ", " << pixmap << ", "
336 << static_cast<const void*>(attrib_list) << ")");
337 EGLSurface result = g_driver_egl.debug_fn.eglCreatePixmapSurfaceFn(
338 dpy, config, pixmap, attrib_list);
339 GL_SERVICE_LOG("GL_RESULT: " << result);
340 return result;
343 static EGLSyncKHR GL_BINDING_CALL
344 Debug_eglCreateSyncKHR(EGLDisplay dpy,
345 EGLenum type,
346 const EGLint* attrib_list) {
347 GL_SERVICE_LOG("eglCreateSyncKHR"
348 << "(" << dpy << ", " << type << ", "
349 << static_cast<const void*>(attrib_list) << ")");
350 EGLSyncKHR result =
351 g_driver_egl.debug_fn.eglCreateSyncKHRFn(dpy, type, attrib_list);
352 GL_SERVICE_LOG("GL_RESULT: " << result);
353 return result;
356 static EGLSurface GL_BINDING_CALL
357 Debug_eglCreateWindowSurface(EGLDisplay dpy,
358 EGLConfig config,
359 EGLNativeWindowType win,
360 const EGLint* attrib_list) {
361 GL_SERVICE_LOG("eglCreateWindowSurface"
362 << "(" << dpy << ", " << config << ", " << win << ", "
363 << static_cast<const void*>(attrib_list) << ")");
364 EGLSurface result = g_driver_egl.debug_fn.eglCreateWindowSurfaceFn(
365 dpy, config, win, attrib_list);
366 GL_SERVICE_LOG("GL_RESULT: " << result);
367 return result;
370 static EGLBoolean GL_BINDING_CALL
371 Debug_eglDestroyContext(EGLDisplay dpy, EGLContext ctx) {
372 GL_SERVICE_LOG("eglDestroyContext"
373 << "(" << dpy << ", " << ctx << ")");
374 EGLBoolean result = g_driver_egl.debug_fn.eglDestroyContextFn(dpy, ctx);
375 GL_SERVICE_LOG("GL_RESULT: " << result);
376 return result;
379 static EGLBoolean GL_BINDING_CALL
380 Debug_eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image) {
381 GL_SERVICE_LOG("eglDestroyImageKHR"
382 << "(" << dpy << ", " << image << ")");
383 EGLBoolean result = g_driver_egl.debug_fn.eglDestroyImageKHRFn(dpy, image);
384 GL_SERVICE_LOG("GL_RESULT: " << result);
385 return result;
388 static EGLBoolean GL_BINDING_CALL
389 Debug_eglDestroySurface(EGLDisplay dpy, EGLSurface surface) {
390 GL_SERVICE_LOG("eglDestroySurface"
391 << "(" << dpy << ", " << surface << ")");
392 EGLBoolean result = g_driver_egl.debug_fn.eglDestroySurfaceFn(dpy, surface);
393 GL_SERVICE_LOG("GL_RESULT: " << result);
394 return result;
397 static EGLBoolean GL_BINDING_CALL
398 Debug_eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync) {
399 GL_SERVICE_LOG("eglDestroySyncKHR"
400 << "(" << dpy << ", " << sync << ")");
401 EGLBoolean result = g_driver_egl.debug_fn.eglDestroySyncKHRFn(dpy, sync);
402 GL_SERVICE_LOG("GL_RESULT: " << result);
403 return result;
406 static EGLBoolean GL_BINDING_CALL Debug_eglGetConfigAttrib(EGLDisplay dpy,
407 EGLConfig config,
408 EGLint attribute,
409 EGLint* value) {
410 GL_SERVICE_LOG("eglGetConfigAttrib"
411 << "(" << dpy << ", " << config << ", " << attribute << ", "
412 << static_cast<const void*>(value) << ")");
413 EGLBoolean result =
414 g_driver_egl.debug_fn.eglGetConfigAttribFn(dpy, config, attribute, value);
415 GL_SERVICE_LOG("GL_RESULT: " << result);
416 return result;
419 static EGLBoolean GL_BINDING_CALL Debug_eglGetConfigs(EGLDisplay dpy,
420 EGLConfig* configs,
421 EGLint config_size,
422 EGLint* num_config) {
423 GL_SERVICE_LOG("eglGetConfigs"
424 << "(" << dpy << ", " << static_cast<const void*>(configs)
425 << ", " << config_size << ", "
426 << static_cast<const void*>(num_config) << ")");
427 EGLBoolean result = g_driver_egl.debug_fn.eglGetConfigsFn(
428 dpy, configs, config_size, num_config);
429 GL_SERVICE_LOG("GL_RESULT: " << result);
430 return result;
433 static EGLContext GL_BINDING_CALL Debug_eglGetCurrentContext(void) {
434 GL_SERVICE_LOG("eglGetCurrentContext"
435 << "("
436 << ")");
437 EGLContext result = g_driver_egl.debug_fn.eglGetCurrentContextFn();
438 GL_SERVICE_LOG("GL_RESULT: " << result);
439 return result;
442 static EGLDisplay GL_BINDING_CALL Debug_eglGetCurrentDisplay(void) {
443 GL_SERVICE_LOG("eglGetCurrentDisplay"
444 << "("
445 << ")");
446 EGLDisplay result = g_driver_egl.debug_fn.eglGetCurrentDisplayFn();
447 GL_SERVICE_LOG("GL_RESULT: " << result);
448 return result;
451 static EGLSurface GL_BINDING_CALL Debug_eglGetCurrentSurface(EGLint readdraw) {
452 GL_SERVICE_LOG("eglGetCurrentSurface"
453 << "(" << readdraw << ")");
454 EGLSurface result = g_driver_egl.debug_fn.eglGetCurrentSurfaceFn(readdraw);
455 GL_SERVICE_LOG("GL_RESULT: " << result);
456 return result;
459 static EGLDisplay GL_BINDING_CALL
460 Debug_eglGetDisplay(EGLNativeDisplayType display_id) {
461 GL_SERVICE_LOG("eglGetDisplay"
462 << "(" << display_id << ")");
463 EGLDisplay result = g_driver_egl.debug_fn.eglGetDisplayFn(display_id);
464 GL_SERVICE_LOG("GL_RESULT: " << result);
465 return result;
468 static EGLint GL_BINDING_CALL Debug_eglGetError(void) {
469 GL_SERVICE_LOG("eglGetError"
470 << "("
471 << ")");
472 EGLint result = g_driver_egl.debug_fn.eglGetErrorFn();
473 GL_SERVICE_LOG("GL_RESULT: " << result);
474 return result;
477 static EGLDisplay GL_BINDING_CALL
478 Debug_eglGetPlatformDisplayEXT(EGLenum platform,
479 void* native_display,
480 const EGLint* attrib_list) {
481 GL_SERVICE_LOG("eglGetPlatformDisplayEXT"
482 << "(" << platform << ", "
483 << static_cast<const void*>(native_display) << ", "
484 << static_cast<const void*>(attrib_list) << ")");
485 EGLDisplay result = g_driver_egl.debug_fn.eglGetPlatformDisplayEXTFn(
486 platform, native_display, attrib_list);
487 GL_SERVICE_LOG("GL_RESULT: " << result);
488 return result;
491 static __eglMustCastToProperFunctionPointerType GL_BINDING_CALL
492 Debug_eglGetProcAddress(const char* procname) {
493 GL_SERVICE_LOG("eglGetProcAddress"
494 << "(" << procname << ")");
495 __eglMustCastToProperFunctionPointerType result =
496 g_driver_egl.debug_fn.eglGetProcAddressFn(procname);
497 GL_SERVICE_LOG("GL_RESULT: " << result);
498 return result;
501 static EGLBoolean GL_BINDING_CALL Debug_eglGetSyncAttribKHR(EGLDisplay dpy,
502 EGLSyncKHR sync,
503 EGLint attribute,
504 EGLint* value) {
505 GL_SERVICE_LOG("eglGetSyncAttribKHR"
506 << "(" << dpy << ", " << sync << ", " << attribute << ", "
507 << static_cast<const void*>(value) << ")");
508 EGLBoolean result =
509 g_driver_egl.debug_fn.eglGetSyncAttribKHRFn(dpy, sync, attribute, value);
510 GL_SERVICE_LOG("GL_RESULT: " << result);
511 return result;
514 static EGLBoolean GL_BINDING_CALL
515 Debug_eglGetSyncValuesCHROMIUM(EGLDisplay dpy,
516 EGLSurface surface,
517 EGLuint64CHROMIUM* ust,
518 EGLuint64CHROMIUM* msc,
519 EGLuint64CHROMIUM* sbc) {
520 GL_SERVICE_LOG("eglGetSyncValuesCHROMIUM"
521 << "(" << dpy << ", " << surface << ", "
522 << static_cast<const void*>(ust) << ", "
523 << static_cast<const void*>(msc) << ", "
524 << static_cast<const void*>(sbc) << ")");
525 EGLBoolean result = g_driver_egl.debug_fn.eglGetSyncValuesCHROMIUMFn(
526 dpy, surface, ust, msc, sbc);
527 GL_SERVICE_LOG("GL_RESULT: " << result);
528 return result;
531 static EGLBoolean GL_BINDING_CALL
532 Debug_eglInitialize(EGLDisplay dpy, EGLint* major, EGLint* minor) {
533 GL_SERVICE_LOG("eglInitialize"
534 << "(" << dpy << ", " << static_cast<const void*>(major)
535 << ", " << static_cast<const void*>(minor) << ")");
536 EGLBoolean result = g_driver_egl.debug_fn.eglInitializeFn(dpy, major, minor);
537 GL_SERVICE_LOG("GL_RESULT: " << result);
538 return result;
541 static EGLBoolean GL_BINDING_CALL Debug_eglMakeCurrent(EGLDisplay dpy,
542 EGLSurface draw,
543 EGLSurface read,
544 EGLContext ctx) {
545 GL_SERVICE_LOG("eglMakeCurrent"
546 << "(" << dpy << ", " << draw << ", " << read << ", " << ctx
547 << ")");
548 EGLBoolean result =
549 g_driver_egl.debug_fn.eglMakeCurrentFn(dpy, draw, read, ctx);
550 GL_SERVICE_LOG("GL_RESULT: " << result);
551 return result;
554 static EGLBoolean GL_BINDING_CALL Debug_eglPostSubBufferNV(EGLDisplay dpy,
555 EGLSurface surface,
556 EGLint x,
557 EGLint y,
558 EGLint width,
559 EGLint height) {
560 GL_SERVICE_LOG("eglPostSubBufferNV"
561 << "(" << dpy << ", " << surface << ", " << x << ", " << y
562 << ", " << width << ", " << height << ")");
563 EGLBoolean result = g_driver_egl.debug_fn.eglPostSubBufferNVFn(
564 dpy, surface, x, y, width, height);
565 GL_SERVICE_LOG("GL_RESULT: " << result);
566 return result;
569 static EGLenum GL_BINDING_CALL Debug_eglQueryAPI(void) {
570 GL_SERVICE_LOG("eglQueryAPI"
571 << "("
572 << ")");
573 EGLenum result = g_driver_egl.debug_fn.eglQueryAPIFn();
574 GL_SERVICE_LOG("GL_RESULT: " << result);
575 return result;
578 static EGLBoolean GL_BINDING_CALL Debug_eglQueryContext(EGLDisplay dpy,
579 EGLContext ctx,
580 EGLint attribute,
581 EGLint* value) {
582 GL_SERVICE_LOG("eglQueryContext"
583 << "(" << dpy << ", " << ctx << ", " << attribute << ", "
584 << static_cast<const void*>(value) << ")");
585 EGLBoolean result =
586 g_driver_egl.debug_fn.eglQueryContextFn(dpy, ctx, attribute, value);
587 GL_SERVICE_LOG("GL_RESULT: " << result);
588 return result;
591 static const char* GL_BINDING_CALL
592 Debug_eglQueryString(EGLDisplay dpy, EGLint name) {
593 GL_SERVICE_LOG("eglQueryString"
594 << "(" << dpy << ", " << name << ")");
595 const char* result = g_driver_egl.debug_fn.eglQueryStringFn(dpy, name);
596 GL_SERVICE_LOG("GL_RESULT: " << result);
597 return result;
600 static EGLBoolean GL_BINDING_CALL Debug_eglQuerySurface(EGLDisplay dpy,
601 EGLSurface surface,
602 EGLint attribute,
603 EGLint* value) {
604 GL_SERVICE_LOG("eglQuerySurface"
605 << "(" << dpy << ", " << surface << ", " << attribute << ", "
606 << static_cast<const void*>(value) << ")");
607 EGLBoolean result =
608 g_driver_egl.debug_fn.eglQuerySurfaceFn(dpy, surface, attribute, value);
609 GL_SERVICE_LOG("GL_RESULT: " << result);
610 return result;
613 static EGLBoolean GL_BINDING_CALL
614 Debug_eglQuerySurfacePointerANGLE(EGLDisplay dpy,
615 EGLSurface surface,
616 EGLint attribute,
617 void** value) {
618 GL_SERVICE_LOG("eglQuerySurfacePointerANGLE"
619 << "(" << dpy << ", " << surface << ", " << attribute << ", "
620 << value << ")");
621 EGLBoolean result = g_driver_egl.debug_fn.eglQuerySurfacePointerANGLEFn(
622 dpy, surface, attribute, value);
623 GL_SERVICE_LOG("GL_RESULT: " << result);
624 return result;
627 static EGLBoolean GL_BINDING_CALL
628 Debug_eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) {
629 GL_SERVICE_LOG("eglReleaseTexImage"
630 << "(" << dpy << ", " << surface << ", " << buffer << ")");
631 EGLBoolean result =
632 g_driver_egl.debug_fn.eglReleaseTexImageFn(dpy, surface, buffer);
633 GL_SERVICE_LOG("GL_RESULT: " << result);
634 return result;
637 static EGLBoolean GL_BINDING_CALL Debug_eglReleaseThread(void) {
638 GL_SERVICE_LOG("eglReleaseThread"
639 << "("
640 << ")");
641 EGLBoolean result = g_driver_egl.debug_fn.eglReleaseThreadFn();
642 GL_SERVICE_LOG("GL_RESULT: " << result);
643 return result;
646 static EGLBoolean GL_BINDING_CALL Debug_eglSurfaceAttrib(EGLDisplay dpy,
647 EGLSurface surface,
648 EGLint attribute,
649 EGLint value) {
650 GL_SERVICE_LOG("eglSurfaceAttrib"
651 << "(" << dpy << ", " << surface << ", " << attribute << ", "
652 << value << ")");
653 EGLBoolean result =
654 g_driver_egl.debug_fn.eglSurfaceAttribFn(dpy, surface, attribute, value);
655 GL_SERVICE_LOG("GL_RESULT: " << result);
656 return result;
659 static EGLBoolean GL_BINDING_CALL
660 Debug_eglSwapBuffers(EGLDisplay dpy, EGLSurface surface) {
661 GL_SERVICE_LOG("eglSwapBuffers"
662 << "(" << dpy << ", " << surface << ")");
663 EGLBoolean result = g_driver_egl.debug_fn.eglSwapBuffersFn(dpy, surface);
664 GL_SERVICE_LOG("GL_RESULT: " << result);
665 return result;
668 static EGLBoolean GL_BINDING_CALL
669 Debug_eglSwapInterval(EGLDisplay dpy, EGLint interval) {
670 GL_SERVICE_LOG("eglSwapInterval"
671 << "(" << dpy << ", " << interval << ")");
672 EGLBoolean result = g_driver_egl.debug_fn.eglSwapIntervalFn(dpy, interval);
673 GL_SERVICE_LOG("GL_RESULT: " << result);
674 return result;
677 static EGLBoolean GL_BINDING_CALL Debug_eglTerminate(EGLDisplay dpy) {
678 GL_SERVICE_LOG("eglTerminate"
679 << "(" << dpy << ")");
680 EGLBoolean result = g_driver_egl.debug_fn.eglTerminateFn(dpy);
681 GL_SERVICE_LOG("GL_RESULT: " << result);
682 return result;
685 static EGLBoolean GL_BINDING_CALL Debug_eglWaitClient(void) {
686 GL_SERVICE_LOG("eglWaitClient"
687 << "("
688 << ")");
689 EGLBoolean result = g_driver_egl.debug_fn.eglWaitClientFn();
690 GL_SERVICE_LOG("GL_RESULT: " << result);
691 return result;
694 static EGLBoolean GL_BINDING_CALL Debug_eglWaitGL(void) {
695 GL_SERVICE_LOG("eglWaitGL"
696 << "("
697 << ")");
698 EGLBoolean result = g_driver_egl.debug_fn.eglWaitGLFn();
699 GL_SERVICE_LOG("GL_RESULT: " << result);
700 return result;
703 static EGLBoolean GL_BINDING_CALL Debug_eglWaitNative(EGLint engine) {
704 GL_SERVICE_LOG("eglWaitNative"
705 << "(" << engine << ")");
706 EGLBoolean result = g_driver_egl.debug_fn.eglWaitNativeFn(engine);
707 GL_SERVICE_LOG("GL_RESULT: " << result);
708 return result;
711 static EGLint GL_BINDING_CALL
712 Debug_eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags) {
713 GL_SERVICE_LOG("eglWaitSyncKHR"
714 << "(" << dpy << ", " << sync << ", " << flags << ")");
715 EGLint result = g_driver_egl.debug_fn.eglWaitSyncKHRFn(dpy, sync, flags);
716 GL_SERVICE_LOG("GL_RESULT: " << result);
717 return result;
719 } // extern "C"
721 void DriverEGL::InitializeDebugBindings() {
722 if (!debug_fn.eglBindAPIFn) {
723 debug_fn.eglBindAPIFn = fn.eglBindAPIFn;
724 fn.eglBindAPIFn = Debug_eglBindAPI;
726 if (!debug_fn.eglBindTexImageFn) {
727 debug_fn.eglBindTexImageFn = fn.eglBindTexImageFn;
728 fn.eglBindTexImageFn = Debug_eglBindTexImage;
730 if (!debug_fn.eglChooseConfigFn) {
731 debug_fn.eglChooseConfigFn = fn.eglChooseConfigFn;
732 fn.eglChooseConfigFn = Debug_eglChooseConfig;
734 if (!debug_fn.eglClientWaitSyncKHRFn) {
735 debug_fn.eglClientWaitSyncKHRFn = fn.eglClientWaitSyncKHRFn;
736 fn.eglClientWaitSyncKHRFn = Debug_eglClientWaitSyncKHR;
738 if (!debug_fn.eglCopyBuffersFn) {
739 debug_fn.eglCopyBuffersFn = fn.eglCopyBuffersFn;
740 fn.eglCopyBuffersFn = Debug_eglCopyBuffers;
742 if (!debug_fn.eglCreateContextFn) {
743 debug_fn.eglCreateContextFn = fn.eglCreateContextFn;
744 fn.eglCreateContextFn = Debug_eglCreateContext;
746 if (!debug_fn.eglCreateImageKHRFn) {
747 debug_fn.eglCreateImageKHRFn = fn.eglCreateImageKHRFn;
748 fn.eglCreateImageKHRFn = Debug_eglCreateImageKHR;
750 if (!debug_fn.eglCreatePbufferFromClientBufferFn) {
751 debug_fn.eglCreatePbufferFromClientBufferFn =
752 fn.eglCreatePbufferFromClientBufferFn;
753 fn.eglCreatePbufferFromClientBufferFn =
754 Debug_eglCreatePbufferFromClientBuffer;
756 if (!debug_fn.eglCreatePbufferSurfaceFn) {
757 debug_fn.eglCreatePbufferSurfaceFn = fn.eglCreatePbufferSurfaceFn;
758 fn.eglCreatePbufferSurfaceFn = Debug_eglCreatePbufferSurface;
760 if (!debug_fn.eglCreatePixmapSurfaceFn) {
761 debug_fn.eglCreatePixmapSurfaceFn = fn.eglCreatePixmapSurfaceFn;
762 fn.eglCreatePixmapSurfaceFn = Debug_eglCreatePixmapSurface;
764 if (!debug_fn.eglCreateSyncKHRFn) {
765 debug_fn.eglCreateSyncKHRFn = fn.eglCreateSyncKHRFn;
766 fn.eglCreateSyncKHRFn = Debug_eglCreateSyncKHR;
768 if (!debug_fn.eglCreateWindowSurfaceFn) {
769 debug_fn.eglCreateWindowSurfaceFn = fn.eglCreateWindowSurfaceFn;
770 fn.eglCreateWindowSurfaceFn = Debug_eglCreateWindowSurface;
772 if (!debug_fn.eglDestroyContextFn) {
773 debug_fn.eglDestroyContextFn = fn.eglDestroyContextFn;
774 fn.eglDestroyContextFn = Debug_eglDestroyContext;
776 if (!debug_fn.eglDestroyImageKHRFn) {
777 debug_fn.eglDestroyImageKHRFn = fn.eglDestroyImageKHRFn;
778 fn.eglDestroyImageKHRFn = Debug_eglDestroyImageKHR;
780 if (!debug_fn.eglDestroySurfaceFn) {
781 debug_fn.eglDestroySurfaceFn = fn.eglDestroySurfaceFn;
782 fn.eglDestroySurfaceFn = Debug_eglDestroySurface;
784 if (!debug_fn.eglDestroySyncKHRFn) {
785 debug_fn.eglDestroySyncKHRFn = fn.eglDestroySyncKHRFn;
786 fn.eglDestroySyncKHRFn = Debug_eglDestroySyncKHR;
788 if (!debug_fn.eglGetConfigAttribFn) {
789 debug_fn.eglGetConfigAttribFn = fn.eglGetConfigAttribFn;
790 fn.eglGetConfigAttribFn = Debug_eglGetConfigAttrib;
792 if (!debug_fn.eglGetConfigsFn) {
793 debug_fn.eglGetConfigsFn = fn.eglGetConfigsFn;
794 fn.eglGetConfigsFn = Debug_eglGetConfigs;
796 if (!debug_fn.eglGetCurrentContextFn) {
797 debug_fn.eglGetCurrentContextFn = fn.eglGetCurrentContextFn;
798 fn.eglGetCurrentContextFn = Debug_eglGetCurrentContext;
800 if (!debug_fn.eglGetCurrentDisplayFn) {
801 debug_fn.eglGetCurrentDisplayFn = fn.eglGetCurrentDisplayFn;
802 fn.eglGetCurrentDisplayFn = Debug_eglGetCurrentDisplay;
804 if (!debug_fn.eglGetCurrentSurfaceFn) {
805 debug_fn.eglGetCurrentSurfaceFn = fn.eglGetCurrentSurfaceFn;
806 fn.eglGetCurrentSurfaceFn = Debug_eglGetCurrentSurface;
808 if (!debug_fn.eglGetDisplayFn) {
809 debug_fn.eglGetDisplayFn = fn.eglGetDisplayFn;
810 fn.eglGetDisplayFn = Debug_eglGetDisplay;
812 if (!debug_fn.eglGetErrorFn) {
813 debug_fn.eglGetErrorFn = fn.eglGetErrorFn;
814 fn.eglGetErrorFn = Debug_eglGetError;
816 if (!debug_fn.eglGetPlatformDisplayEXTFn) {
817 debug_fn.eglGetPlatformDisplayEXTFn = fn.eglGetPlatformDisplayEXTFn;
818 fn.eglGetPlatformDisplayEXTFn = Debug_eglGetPlatformDisplayEXT;
820 if (!debug_fn.eglGetProcAddressFn) {
821 debug_fn.eglGetProcAddressFn = fn.eglGetProcAddressFn;
822 fn.eglGetProcAddressFn = Debug_eglGetProcAddress;
824 if (!debug_fn.eglGetSyncAttribKHRFn) {
825 debug_fn.eglGetSyncAttribKHRFn = fn.eglGetSyncAttribKHRFn;
826 fn.eglGetSyncAttribKHRFn = Debug_eglGetSyncAttribKHR;
828 if (!debug_fn.eglGetSyncValuesCHROMIUMFn) {
829 debug_fn.eglGetSyncValuesCHROMIUMFn = fn.eglGetSyncValuesCHROMIUMFn;
830 fn.eglGetSyncValuesCHROMIUMFn = Debug_eglGetSyncValuesCHROMIUM;
832 if (!debug_fn.eglInitializeFn) {
833 debug_fn.eglInitializeFn = fn.eglInitializeFn;
834 fn.eglInitializeFn = Debug_eglInitialize;
836 if (!debug_fn.eglMakeCurrentFn) {
837 debug_fn.eglMakeCurrentFn = fn.eglMakeCurrentFn;
838 fn.eglMakeCurrentFn = Debug_eglMakeCurrent;
840 if (!debug_fn.eglPostSubBufferNVFn) {
841 debug_fn.eglPostSubBufferNVFn = fn.eglPostSubBufferNVFn;
842 fn.eglPostSubBufferNVFn = Debug_eglPostSubBufferNV;
844 if (!debug_fn.eglQueryAPIFn) {
845 debug_fn.eglQueryAPIFn = fn.eglQueryAPIFn;
846 fn.eglQueryAPIFn = Debug_eglQueryAPI;
848 if (!debug_fn.eglQueryContextFn) {
849 debug_fn.eglQueryContextFn = fn.eglQueryContextFn;
850 fn.eglQueryContextFn = Debug_eglQueryContext;
852 if (!debug_fn.eglQueryStringFn) {
853 debug_fn.eglQueryStringFn = fn.eglQueryStringFn;
854 fn.eglQueryStringFn = Debug_eglQueryString;
856 if (!debug_fn.eglQuerySurfaceFn) {
857 debug_fn.eglQuerySurfaceFn = fn.eglQuerySurfaceFn;
858 fn.eglQuerySurfaceFn = Debug_eglQuerySurface;
860 if (!debug_fn.eglQuerySurfacePointerANGLEFn) {
861 debug_fn.eglQuerySurfacePointerANGLEFn = fn.eglQuerySurfacePointerANGLEFn;
862 fn.eglQuerySurfacePointerANGLEFn = Debug_eglQuerySurfacePointerANGLE;
864 if (!debug_fn.eglReleaseTexImageFn) {
865 debug_fn.eglReleaseTexImageFn = fn.eglReleaseTexImageFn;
866 fn.eglReleaseTexImageFn = Debug_eglReleaseTexImage;
868 if (!debug_fn.eglReleaseThreadFn) {
869 debug_fn.eglReleaseThreadFn = fn.eglReleaseThreadFn;
870 fn.eglReleaseThreadFn = Debug_eglReleaseThread;
872 if (!debug_fn.eglSurfaceAttribFn) {
873 debug_fn.eglSurfaceAttribFn = fn.eglSurfaceAttribFn;
874 fn.eglSurfaceAttribFn = Debug_eglSurfaceAttrib;
876 if (!debug_fn.eglSwapBuffersFn) {
877 debug_fn.eglSwapBuffersFn = fn.eglSwapBuffersFn;
878 fn.eglSwapBuffersFn = Debug_eglSwapBuffers;
880 if (!debug_fn.eglSwapIntervalFn) {
881 debug_fn.eglSwapIntervalFn = fn.eglSwapIntervalFn;
882 fn.eglSwapIntervalFn = Debug_eglSwapInterval;
884 if (!debug_fn.eglTerminateFn) {
885 debug_fn.eglTerminateFn = fn.eglTerminateFn;
886 fn.eglTerminateFn = Debug_eglTerminate;
888 if (!debug_fn.eglWaitClientFn) {
889 debug_fn.eglWaitClientFn = fn.eglWaitClientFn;
890 fn.eglWaitClientFn = Debug_eglWaitClient;
892 if (!debug_fn.eglWaitGLFn) {
893 debug_fn.eglWaitGLFn = fn.eglWaitGLFn;
894 fn.eglWaitGLFn = Debug_eglWaitGL;
896 if (!debug_fn.eglWaitNativeFn) {
897 debug_fn.eglWaitNativeFn = fn.eglWaitNativeFn;
898 fn.eglWaitNativeFn = Debug_eglWaitNative;
900 if (!debug_fn.eglWaitSyncKHRFn) {
901 debug_fn.eglWaitSyncKHRFn = fn.eglWaitSyncKHRFn;
902 fn.eglWaitSyncKHRFn = Debug_eglWaitSyncKHR;
904 g_debugBindingsInitialized = true;
907 void DriverEGL::ClearBindings() {
908 memset(this, 0, sizeof(*this));
911 EGLBoolean EGLApiBase::eglBindAPIFn(EGLenum api) {
912 return driver_->fn.eglBindAPIFn(api);
915 EGLBoolean EGLApiBase::eglBindTexImageFn(EGLDisplay dpy,
916 EGLSurface surface,
917 EGLint buffer) {
918 return driver_->fn.eglBindTexImageFn(dpy, surface, buffer);
921 EGLBoolean EGLApiBase::eglChooseConfigFn(EGLDisplay dpy,
922 const EGLint* attrib_list,
923 EGLConfig* configs,
924 EGLint config_size,
925 EGLint* num_config) {
926 return driver_->fn.eglChooseConfigFn(dpy, attrib_list, configs, config_size,
927 num_config);
930 EGLint EGLApiBase::eglClientWaitSyncKHRFn(EGLDisplay dpy,
931 EGLSyncKHR sync,
932 EGLint flags,
933 EGLTimeKHR timeout) {
934 return driver_->fn.eglClientWaitSyncKHRFn(dpy, sync, flags, timeout);
937 EGLBoolean EGLApiBase::eglCopyBuffersFn(EGLDisplay dpy,
938 EGLSurface surface,
939 EGLNativePixmapType target) {
940 return driver_->fn.eglCopyBuffersFn(dpy, surface, target);
943 EGLContext EGLApiBase::eglCreateContextFn(EGLDisplay dpy,
944 EGLConfig config,
945 EGLContext share_context,
946 const EGLint* attrib_list) {
947 return driver_->fn.eglCreateContextFn(dpy, config, share_context,
948 attrib_list);
951 EGLImageKHR EGLApiBase::eglCreateImageKHRFn(EGLDisplay dpy,
952 EGLContext ctx,
953 EGLenum target,
954 EGLClientBuffer buffer,
955 const EGLint* attrib_list) {
956 return driver_->fn.eglCreateImageKHRFn(dpy, ctx, target, buffer, attrib_list);
959 EGLSurface EGLApiBase::eglCreatePbufferFromClientBufferFn(
960 EGLDisplay dpy,
961 EGLenum buftype,
962 void* buffer,
963 EGLConfig config,
964 const EGLint* attrib_list) {
965 return driver_->fn.eglCreatePbufferFromClientBufferFn(dpy, buftype, buffer,
966 config, attrib_list);
969 EGLSurface EGLApiBase::eglCreatePbufferSurfaceFn(EGLDisplay dpy,
970 EGLConfig config,
971 const EGLint* attrib_list) {
972 return driver_->fn.eglCreatePbufferSurfaceFn(dpy, config, attrib_list);
975 EGLSurface EGLApiBase::eglCreatePixmapSurfaceFn(EGLDisplay dpy,
976 EGLConfig config,
977 EGLNativePixmapType pixmap,
978 const EGLint* attrib_list) {
979 return driver_->fn.eglCreatePixmapSurfaceFn(dpy, config, pixmap, attrib_list);
982 EGLSyncKHR EGLApiBase::eglCreateSyncKHRFn(EGLDisplay dpy,
983 EGLenum type,
984 const EGLint* attrib_list) {
985 return driver_->fn.eglCreateSyncKHRFn(dpy, type, attrib_list);
988 EGLSurface EGLApiBase::eglCreateWindowSurfaceFn(EGLDisplay dpy,
989 EGLConfig config,
990 EGLNativeWindowType win,
991 const EGLint* attrib_list) {
992 return driver_->fn.eglCreateWindowSurfaceFn(dpy, config, win, attrib_list);
995 EGLBoolean EGLApiBase::eglDestroyContextFn(EGLDisplay dpy, EGLContext ctx) {
996 return driver_->fn.eglDestroyContextFn(dpy, ctx);
999 EGLBoolean EGLApiBase::eglDestroyImageKHRFn(EGLDisplay dpy, EGLImageKHR image) {
1000 return driver_->fn.eglDestroyImageKHRFn(dpy, image);
1003 EGLBoolean EGLApiBase::eglDestroySurfaceFn(EGLDisplay dpy, EGLSurface surface) {
1004 return driver_->fn.eglDestroySurfaceFn(dpy, surface);
1007 EGLBoolean EGLApiBase::eglDestroySyncKHRFn(EGLDisplay dpy, EGLSyncKHR sync) {
1008 return driver_->fn.eglDestroySyncKHRFn(dpy, sync);
1011 EGLBoolean EGLApiBase::eglGetConfigAttribFn(EGLDisplay dpy,
1012 EGLConfig config,
1013 EGLint attribute,
1014 EGLint* value) {
1015 return driver_->fn.eglGetConfigAttribFn(dpy, config, attribute, value);
1018 EGLBoolean EGLApiBase::eglGetConfigsFn(EGLDisplay dpy,
1019 EGLConfig* configs,
1020 EGLint config_size,
1021 EGLint* num_config) {
1022 return driver_->fn.eglGetConfigsFn(dpy, configs, config_size, num_config);
1025 EGLContext EGLApiBase::eglGetCurrentContextFn(void) {
1026 return driver_->fn.eglGetCurrentContextFn();
1029 EGLDisplay EGLApiBase::eglGetCurrentDisplayFn(void) {
1030 return driver_->fn.eglGetCurrentDisplayFn();
1033 EGLSurface EGLApiBase::eglGetCurrentSurfaceFn(EGLint readdraw) {
1034 return driver_->fn.eglGetCurrentSurfaceFn(readdraw);
1037 EGLDisplay EGLApiBase::eglGetDisplayFn(EGLNativeDisplayType display_id) {
1038 return driver_->fn.eglGetDisplayFn(display_id);
1041 EGLint EGLApiBase::eglGetErrorFn(void) {
1042 return driver_->fn.eglGetErrorFn();
1045 EGLDisplay EGLApiBase::eglGetPlatformDisplayEXTFn(EGLenum platform,
1046 void* native_display,
1047 const EGLint* attrib_list) {
1048 return driver_->fn.eglGetPlatformDisplayEXTFn(platform, native_display,
1049 attrib_list);
1052 __eglMustCastToProperFunctionPointerType EGLApiBase::eglGetProcAddressFn(
1053 const char* procname) {
1054 return driver_->fn.eglGetProcAddressFn(procname);
1057 EGLBoolean EGLApiBase::eglGetSyncAttribKHRFn(EGLDisplay dpy,
1058 EGLSyncKHR sync,
1059 EGLint attribute,
1060 EGLint* value) {
1061 return driver_->fn.eglGetSyncAttribKHRFn(dpy, sync, attribute, value);
1064 EGLBoolean EGLApiBase::eglGetSyncValuesCHROMIUMFn(EGLDisplay dpy,
1065 EGLSurface surface,
1066 EGLuint64CHROMIUM* ust,
1067 EGLuint64CHROMIUM* msc,
1068 EGLuint64CHROMIUM* sbc) {
1069 return driver_->fn.eglGetSyncValuesCHROMIUMFn(dpy, surface, ust, msc, sbc);
1072 EGLBoolean EGLApiBase::eglInitializeFn(EGLDisplay dpy,
1073 EGLint* major,
1074 EGLint* minor) {
1075 return driver_->fn.eglInitializeFn(dpy, major, minor);
1078 EGLBoolean EGLApiBase::eglMakeCurrentFn(EGLDisplay dpy,
1079 EGLSurface draw,
1080 EGLSurface read,
1081 EGLContext ctx) {
1082 return driver_->fn.eglMakeCurrentFn(dpy, draw, read, ctx);
1085 EGLBoolean EGLApiBase::eglPostSubBufferNVFn(EGLDisplay dpy,
1086 EGLSurface surface,
1087 EGLint x,
1088 EGLint y,
1089 EGLint width,
1090 EGLint height) {
1091 return driver_->fn.eglPostSubBufferNVFn(dpy, surface, x, y, width, height);
1094 EGLenum EGLApiBase::eglQueryAPIFn(void) {
1095 return driver_->fn.eglQueryAPIFn();
1098 EGLBoolean EGLApiBase::eglQueryContextFn(EGLDisplay dpy,
1099 EGLContext ctx,
1100 EGLint attribute,
1101 EGLint* value) {
1102 return driver_->fn.eglQueryContextFn(dpy, ctx, attribute, value);
1105 const char* EGLApiBase::eglQueryStringFn(EGLDisplay dpy, EGLint name) {
1106 return driver_->fn.eglQueryStringFn(dpy, name);
1109 EGLBoolean EGLApiBase::eglQuerySurfaceFn(EGLDisplay dpy,
1110 EGLSurface surface,
1111 EGLint attribute,
1112 EGLint* value) {
1113 return driver_->fn.eglQuerySurfaceFn(dpy, surface, attribute, value);
1116 EGLBoolean EGLApiBase::eglQuerySurfacePointerANGLEFn(EGLDisplay dpy,
1117 EGLSurface surface,
1118 EGLint attribute,
1119 void** value) {
1120 return driver_->fn.eglQuerySurfacePointerANGLEFn(dpy, surface, attribute,
1121 value);
1124 EGLBoolean EGLApiBase::eglReleaseTexImageFn(EGLDisplay dpy,
1125 EGLSurface surface,
1126 EGLint buffer) {
1127 return driver_->fn.eglReleaseTexImageFn(dpy, surface, buffer);
1130 EGLBoolean EGLApiBase::eglReleaseThreadFn(void) {
1131 return driver_->fn.eglReleaseThreadFn();
1134 EGLBoolean EGLApiBase::eglSurfaceAttribFn(EGLDisplay dpy,
1135 EGLSurface surface,
1136 EGLint attribute,
1137 EGLint value) {
1138 return driver_->fn.eglSurfaceAttribFn(dpy, surface, attribute, value);
1141 EGLBoolean EGLApiBase::eglSwapBuffersFn(EGLDisplay dpy, EGLSurface surface) {
1142 return driver_->fn.eglSwapBuffersFn(dpy, surface);
1145 EGLBoolean EGLApiBase::eglSwapIntervalFn(EGLDisplay dpy, EGLint interval) {
1146 return driver_->fn.eglSwapIntervalFn(dpy, interval);
1149 EGLBoolean EGLApiBase::eglTerminateFn(EGLDisplay dpy) {
1150 return driver_->fn.eglTerminateFn(dpy);
1153 EGLBoolean EGLApiBase::eglWaitClientFn(void) {
1154 return driver_->fn.eglWaitClientFn();
1157 EGLBoolean EGLApiBase::eglWaitGLFn(void) {
1158 return driver_->fn.eglWaitGLFn();
1161 EGLBoolean EGLApiBase::eglWaitNativeFn(EGLint engine) {
1162 return driver_->fn.eglWaitNativeFn(engine);
1165 EGLint EGLApiBase::eglWaitSyncKHRFn(EGLDisplay dpy,
1166 EGLSyncKHR sync,
1167 EGLint flags) {
1168 return driver_->fn.eglWaitSyncKHRFn(dpy, sync, flags);
1171 EGLBoolean TraceEGLApi::eglBindAPIFn(EGLenum api) {
1172 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglBindAPI")
1173 return egl_api_->eglBindAPIFn(api);
1176 EGLBoolean TraceEGLApi::eglBindTexImageFn(EGLDisplay dpy,
1177 EGLSurface surface,
1178 EGLint buffer) {
1179 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglBindTexImage")
1180 return egl_api_->eglBindTexImageFn(dpy, surface, buffer);
1183 EGLBoolean TraceEGLApi::eglChooseConfigFn(EGLDisplay dpy,
1184 const EGLint* attrib_list,
1185 EGLConfig* configs,
1186 EGLint config_size,
1187 EGLint* num_config) {
1188 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglChooseConfig")
1189 return egl_api_->eglChooseConfigFn(dpy, attrib_list, configs, config_size,
1190 num_config);
1193 EGLint TraceEGLApi::eglClientWaitSyncKHRFn(EGLDisplay dpy,
1194 EGLSyncKHR sync,
1195 EGLint flags,
1196 EGLTimeKHR timeout) {
1197 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglClientWaitSyncKHR")
1198 return egl_api_->eglClientWaitSyncKHRFn(dpy, sync, flags, timeout);
1201 EGLBoolean TraceEGLApi::eglCopyBuffersFn(EGLDisplay dpy,
1202 EGLSurface surface,
1203 EGLNativePixmapType target) {
1204 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglCopyBuffers")
1205 return egl_api_->eglCopyBuffersFn(dpy, surface, target);
1208 EGLContext TraceEGLApi::eglCreateContextFn(EGLDisplay dpy,
1209 EGLConfig config,
1210 EGLContext share_context,
1211 const EGLint* attrib_list) {
1212 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglCreateContext")
1213 return egl_api_->eglCreateContextFn(dpy, config, share_context, attrib_list);
1216 EGLImageKHR TraceEGLApi::eglCreateImageKHRFn(EGLDisplay dpy,
1217 EGLContext ctx,
1218 EGLenum target,
1219 EGLClientBuffer buffer,
1220 const EGLint* attrib_list) {
1221 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglCreateImageKHR")
1222 return egl_api_->eglCreateImageKHRFn(dpy, ctx, target, buffer, attrib_list);
1225 EGLSurface TraceEGLApi::eglCreatePbufferFromClientBufferFn(
1226 EGLDisplay dpy,
1227 EGLenum buftype,
1228 void* buffer,
1229 EGLConfig config,
1230 const EGLint* attrib_list) {
1231 TRACE_EVENT_BINARY_EFFICIENT0("gpu",
1232 "TraceGLAPI::eglCreatePbufferFromClientBuffer")
1233 return egl_api_->eglCreatePbufferFromClientBufferFn(dpy, buftype, buffer,
1234 config, attrib_list);
1237 EGLSurface TraceEGLApi::eglCreatePbufferSurfaceFn(EGLDisplay dpy,
1238 EGLConfig config,
1239 const EGLint* attrib_list) {
1240 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglCreatePbufferSurface")
1241 return egl_api_->eglCreatePbufferSurfaceFn(dpy, config, attrib_list);
1244 EGLSurface TraceEGLApi::eglCreatePixmapSurfaceFn(EGLDisplay dpy,
1245 EGLConfig config,
1246 EGLNativePixmapType pixmap,
1247 const EGLint* attrib_list) {
1248 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglCreatePixmapSurface")
1249 return egl_api_->eglCreatePixmapSurfaceFn(dpy, config, pixmap, attrib_list);
1252 EGLSyncKHR TraceEGLApi::eglCreateSyncKHRFn(EGLDisplay dpy,
1253 EGLenum type,
1254 const EGLint* attrib_list) {
1255 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglCreateSyncKHR")
1256 return egl_api_->eglCreateSyncKHRFn(dpy, type, attrib_list);
1259 EGLSurface TraceEGLApi::eglCreateWindowSurfaceFn(EGLDisplay dpy,
1260 EGLConfig config,
1261 EGLNativeWindowType win,
1262 const EGLint* attrib_list) {
1263 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglCreateWindowSurface")
1264 return egl_api_->eglCreateWindowSurfaceFn(dpy, config, win, attrib_list);
1267 EGLBoolean TraceEGLApi::eglDestroyContextFn(EGLDisplay dpy, EGLContext ctx) {
1268 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglDestroyContext")
1269 return egl_api_->eglDestroyContextFn(dpy, ctx);
1272 EGLBoolean TraceEGLApi::eglDestroyImageKHRFn(EGLDisplay dpy,
1273 EGLImageKHR image) {
1274 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglDestroyImageKHR")
1275 return egl_api_->eglDestroyImageKHRFn(dpy, image);
1278 EGLBoolean TraceEGLApi::eglDestroySurfaceFn(EGLDisplay dpy,
1279 EGLSurface surface) {
1280 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglDestroySurface")
1281 return egl_api_->eglDestroySurfaceFn(dpy, surface);
1284 EGLBoolean TraceEGLApi::eglDestroySyncKHRFn(EGLDisplay dpy, EGLSyncKHR sync) {
1285 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglDestroySyncKHR")
1286 return egl_api_->eglDestroySyncKHRFn(dpy, sync);
1289 EGLBoolean TraceEGLApi::eglGetConfigAttribFn(EGLDisplay dpy,
1290 EGLConfig config,
1291 EGLint attribute,
1292 EGLint* value) {
1293 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglGetConfigAttrib")
1294 return egl_api_->eglGetConfigAttribFn(dpy, config, attribute, value);
1297 EGLBoolean TraceEGLApi::eglGetConfigsFn(EGLDisplay dpy,
1298 EGLConfig* configs,
1299 EGLint config_size,
1300 EGLint* num_config) {
1301 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglGetConfigs")
1302 return egl_api_->eglGetConfigsFn(dpy, configs, config_size, num_config);
1305 EGLContext TraceEGLApi::eglGetCurrentContextFn(void) {
1306 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglGetCurrentContext")
1307 return egl_api_->eglGetCurrentContextFn();
1310 EGLDisplay TraceEGLApi::eglGetCurrentDisplayFn(void) {
1311 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglGetCurrentDisplay")
1312 return egl_api_->eglGetCurrentDisplayFn();
1315 EGLSurface TraceEGLApi::eglGetCurrentSurfaceFn(EGLint readdraw) {
1316 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglGetCurrentSurface")
1317 return egl_api_->eglGetCurrentSurfaceFn(readdraw);
1320 EGLDisplay TraceEGLApi::eglGetDisplayFn(EGLNativeDisplayType display_id) {
1321 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglGetDisplay")
1322 return egl_api_->eglGetDisplayFn(display_id);
1325 EGLint TraceEGLApi::eglGetErrorFn(void) {
1326 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglGetError")
1327 return egl_api_->eglGetErrorFn();
1330 EGLDisplay TraceEGLApi::eglGetPlatformDisplayEXTFn(EGLenum platform,
1331 void* native_display,
1332 const EGLint* attrib_list) {
1333 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglGetPlatformDisplayEXT")
1334 return egl_api_->eglGetPlatformDisplayEXTFn(platform, native_display,
1335 attrib_list);
1338 __eglMustCastToProperFunctionPointerType TraceEGLApi::eglGetProcAddressFn(
1339 const char* procname) {
1340 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglGetProcAddress")
1341 return egl_api_->eglGetProcAddressFn(procname);
1344 EGLBoolean TraceEGLApi::eglGetSyncAttribKHRFn(EGLDisplay dpy,
1345 EGLSyncKHR sync,
1346 EGLint attribute,
1347 EGLint* value) {
1348 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglGetSyncAttribKHR")
1349 return egl_api_->eglGetSyncAttribKHRFn(dpy, sync, attribute, value);
1352 EGLBoolean TraceEGLApi::eglGetSyncValuesCHROMIUMFn(EGLDisplay dpy,
1353 EGLSurface surface,
1354 EGLuint64CHROMIUM* ust,
1355 EGLuint64CHROMIUM* msc,
1356 EGLuint64CHROMIUM* sbc) {
1357 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglGetSyncValuesCHROMIUM")
1358 return egl_api_->eglGetSyncValuesCHROMIUMFn(dpy, surface, ust, msc, sbc);
1361 EGLBoolean TraceEGLApi::eglInitializeFn(EGLDisplay dpy,
1362 EGLint* major,
1363 EGLint* minor) {
1364 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglInitialize")
1365 return egl_api_->eglInitializeFn(dpy, major, minor);
1368 EGLBoolean TraceEGLApi::eglMakeCurrentFn(EGLDisplay dpy,
1369 EGLSurface draw,
1370 EGLSurface read,
1371 EGLContext ctx) {
1372 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglMakeCurrent")
1373 return egl_api_->eglMakeCurrentFn(dpy, draw, read, ctx);
1376 EGLBoolean TraceEGLApi::eglPostSubBufferNVFn(EGLDisplay dpy,
1377 EGLSurface surface,
1378 EGLint x,
1379 EGLint y,
1380 EGLint width,
1381 EGLint height) {
1382 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglPostSubBufferNV")
1383 return egl_api_->eglPostSubBufferNVFn(dpy, surface, x, y, width, height);
1386 EGLenum TraceEGLApi::eglQueryAPIFn(void) {
1387 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglQueryAPI")
1388 return egl_api_->eglQueryAPIFn();
1391 EGLBoolean TraceEGLApi::eglQueryContextFn(EGLDisplay dpy,
1392 EGLContext ctx,
1393 EGLint attribute,
1394 EGLint* value) {
1395 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglQueryContext")
1396 return egl_api_->eglQueryContextFn(dpy, ctx, attribute, value);
1399 const char* TraceEGLApi::eglQueryStringFn(EGLDisplay dpy, EGLint name) {
1400 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglQueryString")
1401 return egl_api_->eglQueryStringFn(dpy, name);
1404 EGLBoolean TraceEGLApi::eglQuerySurfaceFn(EGLDisplay dpy,
1405 EGLSurface surface,
1406 EGLint attribute,
1407 EGLint* value) {
1408 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglQuerySurface")
1409 return egl_api_->eglQuerySurfaceFn(dpy, surface, attribute, value);
1412 EGLBoolean TraceEGLApi::eglQuerySurfacePointerANGLEFn(EGLDisplay dpy,
1413 EGLSurface surface,
1414 EGLint attribute,
1415 void** value) {
1416 TRACE_EVENT_BINARY_EFFICIENT0("gpu",
1417 "TraceGLAPI::eglQuerySurfacePointerANGLE")
1418 return egl_api_->eglQuerySurfacePointerANGLEFn(dpy, surface, attribute,
1419 value);
1422 EGLBoolean TraceEGLApi::eglReleaseTexImageFn(EGLDisplay dpy,
1423 EGLSurface surface,
1424 EGLint buffer) {
1425 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglReleaseTexImage")
1426 return egl_api_->eglReleaseTexImageFn(dpy, surface, buffer);
1429 EGLBoolean TraceEGLApi::eglReleaseThreadFn(void) {
1430 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglReleaseThread")
1431 return egl_api_->eglReleaseThreadFn();
1434 EGLBoolean TraceEGLApi::eglSurfaceAttribFn(EGLDisplay dpy,
1435 EGLSurface surface,
1436 EGLint attribute,
1437 EGLint value) {
1438 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglSurfaceAttrib")
1439 return egl_api_->eglSurfaceAttribFn(dpy, surface, attribute, value);
1442 EGLBoolean TraceEGLApi::eglSwapBuffersFn(EGLDisplay dpy, EGLSurface surface) {
1443 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglSwapBuffers")
1444 return egl_api_->eglSwapBuffersFn(dpy, surface);
1447 EGLBoolean TraceEGLApi::eglSwapIntervalFn(EGLDisplay dpy, EGLint interval) {
1448 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglSwapInterval")
1449 return egl_api_->eglSwapIntervalFn(dpy, interval);
1452 EGLBoolean TraceEGLApi::eglTerminateFn(EGLDisplay dpy) {
1453 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglTerminate")
1454 return egl_api_->eglTerminateFn(dpy);
1457 EGLBoolean TraceEGLApi::eglWaitClientFn(void) {
1458 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglWaitClient")
1459 return egl_api_->eglWaitClientFn();
1462 EGLBoolean TraceEGLApi::eglWaitGLFn(void) {
1463 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglWaitGL")
1464 return egl_api_->eglWaitGLFn();
1467 EGLBoolean TraceEGLApi::eglWaitNativeFn(EGLint engine) {
1468 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglWaitNative")
1469 return egl_api_->eglWaitNativeFn(engine);
1472 EGLint TraceEGLApi::eglWaitSyncKHRFn(EGLDisplay dpy,
1473 EGLSyncKHR sync,
1474 EGLint flags) {
1475 TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglWaitSyncKHR")
1476 return egl_api_->eglWaitSyncKHRFn(dpy, sync, flags);
1479 } // namespace gfx