Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(344)

Unified Diff: ui/gl/gl_bindings_autogen_egl.cc

Issue 1203513004: Respect the disabled extension list during binding initialization. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: only apply disabled extensions list to GL and EGL extensions Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>(

Powered by Google App Engine
This is Rietveld 408576698