OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/gl/init/gl_initializer.h" | 5 #include "ui/gl/init/gl_initializer.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
10 #include "base/threading/thread_restrictions.h" | 10 #include "base/threading/thread_restrictions.h" |
11 #include "build/build_config.h" | 11 #include "build/build_config.h" |
| 12 #include "ui/gfx/switches.h" |
12 #include "ui/gfx/x/x11_types.h" | 13 #include "ui/gfx/x/x11_types.h" |
13 #include "ui/gl/gl_bindings.h" | 14 #include "ui/gl/gl_bindings.h" |
14 #include "ui/gl/gl_egl_api_implementation.h" | 15 #include "ui/gl/gl_egl_api_implementation.h" |
15 #include "ui/gl/gl_gl_api_implementation.h" | 16 #include "ui/gl/gl_gl_api_implementation.h" |
16 #include "ui/gl/gl_glx_api_implementation.h" | 17 #include "ui/gl/gl_glx_api_implementation.h" |
17 #include "ui/gl/gl_implementation_osmesa.h" | 18 #include "ui/gl/gl_implementation_osmesa.h" |
18 #include "ui/gl/gl_osmesa_api_implementation.h" | 19 #include "ui/gl/gl_osmesa_api_implementation.h" |
19 #include "ui/gl/gl_surface_egl.h" | 20 #include "ui/gl/gl_surface_egl.h" |
20 #include "ui/gl/gl_surface_glx.h" | 21 #include "ui/gl/gl_surface_glx.h" |
21 #include "ui/gl/gl_surface_osmesa_x11.h" | 22 #include "ui/gl/gl_surface_osmesa_x11.h" |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 | 118 |
118 InitializeStaticGLBindingsGL(); | 119 InitializeStaticGLBindingsGL(); |
119 InitializeStaticGLBindingsEGL(); | 120 InitializeStaticGLBindingsEGL(); |
120 | 121 |
121 return true; | 122 return true; |
122 } | 123 } |
123 | 124 |
124 } // namespace | 125 } // namespace |
125 | 126 |
126 bool InitializeGLOneOffPlatform() { | 127 bool InitializeGLOneOffPlatform() { |
| 128 const base::CommandLine* command_line = |
| 129 base::CommandLine::ForCurrentProcess(); |
| 130 if (command_line->HasSwitch(switches::kHeadless)) |
| 131 return true; |
| 132 |
127 switch (GetGLImplementation()) { | 133 switch (GetGLImplementation()) { |
128 case kGLImplementationDesktopGL: | 134 case kGLImplementationDesktopGL: |
129 if (!GLSurfaceGLX::InitializeOneOff()) { | 135 if (!GLSurfaceGLX::InitializeOneOff()) { |
130 LOG(ERROR) << "GLSurfaceGLX::InitializeOneOff failed."; | 136 LOG(ERROR) << "GLSurfaceGLX::InitializeOneOff failed."; |
131 return false; | 137 return false; |
132 } | 138 } |
133 return true; | 139 return true; |
134 case kGLImplementationOSMesaGL: | 140 case kGLImplementationOSMesaGL: |
135 if (!GLSurfaceOSMesaX11::InitializeOneOff()) { | 141 if (!GLSurfaceOSMesaX11::InitializeOneOff()) { |
136 LOG(ERROR) << "GLSurfaceOSMesaX11::InitializeOneOff failed."; | 142 LOG(ERROR) << "GLSurfaceOSMesaX11::InitializeOneOff failed."; |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 void ShutdownGLPlatform() { | 194 void ShutdownGLPlatform() { |
189 GLSurfaceEGL::ShutdownOneOff(); | 195 GLSurfaceEGL::ShutdownOneOff(); |
190 ClearBindingsEGL(); | 196 ClearBindingsEGL(); |
191 ClearBindingsGL(); | 197 ClearBindingsGL(); |
192 ClearBindingsGLX(); | 198 ClearBindingsGLX(); |
193 ClearBindingsOSMESA(); | 199 ClearBindingsOSMESA(); |
194 } | 200 } |
195 | 201 |
196 } // namespace init | 202 } // namespace init |
197 } // namespace gl | 203 } // namespace gl |
OLD | NEW |