| 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_factory.h" | 5 #include "ui/gl/init/gl_factory.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/trace_event/trace_event.h" | 9 #include "base/trace_event/trace_event.h" |
| 10 #include "ui/gl/gl_bindings.h" | 10 #include "ui/gl/gl_bindings.h" |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 // a different onscreen surface with this context later. But we should | 80 // a different onscreen surface with this context later. But we should |
| 81 // always be creating the context with an offscreen surface first. | 81 // always be creating the context with an offscreen surface first. |
| 82 DCHECK(compatible_surface->IsOffscreen()); | 82 DCHECK(compatible_surface->IsOffscreen()); |
| 83 return InitializeGLContext(new GLContextCGL(share_group), | 83 return InitializeGLContext(new GLContextCGL(share_group), |
| 84 compatible_surface, attribs); | 84 compatible_surface, attribs); |
| 85 case kGLImplementationOSMesaGL: | 85 case kGLImplementationOSMesaGL: |
| 86 return InitializeGLContext(new GLContextOSMesa(share_group), | 86 return InitializeGLContext(new GLContextOSMesa(share_group), |
| 87 compatible_surface, attribs); | 87 compatible_surface, attribs); |
| 88 case kGLImplementationMockGL: | 88 case kGLImplementationMockGL: |
| 89 return new GLContextStub(share_group); | 89 return new GLContextStub(share_group); |
| 90 case kGLImplementationStubGL: { |
| 91 scoped_refptr<GLContextStub> stub_context = |
| 92 new GLContextStub(share_group); |
| 93 stub_context->SetUseStubApi(true); |
| 94 return stub_context; |
| 95 } |
| 90 default: | 96 default: |
| 91 NOTREACHED(); | 97 NOTREACHED(); |
| 92 return nullptr; | 98 return nullptr; |
| 93 } | 99 } |
| 94 } | 100 } |
| 95 | 101 |
| 96 scoped_refptr<GLSurface> CreateViewGLSurface(gfx::AcceleratedWidget window) { | 102 scoped_refptr<GLSurface> CreateViewGLSurface(gfx::AcceleratedWidget window) { |
| 97 TRACE_EVENT0("gpu", "gl::init::CreateViewGLSurface"); | 103 TRACE_EVENT0("gpu", "gl::init::CreateViewGLSurface"); |
| 98 switch (GetGLImplementation()) { | 104 switch (GetGLImplementation()) { |
| 99 case kGLImplementationDesktopGL: | 105 case kGLImplementationDesktopGL: |
| 100 case kGLImplementationDesktopGLCoreProfile: | 106 case kGLImplementationDesktopGLCoreProfile: |
| 101 case kGLImplementationAppleGL: { | 107 case kGLImplementationAppleGL: { |
| 102 NOTIMPLEMENTED() << "No onscreen support on Mac."; | 108 NOTIMPLEMENTED() << "No onscreen support on Mac."; |
| 103 return nullptr; | 109 return nullptr; |
| 104 } | 110 } |
| 105 case kGLImplementationOSMesaGL: { | 111 case kGLImplementationOSMesaGL: { |
| 106 return InitializeGLSurface(new GLSurfaceOSMesaHeadless()); | 112 return InitializeGLSurface(new GLSurfaceOSMesaHeadless()); |
| 107 } | 113 } |
| 108 case kGLImplementationMockGL: | 114 case kGLImplementationMockGL: |
| 115 case kGLImplementationStubGL: |
| 109 return new GLSurfaceStub; | 116 return new GLSurfaceStub; |
| 110 default: | 117 default: |
| 111 NOTREACHED(); | 118 NOTREACHED(); |
| 112 return nullptr; | 119 return nullptr; |
| 113 } | 120 } |
| 114 } | 121 } |
| 115 | 122 |
| 116 scoped_refptr<GLSurface> CreateOffscreenGLSurfaceWithFormat( | 123 scoped_refptr<GLSurface> CreateOffscreenGLSurfaceWithFormat( |
| 117 const gfx::Size& size, GLSurfaceFormat format) { | 124 const gfx::Size& size, GLSurfaceFormat format) { |
| 118 TRACE_EVENT0("gpu", "gl::init::CreateOffscreenGLSurface"); | 125 TRACE_EVENT0("gpu", "gl::init::CreateOffscreenGLSurface"); |
| 119 switch (GetGLImplementation()) { | 126 switch (GetGLImplementation()) { |
| 120 case kGLImplementationOSMesaGL: | 127 case kGLImplementationOSMesaGL: |
| 121 format.SetDefaultPixelLayout(GLSurfaceFormat::PIXEL_LAYOUT_RGBA); | 128 format.SetDefaultPixelLayout(GLSurfaceFormat::PIXEL_LAYOUT_RGBA); |
| 122 return InitializeGLSurfaceWithFormat( | 129 return InitializeGLSurfaceWithFormat( |
| 123 new GLSurfaceOSMesa(format, size), format); | 130 new GLSurfaceOSMesa(format, size), format); |
| 124 case kGLImplementationDesktopGL: | 131 case kGLImplementationDesktopGL: |
| 125 case kGLImplementationDesktopGLCoreProfile: | 132 case kGLImplementationDesktopGLCoreProfile: |
| 126 case kGLImplementationAppleGL: | 133 case kGLImplementationAppleGL: |
| 127 return InitializeGLSurfaceWithFormat( | 134 return InitializeGLSurfaceWithFormat( |
| 128 new NoOpGLSurface(size), format); | 135 new NoOpGLSurface(size), format); |
| 129 case kGLImplementationMockGL: | 136 case kGLImplementationMockGL: |
| 137 case kGLImplementationStubGL: |
| 130 return new GLSurfaceStub; | 138 return new GLSurfaceStub; |
| 131 default: | 139 default: |
| 132 NOTREACHED(); | 140 NOTREACHED(); |
| 133 return nullptr; | 141 return nullptr; |
| 134 } | 142 } |
| 135 } | 143 } |
| 136 | 144 |
| 137 } // namespace init | 145 } // namespace init |
| 138 } // namespace gl | 146 } // namespace gl |
| OLD | NEW |