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

Side by Side Diff: ui/gl/gl_context_ozone.cc

Issue 1723303002: Implement GLX for Ozone X11. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move refactor to new CL. Created 4 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/gl_context.h" 5 #include "ui/gl/gl_context.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/sys_info.h" 9 #include "base/sys_info.h"
10 #include "ui/gl/gl_bindings.h" 10 #include "ui/gl/gl_bindings.h"
11 #include "ui/gl/gl_context_egl.h" 11 #include "ui/gl/gl_context_egl.h"
12 #include "ui/gl/gl_context_osmesa.h" 12 #include "ui/gl/gl_context_osmesa.h"
13 #include "ui/gl/gl_context_stub.h" 13 #include "ui/gl/gl_context_stub.h"
14 #include "ui/gl/gl_implementation.h" 14 #include "ui/gl/gl_implementation.h"
15 #include "ui/gl/gl_surface.h" 15 #include "ui/gl/gl_surface.h"
16 16
17 #if defined(USE_GLX)
18 #include "ui/gl/gl_context_glx.h"
19 #endif
20
17 namespace gfx { 21 namespace gfx {
18 22
19 // static 23 // static
20 scoped_refptr<GLContext> GLContext::CreateGLContext( 24 scoped_refptr<GLContext> GLContext::CreateGLContext(
21 GLShareGroup* share_group, 25 GLShareGroup* share_group,
22 GLSurface* compatible_surface, 26 GLSurface* compatible_surface,
23 GpuPreference gpu_preference) { 27 GpuPreference gpu_preference) {
24 28
25 switch (GetGLImplementation()) { 29 switch (GetGLImplementation()) {
26 case kGLImplementationMockGL: 30 case kGLImplementationMockGL:
27 return scoped_refptr<GLContext>(new GLContextStub()); 31 return scoped_refptr<GLContext>(new GLContextStub());
32 #if defined(USE_GLX)
rjkroege 2016/04/27 19:08:12 The #ifdef and configuration is unfortunate as it
kylechar 2016/04/27 19:36:32 So, it's definitely possible with one very large r
33 case kGLImplementationDesktopGL: {
34 scoped_refptr<GLContext> context(new GLContextGLX(share_group));
35 if (!context->Initialize(compatible_surface, gpu_preference))
36 return nullptr;
37 return context;
38 }
39 #endif
28 case kGLImplementationOSMesaGL: { 40 case kGLImplementationOSMesaGL: {
29 scoped_refptr<GLContext> context(new GLContextOSMesa(share_group)); 41 scoped_refptr<GLContext> context(new GLContextOSMesa(share_group));
30 if (!context->Initialize(compatible_surface, gpu_preference)) 42 if (!context->Initialize(compatible_surface, gpu_preference))
31 return nullptr; 43 return nullptr;
32 return context; 44 return context;
33 } 45 }
34 case kGLImplementationEGLGLES2: { 46 case kGLImplementationEGLGLES2: {
35 scoped_refptr<GLContext> context(new GLContextEGL(share_group)); 47 scoped_refptr<GLContext> context(new GLContextEGL(share_group));
36 if (!context->Initialize(compatible_surface, gpu_preference)) 48 if (!context->Initialize(compatible_surface, gpu_preference))
37 return nullptr; 49 return nullptr;
38 return context; 50 return context;
39 } 51 }
40 default: 52 default:
41 NOTREACHED(); 53 NOTREACHED();
42 return nullptr; 54 return nullptr;
43 } 55 }
44 } 56 }
45 57
46 } // namespace gfx 58 } // namespace gfx
47 59
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698