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

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: split extension binding loading from static binding loading; pass enabled 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..47766bdad493392f3bb5d5e43f9007a14abf063e 100644
--- a/ui/gl/gl_bindings_autogen_egl.cc
+++ b/ui/gl/gl_bindings_autogen_egl.cc
@@ -104,47 +104,50 @@ void DriverEGL::InitializeStaticBindings() {
fn.eglWaitNativeFn =
reinterpret_cast<eglWaitNativeProc>(GetGLProcAddress("eglWaitNative"));
fn.eglWaitSyncKHRFn = 0;
- std::string client_extensions(GetClientExtensions());
- client_extensions += " ";
- ALLOW_UNUSED_LOCAL(client_extensions);
+}
+void DriverEGL::InitializeExtensionBindings(
+ const std::set<std::string>& enabled_extensions) {
ext.b_EGL_EXT_platform_base =
- client_extensions.find("EGL_EXT_platform_base ") != std::string::npos;
-
- debug_fn.eglGetPlatformDisplayEXTFn = 0;
- if (ext.b_EGL_EXT_platform_base) {
- fn.eglGetPlatformDisplayEXTFn =
- reinterpret_cast<eglGetPlatformDisplayEXTProc>(
- GetGLProcAddress("eglGetPlatformDisplayEXT"));
- DCHECK(fn.eglGetPlatformDisplayEXTFn);
- }
- std::string extensions(GetPlatformExtensions());
- extensions += " ";
- ALLOW_UNUSED_LOCAL(extensions);
-
+ enabled_extensions.find("EGL_EXT_platform_base") !=
+ enabled_extensions.end();
ext.b_EGL_ANGLE_d3d_share_handle_client_buffer =
- extensions.find("EGL_ANGLE_d3d_share_handle_client_buffer ") !=
- std::string::npos;
+ enabled_extensions.find("EGL_ANGLE_d3d_share_handle_client_buffer") !=
+ enabled_extensions.end();
ext.b_EGL_ANGLE_query_surface_pointer =
- extensions.find("EGL_ANGLE_query_surface_pointer ") != std::string::npos;
+ enabled_extensions.find("EGL_ANGLE_query_surface_pointer") !=
+ enabled_extensions.end();
ext.b_EGL_ANGLE_surface_d3d_texture_2d_share_handle =
- extensions.find("EGL_ANGLE_surface_d3d_texture_2d_share_handle ") !=
- std::string::npos;
+ enabled_extensions.find(
+ "EGL_ANGLE_surface_d3d_texture_2d_share_handle") !=
+ enabled_extensions.end();
ext.b_EGL_CHROMIUM_sync_control =
- extensions.find("EGL_CHROMIUM_sync_control ") != std::string::npos;
+ enabled_extensions.find("EGL_CHROMIUM_sync_control") !=
+ enabled_extensions.end();
ext.b_EGL_KHR_fence_sync =
- extensions.find("EGL_KHR_fence_sync ") != std::string::npos;
+ enabled_extensions.find("EGL_KHR_fence_sync") != enabled_extensions.end();
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;
+ enabled_extensions.find("EGL_KHR_gl_texture_2D_image") !=
+ enabled_extensions.end();
+ ext.b_EGL_KHR_image =
+ enabled_extensions.find("EGL_KHR_image") != enabled_extensions.end();
ext.b_EGL_KHR_image_base =
- extensions.find("EGL_KHR_image_base ") != std::string::npos;
+ enabled_extensions.find("EGL_KHR_image_base") != enabled_extensions.end();
ext.b_EGL_KHR_reusable_sync =
- extensions.find("EGL_KHR_reusable_sync ") != std::string::npos;
+ enabled_extensions.find("EGL_KHR_reusable_sync") !=
+ enabled_extensions.end();
ext.b_EGL_KHR_wait_sync =
- extensions.find("EGL_KHR_wait_sync ") != std::string::npos;
+ enabled_extensions.find("EGL_KHR_wait_sync") != enabled_extensions.end();
ext.b_EGL_NV_post_sub_buffer =
- extensions.find("EGL_NV_post_sub_buffer ") != std::string::npos;
+ enabled_extensions.find("EGL_NV_post_sub_buffer") !=
+ enabled_extensions.end();
+ debug_fn.eglGetPlatformDisplayEXTFn = 0;
+ if (ext.b_EGL_EXT_platform_base) {
+ fn.eglGetPlatformDisplayEXTFn =
+ reinterpret_cast<eglGetPlatformDisplayEXTProc>(
+ GetGLProcAddress("eglGetPlatformDisplayEXT"));
+ DCHECK(fn.eglGetPlatformDisplayEXTFn);
+ }
debug_fn.eglClientWaitSyncKHRFn = 0;
if (ext.b_EGL_KHR_fence_sync || ext.b_EGL_KHR_reusable_sync) {

Powered by Google App Engine
This is Rietveld 408576698