Chromium Code Reviews| 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 ea756bc0c863da7f36ed74aa81afc302968de394..892973e893fe92cf17736b98cae0187f83b7e758 100644 |
| --- a/ui/gl/gl_bindings_autogen_egl.cc |
| +++ b/ui/gl/gl_bindings_autogen_egl.cc |
| @@ -104,13 +104,18 @@ void DriverEGL::InitializeStaticBindings() { |
| fn.eglWaitNativeFn = |
| reinterpret_cast<eglWaitNativeProc>(GetGLProcAddress("eglWaitNative")); |
| fn.eglWaitSyncKHRFn = 0; |
| +} |
| + |
| +void DriverEGL::InitializeExtensionBindings( |
| + const std::vector<std::string>& disabled_extensions) { |
|
David Yen
2015/06/23 16:38:49
Should this function simply take a filtered versio
|
| std::string client_extensions(GetClientExtensions()); |
| client_extensions += " "; |
| ALLOW_UNUSED_LOCAL(client_extensions); |
| ext.b_EGL_EXT_platform_base = |
| + std::find(disabled_extensions.begin(), disabled_extensions.end(), |
| + "EGL_EXT_platform_base") == disabled_extensions.end() && |
| client_extensions.find("EGL_EXT_platform_base ") != std::string::npos; |
| - |
| debug_fn.eglGetPlatformDisplayEXTFn = 0; |
| if (ext.b_EGL_EXT_platform_base) { |
| fn.eglGetPlatformDisplayEXTFn = |
| @@ -123,29 +128,54 @@ void DriverEGL::InitializeStaticBindings() { |
| ALLOW_UNUSED_LOCAL(extensions); |
| ext.b_EGL_ANGLE_d3d_share_handle_client_buffer = |
| + std::find(disabled_extensions.begin(), disabled_extensions.end(), |
| + "EGL_ANGLE_d3d_share_handle_client_buffer") == |
| + disabled_extensions.end() && |
| extensions.find("EGL_ANGLE_d3d_share_handle_client_buffer ") != |
| - std::string::npos; |
| + std::string::npos; |
| ext.b_EGL_ANGLE_query_surface_pointer = |
| + std::find(disabled_extensions.begin(), disabled_extensions.end(), |
| + "EGL_ANGLE_query_surface_pointer") == |
| + disabled_extensions.end() && |
| extensions.find("EGL_ANGLE_query_surface_pointer ") != std::string::npos; |
| ext.b_EGL_ANGLE_surface_d3d_texture_2d_share_handle = |
| + std::find(disabled_extensions.begin(), disabled_extensions.end(), |
| + "EGL_ANGLE_surface_d3d_texture_2d_share_handle") == |
| + disabled_extensions.end() && |
| extensions.find("EGL_ANGLE_surface_d3d_texture_2d_share_handle ") != |
| - std::string::npos; |
| + std::string::npos; |
| ext.b_EGL_CHROMIUM_sync_control = |
| + std::find(disabled_extensions.begin(), disabled_extensions.end(), |
| + "EGL_CHROMIUM_sync_control") == disabled_extensions.end() && |
| extensions.find("EGL_CHROMIUM_sync_control ") != std::string::npos; |
| ext.b_EGL_KHR_fence_sync = |
| + std::find(disabled_extensions.begin(), disabled_extensions.end(), |
| + "EGL_KHR_fence_sync") == disabled_extensions.end() && |
| extensions.find("EGL_KHR_fence_sync ") != std::string::npos; |
| ext.b_EGL_KHR_gl_texture_2D_image = |
| + std::find(disabled_extensions.begin(), disabled_extensions.end(), |
| + "EGL_KHR_gl_texture_2D_image") == disabled_extensions.end() && |
| 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 = |
| + std::find(disabled_extensions.begin(), disabled_extensions.end(), |
| + "EGL_KHR_image") == disabled_extensions.end() && |
| + extensions.find("EGL_KHR_image ") != std::string::npos; |
| ext.b_EGL_KHR_image_base = |
| + std::find(disabled_extensions.begin(), disabled_extensions.end(), |
| + "EGL_KHR_image_base") == disabled_extensions.end() && |
| extensions.find("EGL_KHR_image_base ") != std::string::npos; |
| ext.b_EGL_KHR_reusable_sync = |
| + std::find(disabled_extensions.begin(), disabled_extensions.end(), |
| + "EGL_KHR_reusable_sync") == disabled_extensions.end() && |
| extensions.find("EGL_KHR_reusable_sync ") != std::string::npos; |
| ext.b_EGL_KHR_wait_sync = |
| + std::find(disabled_extensions.begin(), disabled_extensions.end(), |
| + "EGL_KHR_wait_sync") == disabled_extensions.end() && |
| extensions.find("EGL_KHR_wait_sync ") != std::string::npos; |
| ext.b_EGL_NV_post_sub_buffer = |
| + std::find(disabled_extensions.begin(), disabled_extensions.end(), |
| + "EGL_NV_post_sub_buffer") == disabled_extensions.end() && |
| extensions.find("EGL_NV_post_sub_buffer ") != std::string::npos; |
| - |
| debug_fn.eglClientWaitSyncKHRFn = 0; |
| if (ext.b_EGL_KHR_fence_sync || ext.b_EGL_KHR_reusable_sync) { |
| fn.eglClientWaitSyncKHRFn = reinterpret_cast<eglClientWaitSyncKHRProc>( |