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

Side by Side Diff: ui/gfx/gl/gl_implementation_linux.cc

Issue 8601005: wayland: Fix GL extension binding init to work again for use_wayland (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Also fix GetAllowedGLImplementatoins. Created 9 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <vector> 5 #include <vector>
6 6
7 #include "base/base_paths.h" 7 #include "base/base_paths.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 // race in the bindings initialization. 50 // race in the bindings initialization.
51 #if (defined(TOOLKIT_VIEWS) && !defined(OS_CHROMEOS)) || defined(TOUCH_UI) 51 #if (defined(TOOLKIT_VIEWS) && !defined(OS_CHROMEOS)) || defined(TOUCH_UI)
52 base::LazyInstance<base::Lock, 52 base::LazyInstance<base::Lock,
53 base::LeakyLazyInstanceTraits<base::Lock> > 53 base::LeakyLazyInstanceTraits<base::Lock> >
54 g_lock(base::LINKER_INITIALIZED); 54 g_lock(base::LINKER_INITIALIZED);
55 #endif 55 #endif
56 56
57 } // namespace anonymous 57 } // namespace anonymous
58 58
59 void GetAllowedGLImplementations(std::vector<GLImplementation>* impls) { 59 void GetAllowedGLImplementations(std::vector<GLImplementation>* impls) {
60 #if !defined(USE_WAYLAND)
61 impls->push_back(kGLImplementationOSMesaGL);
60 impls->push_back(kGLImplementationDesktopGL); 62 impls->push_back(kGLImplementationDesktopGL);
63 #endif
61 impls->push_back(kGLImplementationEGLGLES2); 64 impls->push_back(kGLImplementationEGLGLES2);
62 impls->push_back(kGLImplementationOSMesaGL);
63 } 65 }
64 66
65 bool InitializeGLBindings(GLImplementation implementation) { 67 bool InitializeGLBindings(GLImplementation implementation) {
66 #if (defined(TOOLKIT_VIEWS) && !defined(OS_CHROMEOS)) || defined(TOUCH_UI) 68 #if (defined(TOOLKIT_VIEWS) && !defined(OS_CHROMEOS)) || defined(TOUCH_UI)
67 base::AutoLock locked(g_lock.Get()); 69 base::AutoLock locked(g_lock.Get());
68 #endif 70 #endif
69 // Prevent reinitialization with a different implementation. Once the gpu 71 // Prevent reinitialization with a different implementation. Once the gpu
70 // unit tests have initialized with kGLImplementationMock, we don't want to 72 // unit tests have initialized with kGLImplementationMock, we don't want to
71 // later switch to another GL implementation. 73 // later switch to another GL implementation.
72 if (GetGLImplementation() != kGLImplementationNone) 74 if (GetGLImplementation() != kGLImplementationNone)
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 return false; 185 return false;
184 } 186 }
185 187
186 188
187 return true; 189 return true;
188 } 190 }
189 191
190 bool InitializeGLExtensionBindings(GLImplementation implementation, 192 bool InitializeGLExtensionBindings(GLImplementation implementation,
191 GLContext* context) { 193 GLContext* context) {
192 switch (implementation) { 194 switch (implementation) {
195 #if !defined(USE_WAYLAND)
193 case kGLImplementationOSMesaGL: 196 case kGLImplementationOSMesaGL:
194 InitializeGLExtensionBindingsGL(context); 197 InitializeGLExtensionBindingsGL(context);
195 InitializeGLExtensionBindingsOSMESA(context); 198 InitializeGLExtensionBindingsOSMESA(context);
196 break; 199 break;
197 case kGLImplementationDesktopGL: 200 case kGLImplementationDesktopGL:
198 InitializeGLExtensionBindingsGL(context); 201 InitializeGLExtensionBindingsGL(context);
199 InitializeGLExtensionBindingsGLX(context); 202 InitializeGLExtensionBindingsGLX(context);
200 break; 203 break;
204 #endif
201 case kGLImplementationEGLGLES2: 205 case kGLImplementationEGLGLES2:
202 InitializeGLExtensionBindingsGL(context); 206 InitializeGLExtensionBindingsGL(context);
203 InitializeGLExtensionBindingsEGL(context); 207 InitializeGLExtensionBindingsEGL(context);
204 break; 208 break;
205 case kGLImplementationMockGL: 209 case kGLImplementationMockGL:
206 InitializeGLExtensionBindingsGL(context); 210 InitializeGLExtensionBindingsGL(context);
207 break; 211 break;
208 default: 212 default:
209 return false; 213 return false;
210 } 214 }
(...skipping 16 matching lines...) Expand all
227 #if !defined(USE_WAYLAND) 231 #if !defined(USE_WAYLAND)
228 ClearGLBindingsGLX(); 232 ClearGLBindingsGLX();
229 ClearGLBindingsOSMESA(); 233 ClearGLBindingsOSMESA();
230 #endif 234 #endif
231 SetGLImplementation(kGLImplementationNone); 235 SetGLImplementation(kGLImplementationNone);
232 236
233 UnloadGLNativeLibraries(); 237 UnloadGLNativeLibraries();
234 } 238 }
235 239
236 } // namespace gfx 240 } // namespace gfx
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698