Index: ui/gl/gl_bindings_autogen_egl.cc |
diff --git a/ui/gl/gl_bindings_autogen_egl.cc b/ui/gl/gl_bindings_autogen_egl.cc |
index 051e1b3abec7709ff7f5019d85932d1eeee3d38a..9f95a262e918db9d96192aa3b73310e09da94500 100644 |
--- a/ui/gl/gl_bindings_autogen_egl.cc |
+++ b/ui/gl/gl_bindings_autogen_egl.cc |
@@ -23,6 +23,77 @@ namespace gfx { |
static bool g_debugBindingsInitialized; |
DriverEGL g_driver_egl; |
+EGLint eglClientWaitSyncKHRNotBound(EGLDisplay dpy, |
+ EGLSyncKHR sync, |
+ EGLint flags, |
+ EGLTimeKHR timeout) { |
+ NOTREACHED(); |
+ return 0; |
+} |
+EGLImageKHR eglCreateImageKHRNotBound(EGLDisplay dpy, |
+ EGLContext ctx, |
+ EGLenum target, |
+ EGLClientBuffer buffer, |
+ const EGLint* attrib_list) { |
+ NOTREACHED(); |
+ return 0; |
+} |
+EGLSyncKHR eglCreateSyncKHRNotBound(EGLDisplay dpy, |
+ EGLenum type, |
+ const EGLint* attrib_list) { |
+ NOTREACHED(); |
+ return 0; |
+} |
+EGLBoolean eglDestroyImageKHRNotBound(EGLDisplay dpy, EGLImageKHR image) { |
+ NOTREACHED(); |
+ return 0; |
+} |
+EGLBoolean eglDestroySyncKHRNotBound(EGLDisplay dpy, EGLSyncKHR sync) { |
+ NOTREACHED(); |
+ return 0; |
+} |
+EGLDisplay eglGetPlatformDisplayEXTNotBound(EGLenum platform, |
+ void* native_display, |
+ const EGLint* attrib_list) { |
+ NOTREACHED(); |
+ return 0; |
+} |
+EGLBoolean eglGetSyncAttribKHRNotBound(EGLDisplay dpy, |
+ EGLSyncKHR sync, |
+ EGLint attribute, |
+ EGLint* value) { |
+ NOTREACHED(); |
+ return 0; |
+} |
+EGLBoolean eglGetSyncValuesCHROMIUMNotBound(EGLDisplay dpy, |
+ EGLSurface surface, |
+ EGLuint64CHROMIUM* ust, |
+ EGLuint64CHROMIUM* msc, |
+ EGLuint64CHROMIUM* sbc) { |
+ NOTREACHED(); |
+ return 0; |
+} |
+EGLBoolean eglPostSubBufferNVNotBound(EGLDisplay dpy, |
+ EGLSurface surface, |
+ EGLint x, |
+ EGLint y, |
+ EGLint width, |
+ EGLint height) { |
+ NOTREACHED(); |
+ return 0; |
+} |
+EGLBoolean eglQuerySurfacePointerANGLENotBound(EGLDisplay dpy, |
+ EGLSurface surface, |
+ EGLint attribute, |
+ void** value) { |
+ NOTREACHED(); |
+ return 0; |
+} |
+EGLint eglWaitSyncKHRNotBound(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags) { |
+ NOTREACHED(); |
+ return 0; |
+} |
+ |
void DriverEGL::InitializeStaticBindings() { |
fn.eglBindAPIFn = |
reinterpret_cast<eglBindAPIProc>(GetGLProcAddress("eglBindAPI")); |
@@ -30,14 +101,14 @@ void DriverEGL::InitializeStaticBindings() { |
GetGLProcAddress("eglBindTexImage")); |
fn.eglChooseConfigFn = reinterpret_cast<eglChooseConfigProc>( |
GetGLProcAddress("eglChooseConfig")); |
- fn.eglClientWaitSyncKHRFn = reinterpret_cast<eglClientWaitSyncKHRProc>( |
- GetGLProcAddress("eglClientWaitSyncKHR")); |
+ fn.eglClientWaitSyncKHRFn = |
+ reinterpret_cast<eglClientWaitSyncKHRProc>(eglClientWaitSyncKHRNotBound); |
fn.eglCopyBuffersFn = |
reinterpret_cast<eglCopyBuffersProc>(GetGLProcAddress("eglCopyBuffers")); |
fn.eglCreateContextFn = reinterpret_cast<eglCreateContextProc>( |
GetGLProcAddress("eglCreateContext")); |
- fn.eglCreateImageKHRFn = reinterpret_cast<eglCreateImageKHRProc>( |
- GetGLProcAddress("eglCreateImageKHR")); |
+ fn.eglCreateImageKHRFn = |
+ reinterpret_cast<eglCreateImageKHRProc>(eglCreateImageKHRNotBound); |
fn.eglCreatePbufferFromClientBufferFn = |
reinterpret_cast<eglCreatePbufferFromClientBufferProc>( |
GetGLProcAddress("eglCreatePbufferFromClientBuffer")); |
@@ -45,18 +116,18 @@ void DriverEGL::InitializeStaticBindings() { |
GetGLProcAddress("eglCreatePbufferSurface")); |
fn.eglCreatePixmapSurfaceFn = reinterpret_cast<eglCreatePixmapSurfaceProc>( |
GetGLProcAddress("eglCreatePixmapSurface")); |
- fn.eglCreateSyncKHRFn = reinterpret_cast<eglCreateSyncKHRProc>( |
- GetGLProcAddress("eglCreateSyncKHR")); |
+ fn.eglCreateSyncKHRFn = |
+ reinterpret_cast<eglCreateSyncKHRProc>(eglCreateSyncKHRNotBound); |
fn.eglCreateWindowSurfaceFn = reinterpret_cast<eglCreateWindowSurfaceProc>( |
GetGLProcAddress("eglCreateWindowSurface")); |
fn.eglDestroyContextFn = reinterpret_cast<eglDestroyContextProc>( |
GetGLProcAddress("eglDestroyContext")); |
- fn.eglDestroyImageKHRFn = reinterpret_cast<eglDestroyImageKHRProc>( |
- GetGLProcAddress("eglDestroyImageKHR")); |
+ fn.eglDestroyImageKHRFn = |
+ reinterpret_cast<eglDestroyImageKHRProc>(eglDestroyImageKHRNotBound); |
fn.eglDestroySurfaceFn = reinterpret_cast<eglDestroySurfaceProc>( |
GetGLProcAddress("eglDestroySurface")); |
- fn.eglDestroySyncKHRFn = reinterpret_cast<eglDestroySyncKHRProc>( |
- GetGLProcAddress("eglDestroySyncKHR")); |
+ fn.eglDestroySyncKHRFn = |
+ reinterpret_cast<eglDestroySyncKHRProc>(eglDestroySyncKHRNotBound); |
fn.eglGetConfigAttribFn = reinterpret_cast<eglGetConfigAttribProc>( |
GetGLProcAddress("eglGetConfigAttrib")); |
fn.eglGetConfigsFn = |
@@ -73,20 +144,20 @@ void DriverEGL::InitializeStaticBindings() { |
reinterpret_cast<eglGetErrorProc>(GetGLProcAddress("eglGetError")); |
fn.eglGetPlatformDisplayEXTFn = |
reinterpret_cast<eglGetPlatformDisplayEXTProc>( |
- GetGLProcAddress("eglGetPlatformDisplayEXT")); |
+ eglGetPlatformDisplayEXTNotBound); |
fn.eglGetProcAddressFn = reinterpret_cast<eglGetProcAddressProc>( |
GetGLProcAddress("eglGetProcAddress")); |
- fn.eglGetSyncAttribKHRFn = reinterpret_cast<eglGetSyncAttribKHRProc>( |
- GetGLProcAddress("eglGetSyncAttribKHR")); |
+ fn.eglGetSyncAttribKHRFn = |
+ reinterpret_cast<eglGetSyncAttribKHRProc>(eglGetSyncAttribKHRNotBound); |
fn.eglGetSyncValuesCHROMIUMFn = |
reinterpret_cast<eglGetSyncValuesCHROMIUMProc>( |
- GetGLProcAddress("eglGetSyncValuesCHROMIUM")); |
+ eglGetSyncValuesCHROMIUMNotBound); |
fn.eglInitializeFn = |
reinterpret_cast<eglInitializeProc>(GetGLProcAddress("eglInitialize")); |
fn.eglMakeCurrentFn = |
reinterpret_cast<eglMakeCurrentProc>(GetGLProcAddress("eglMakeCurrent")); |
- fn.eglPostSubBufferNVFn = reinterpret_cast<eglPostSubBufferNVProc>( |
- GetGLProcAddress("eglPostSubBufferNV")); |
+ fn.eglPostSubBufferNVFn = |
+ reinterpret_cast<eglPostSubBufferNVProc>(eglPostSubBufferNVNotBound); |
fn.eglQueryAPIFn = |
reinterpret_cast<eglQueryAPIProc>(GetGLProcAddress("eglQueryAPI")); |
fn.eglQueryContextFn = reinterpret_cast<eglQueryContextProc>( |
@@ -97,7 +168,7 @@ void DriverEGL::InitializeStaticBindings() { |
GetGLProcAddress("eglQuerySurface")); |
fn.eglQuerySurfacePointerANGLEFn = |
reinterpret_cast<eglQuerySurfacePointerANGLEProc>( |
- GetGLProcAddress("eglQuerySurfacePointerANGLE")); |
+ eglQuerySurfacePointerANGLENotBound); |
fn.eglReleaseTexImageFn = reinterpret_cast<eglReleaseTexImageProc>( |
GetGLProcAddress("eglReleaseTexImage")); |
fn.eglReleaseThreadFn = reinterpret_cast<eglReleaseThreadProc>( |
@@ -117,14 +188,9 @@ void DriverEGL::InitializeStaticBindings() { |
fn.eglWaitNativeFn = |
reinterpret_cast<eglWaitNativeProc>(GetGLProcAddress("eglWaitNative")); |
fn.eglWaitSyncKHRFn = |
- reinterpret_cast<eglWaitSyncKHRProc>(GetGLProcAddress("eglWaitSyncKHR")); |
-} |
- |
-void DriverEGL::InitializeDynamicBindings(GLContext* context) { |
- DCHECK(context && context->IsCurrent(NULL)); |
- const GLVersionInfo* ver = context->GetVersionInfo(); |
- ALLOW_UNUSED_LOCAL(ver); |
- std::string extensions = context->GetExtensions() + " "; |
+ reinterpret_cast<eglWaitSyncKHRProc>(eglWaitSyncKHRNotBound); |
+ std::string extensions(GetPlatformExtensions()); |
+ extensions += " "; |
ALLOW_UNUSED_LOCAL(extensions); |
ext.b_EGL_ANGLE_d3d_share_handle_client_buffer = |
@@ -143,13 +209,144 @@ void DriverEGL::InitializeDynamicBindings(GLContext* context) { |
extensions.find("EGL_KHR_fence_sync ") != std::string::npos; |
ext.b_EGL_KHR_gl_texture_2D_image = |
extensions.find("EGL_KHR_gl_texture_2D_image ") != std::string::npos; |
+ ext.b_EGL_KHR_image = extensions.find("EGL_KHR_image ") != std::string::npos; |
ext.b_EGL_KHR_image_base = |
extensions.find("EGL_KHR_image_base ") != std::string::npos; |
+ ext.b_EGL_KHR_reusable_sync = |
+ extensions.find("EGL_KHR_reusable_sync ") != std::string::npos; |
ext.b_EGL_KHR_wait_sync = |
extensions.find("EGL_KHR_wait_sync ") != std::string::npos; |
ext.b_EGL_NV_post_sub_buffer = |
extensions.find("EGL_NV_post_sub_buffer ") != std::string::npos; |
+ fn.eglClientWaitSyncKHRFn = 0; |
+ debug_fn.eglClientWaitSyncKHRFn = 0; |
+ if ((ext.b_EGL_KHR_fence_sync || ext.b_EGL_KHR_reusable_sync)) { |
+ fn.eglClientWaitSyncKHRFn = reinterpret_cast<eglClientWaitSyncKHRProc>( |
+ GetGLProcAddress("eglClientWaitSyncKHR")); |
+ } else { |
+ fn.eglClientWaitSyncKHRFn = reinterpret_cast<eglClientWaitSyncKHRProc>( |
+ eglClientWaitSyncKHRNotBound); |
+ } |
+ DCHECK(fn.eglClientWaitSyncKHRFn); |
+ |
+ fn.eglCreateImageKHRFn = 0; |
+ debug_fn.eglCreateImageKHRFn = 0; |
+ if ((ext.b_EGL_KHR_image || ext.b_EGL_KHR_image_base || |
+ ext.b_EGL_KHR_gl_texture_2D_image)) { |
+ fn.eglCreateImageKHRFn = reinterpret_cast<eglCreateImageKHRProc>( |
+ GetGLProcAddress("eglCreateImageKHR")); |
+ } else { |
+ fn.eglCreateImageKHRFn = |
+ reinterpret_cast<eglCreateImageKHRProc>(eglCreateImageKHRNotBound); |
+ } |
+ DCHECK(fn.eglCreateImageKHRFn); |
+ |
+ fn.eglCreateSyncKHRFn = 0; |
+ debug_fn.eglCreateSyncKHRFn = 0; |
+ if ((ext.b_EGL_KHR_fence_sync || ext.b_EGL_KHR_reusable_sync)) { |
+ fn.eglCreateSyncKHRFn = reinterpret_cast<eglCreateSyncKHRProc>( |
+ GetGLProcAddress("eglCreateSyncKHR")); |
+ } else { |
+ fn.eglCreateSyncKHRFn = |
+ reinterpret_cast<eglCreateSyncKHRProc>(eglCreateSyncKHRNotBound); |
+ } |
+ DCHECK(fn.eglCreateSyncKHRFn); |
+ |
+ fn.eglDestroyImageKHRFn = 0; |
+ debug_fn.eglDestroyImageKHRFn = 0; |
+ if ((ext.b_EGL_KHR_image || ext.b_EGL_KHR_image_base)) { |
+ fn.eglDestroyImageKHRFn = reinterpret_cast<eglDestroyImageKHRProc>( |
+ GetGLProcAddress("eglDestroyImageKHR")); |
+ } else { |
+ fn.eglDestroyImageKHRFn = |
+ reinterpret_cast<eglDestroyImageKHRProc>(eglDestroyImageKHRNotBound); |
+ } |
+ DCHECK(fn.eglDestroyImageKHRFn); |
+ |
+ fn.eglDestroySyncKHRFn = 0; |
+ debug_fn.eglDestroySyncKHRFn = 0; |
+ if ((ext.b_EGL_KHR_fence_sync || ext.b_EGL_KHR_reusable_sync)) { |
+ fn.eglDestroySyncKHRFn = reinterpret_cast<eglDestroySyncKHRProc>( |
+ GetGLProcAddress("eglDestroySyncKHR")); |
+ } else { |
+ fn.eglDestroySyncKHRFn = |
+ reinterpret_cast<eglDestroySyncKHRProc>(eglDestroySyncKHRNotBound); |
+ } |
+ DCHECK(fn.eglDestroySyncKHRFn); |
+ |
+ fn.eglGetPlatformDisplayEXTFn = 0; |
+ debug_fn.eglGetPlatformDisplayEXTFn = 0; |
+ if (ext.b_EGL_ANGLE_platform_angle) { |
+ fn.eglGetPlatformDisplayEXTFn = |
+ reinterpret_cast<eglGetPlatformDisplayEXTProc>( |
+ GetGLProcAddress("eglGetPlatformDisplayEXT")); |
+ } else { |
+ fn.eglGetPlatformDisplayEXTFn = |
+ reinterpret_cast<eglGetPlatformDisplayEXTProc>( |
+ eglGetPlatformDisplayEXTNotBound); |
+ } |
+ DCHECK(fn.eglGetPlatformDisplayEXTFn); |
+ |
+ fn.eglGetSyncAttribKHRFn = 0; |
+ debug_fn.eglGetSyncAttribKHRFn = 0; |
+ if ((ext.b_EGL_KHR_fence_sync || ext.b_EGL_KHR_reusable_sync)) { |
+ fn.eglGetSyncAttribKHRFn = reinterpret_cast<eglGetSyncAttribKHRProc>( |
+ GetGLProcAddress("eglGetSyncAttribKHR")); |
+ } else { |
+ fn.eglGetSyncAttribKHRFn = |
+ reinterpret_cast<eglGetSyncAttribKHRProc>(eglGetSyncAttribKHRNotBound); |
+ } |
+ DCHECK(fn.eglGetSyncAttribKHRFn); |
+ |
+ fn.eglGetSyncValuesCHROMIUMFn = 0; |
+ debug_fn.eglGetSyncValuesCHROMIUMFn = 0; |
+ if (ext.b_EGL_CHROMIUM_sync_control) { |
+ fn.eglGetSyncValuesCHROMIUMFn = |
+ reinterpret_cast<eglGetSyncValuesCHROMIUMProc>( |
+ GetGLProcAddress("eglGetSyncValuesCHROMIUM")); |
+ } else { |
+ fn.eglGetSyncValuesCHROMIUMFn = |
+ reinterpret_cast<eglGetSyncValuesCHROMIUMProc>( |
+ eglGetSyncValuesCHROMIUMNotBound); |
+ } |
+ DCHECK(fn.eglGetSyncValuesCHROMIUMFn); |
+ |
+ fn.eglPostSubBufferNVFn = 0; |
+ debug_fn.eglPostSubBufferNVFn = 0; |
+ if (ext.b_EGL_NV_post_sub_buffer) { |
+ fn.eglPostSubBufferNVFn = reinterpret_cast<eglPostSubBufferNVProc>( |
+ GetGLProcAddress("eglPostSubBufferNV")); |
+ } else { |
+ fn.eglPostSubBufferNVFn = |
+ reinterpret_cast<eglPostSubBufferNVProc>(eglPostSubBufferNVNotBound); |
+ } |
+ DCHECK(fn.eglPostSubBufferNVFn); |
+ |
+ fn.eglQuerySurfacePointerANGLEFn = 0; |
+ debug_fn.eglQuerySurfacePointerANGLEFn = 0; |
+ if (ext.b_EGL_ANGLE_query_surface_pointer) { |
+ fn.eglQuerySurfacePointerANGLEFn = |
+ reinterpret_cast<eglQuerySurfacePointerANGLEProc>( |
+ GetGLProcAddress("eglQuerySurfacePointerANGLE")); |
+ } else { |
+ fn.eglQuerySurfacePointerANGLEFn = |
+ reinterpret_cast<eglQuerySurfacePointerANGLEProc>( |
+ eglQuerySurfacePointerANGLENotBound); |
+ } |
+ DCHECK(fn.eglQuerySurfacePointerANGLEFn); |
+ |
+ fn.eglWaitSyncKHRFn = 0; |
+ debug_fn.eglWaitSyncKHRFn = 0; |
+ if ((ext.b_EGL_KHR_fence_sync || ext.b_EGL_KHR_wait_sync)) { |
+ fn.eglWaitSyncKHRFn = reinterpret_cast<eglWaitSyncKHRProc>( |
+ GetGLProcAddress("eglWaitSyncKHR")); |
+ } else { |
+ fn.eglWaitSyncKHRFn = |
+ reinterpret_cast<eglWaitSyncKHRProc>(eglWaitSyncKHRNotBound); |
+ } |
+ DCHECK(fn.eglWaitSyncKHRFn); |
+ |
if (g_debugBindingsInitialized) |
InitializeDebugBindings(); |
} |