OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_surface.h" | 5 #include "ui/gl/gl_surface.h" |
6 | 6 |
7 #include <dwmapi.h> | 7 #include <dwmapi.h> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
11 #include "base/logging.h" | 11 #include "base/logging.h" |
12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
13 #include "base/win/windows_version.h" | 13 #include "base/win/windows_version.h" |
14 #include "ui/gfx/frame_time.h" | 14 #include "ui/gfx/frame_time.h" |
15 #include "ui/gfx/native_widget_types.h" | 15 #include "ui/gfx/native_widget_types.h" |
16 #include "ui/gl/gl_bindings.h" | 16 #include "ui/gl/gl_bindings.h" |
17 #include "ui/gl/gl_implementation.h" | 17 #include "ui/gl/gl_implementation.h" |
18 #include "ui/gl/gl_surface_egl.h" | 18 #include "ui/gl/gl_surface_egl.h" |
19 #include "ui/gl/gl_surface_osmesa.h" | 19 #include "ui/gl/gl_surface_osmesa.h" |
20 #include "ui/gl/gl_surface_stub.h" | 20 #include "ui/gl/gl_surface_stub.h" |
21 #include "ui/gl/gl_surface_wgl.h" | 21 #include "ui/gl/gl_surface_wgl.h" |
22 | 22 |
23 // From ANGLE's egl/eglext.h. | 23 // From ANGLE's egl/eglext.h. |
24 #if !defined(EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE) | 24 #if !defined(EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE) |
25 #define EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE \ | 25 #define EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE \ |
26 reinterpret_cast<EGLNativeDisplayType>(-2) | 26 reinterpret_cast<EGLNativeDisplayType>(-2) |
27 #endif | 27 #endif |
28 #if !defined(EGL_PLATFORM_ANGLE_ANGLE) | |
29 #define EGL_PLATFORM_ANGLE_ANGLE 0x3201 | |
30 #endif | |
31 #if !defined(EGL_PLATFORM_ANGLE_TYPE_ANGLE) | |
32 #define EGL_PLATFORM_ANGLE_TYPE_ANGLE 0x3202 | |
33 #endif | |
34 #if !defined(EGL_PLATFORM_ANGLE_TYPE_D3D11_WARP_ANGLE) | |
35 #define EGL_PLATFORM_ANGLE_TYPE_D3D11_WARP_ANGLE 0x3206 | |
36 #endif | |
28 | 37 |
29 namespace gfx { | 38 namespace gfx { |
30 | 39 |
31 // This OSMesa GL surface can use GDI to swap the contents of the buffer to a | 40 // This OSMesa GL surface can use GDI to swap the contents of the buffer to a |
32 // view. | 41 // view. |
33 class NativeViewGLSurfaceOSMesa : public GLSurfaceOSMesa { | 42 class NativeViewGLSurfaceOSMesa : public GLSurfaceOSMesa { |
34 public: | 43 public: |
35 explicit NativeViewGLSurfaceOSMesa(gfx::AcceleratedWidget window); | 44 explicit NativeViewGLSurfaceOSMesa(gfx::AcceleratedWidget window); |
36 virtual ~NativeViewGLSurfaceOSMesa(); | 45 virtual ~NativeViewGLSurfaceOSMesa(); |
37 | 46 |
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
287 } | 296 } |
288 case kGLImplementationMockGL: | 297 case kGLImplementationMockGL: |
289 return new GLSurfaceStub; | 298 return new GLSurfaceStub; |
290 default: | 299 default: |
291 NOTREACHED(); | 300 NOTREACHED(); |
292 return NULL; | 301 return NULL; |
293 } | 302 } |
294 } | 303 } |
295 | 304 |
296 EGLNativeDisplayType GetPlatformDefaultEGLNativeDisplay() { | 305 EGLNativeDisplayType GetPlatformDefaultEGLNativeDisplay() { |
297 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableD3D11)) | 306 return GetDC(NULL); |
Geoff Lang
2014/08/27 21:05:05
It reverted to D3D9 because this logic was removed
luken
2014/08/28 23:50:33
Done.
| |
298 return EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE; | 307 } |
299 | 308 |
300 return EGL_DEFAULT_DISPLAY; | 309 static const EGLint kDisplayAttribsWarp[] { |
310 EGL_PLATFORM_ANGLE_TYPE_ANGLE, | |
311 EGL_PLATFORM_ANGLE_TYPE_D3D11_WARP_ANGLE, | |
312 EGL_NONE | |
313 }; | |
314 | |
315 const EGLenum GetPlatformDefaultEGLNativePlatform() { | |
316 return EGL_PLATFORM_ANGLE_ANGLE; | |
317 } | |
318 | |
319 const EGLint* GetPlatformDefaultEGLNativeDisplayAttributes() { | |
320 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kUseWarp)) | |
321 return kDisplayAttribsWarp; | |
322 return NULL; | |
Geoff Lang
2014/08/27 21:05:05
Not supplying a platform type to eglGetPlatformDis
luken
2014/08/28 23:50:33
Done.
| |
301 } | 323 } |
302 | 324 |
303 } // namespace gfx | 325 } // namespace gfx |
OLD | NEW |