Index: ui/gl/init/gl_factory.cc |
diff --git a/ui/gl/init/gl_factory.cc b/ui/gl/init/gl_factory.cc |
index 3c17fc777bfe178be221a9c13d742f99d6823e19..40b06e4215f301240a8585daff0cb61a547963e5 100644 |
--- a/ui/gl/init/gl_factory.cc |
+++ b/ui/gl/init/gl_factory.cc |
@@ -22,34 +22,15 @@ bool InitializeGLOneOff() { |
DCHECK_EQ(kGLImplementationNone, GetGLImplementation()); |
+ GLImplementation impl = kGLImplementationNone; |
+ bool fallback_to_osmesa = false; |
std::vector<GLImplementation> allowed_impls = GetAllowedGLImplementations(); |
- DCHECK(!allowed_impls.empty()); |
+ bool result = |
+ SelectGLImplementation(allowed_impls, &impl, &fallback_to_osmesa); |
+ if (!result) |
+ return false; |
base::CommandLine* cmd = base::CommandLine::ForCurrentProcess(); |
- |
- // The default implementation is always the first one in list. |
- GLImplementation impl = allowed_impls[0]; |
- bool fallback_to_osmesa = false; |
- if (cmd->HasSwitch(switches::kOverrideUseGLWithOSMesaForTests)) { |
- impl = kGLImplementationOSMesaGL; |
- } else if (cmd->HasSwitch(switches::kUseGL)) { |
- std::string requested_implementation_name = |
- cmd->GetSwitchValueASCII(switches::kUseGL); |
- if (requested_implementation_name == "any") { |
- fallback_to_osmesa = true; |
- } else if (requested_implementation_name == |
- kGLImplementationSwiftShaderName || |
- requested_implementation_name == kGLImplementationANGLEName) { |
- impl = kGLImplementationEGLGLES2; |
- } else { |
- impl = GetNamedGLImplementation(requested_implementation_name); |
- if (!base::ContainsValue(allowed_impls, impl)) { |
- LOG(ERROR) << "Requested GL implementation is not available."; |
- return false; |
- } |
- } |
- } |
- |
bool gpu_service_logging = cmd->HasSwitch(switches::kEnableGPUServiceLogging); |
bool disable_gl_drawing = cmd->HasSwitch(switches::kDisableGLDrawingForTests); |
@@ -89,5 +70,14 @@ void ClearGLBindings() { |
UnloadGLNativeLibraries(); |
} |
+#if !defined(OS_MACOSX) |
+bool GetNativeLibraryNamesFromGLImplementation( |
+ GLImplementation impl, |
+ std::vector<std::string>* required_libraries) { |
+ return GetNativeLibraryNamesFromGLImplementationPlatform(impl, |
+ required_libraries); |
+} |
+#endif |
+ |
} // namespace init |
} // namespace gl |