| 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_wgl_api_implementation.h" | 5 #include "ui/gl/gl_wgl_api_implementation.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/strings/string_split.h" | 8 #include "base/strings/string_split.h" |
| 9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
| 10 #include "ui/gl/gl_implementation.h" | 10 #include "ui/gl/gl_implementation.h" |
| 11 | 11 |
| 12 namespace gl { | 12 namespace gl { |
| 13 | 13 |
| 14 RealWGLApi* g_real_wgl; | 14 RealWGLApi* g_real_wgl = nullptr; |
| 15 DebugWGLApi* g_debug_wgl = nullptr; |
| 15 | 16 |
| 16 void InitializeStaticGLBindingsWGL() { | 17 void InitializeStaticGLBindingsWGL() { |
| 17 g_driver_wgl.InitializeStaticBindings(); | 18 g_driver_wgl.InitializeStaticBindings(); |
| 18 if (!g_real_wgl) { | 19 if (!g_real_wgl) { |
| 19 g_real_wgl = new RealWGLApi(); | 20 g_real_wgl = new RealWGLApi(); |
| 20 } | 21 } |
| 21 g_real_wgl->Initialize(&g_driver_wgl); | 22 g_real_wgl->Initialize(&g_driver_wgl); |
| 22 g_current_wgl_context = g_real_wgl; | 23 g_current_wgl_context = g_real_wgl; |
| 23 g_driver_wgl.InitializeExtensionBindings(); | 24 g_driver_wgl.InitializeExtensionBindings(); |
| 24 } | 25 } |
| 25 | 26 |
| 26 void InitializeDebugGLBindingsWGL() { | 27 void InitializeDebugGLBindingsWGL() { |
| 27 g_driver_wgl.InitializeDebugBindings(); | 28 if (!g_debug_wgl) { |
| 29 g_debug_wgl = new DebugWGLApi(g_real_wgl); |
| 30 } |
| 31 g_current_wgl_context = g_debug_wgl; |
| 28 } | 32 } |
| 29 | 33 |
| 30 void ClearBindingsWGL() { | 34 void ClearBindingsWGL() { |
| 35 if (g_debug_wgl) { |
| 36 delete g_debug_wgl; |
| 37 g_debug_wgl = NULL; |
| 38 } |
| 31 if (g_real_wgl) { | 39 if (g_real_wgl) { |
| 32 delete g_real_wgl; | 40 delete g_real_wgl; |
| 33 g_real_wgl = NULL; | 41 g_real_wgl = NULL; |
| 34 } | 42 } |
| 35 g_current_wgl_context = NULL; | 43 g_current_wgl_context = NULL; |
| 36 g_driver_wgl.ClearBindings(); | 44 g_driver_wgl.ClearBindings(); |
| 37 } | 45 } |
| 38 | 46 |
| 39 WGLApi::WGLApi() { | 47 WGLApi::WGLApi() { |
| 40 } | 48 } |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 return NULL; | 112 return NULL; |
| 105 | 113 |
| 106 const char* str = WGLApiBase::wglGetExtensionsStringEXTFn(); | 114 const char* str = WGLApiBase::wglGetExtensionsStringEXTFn(); |
| 107 if (!str) | 115 if (!str) |
| 108 return NULL; | 116 return NULL; |
| 109 | 117 |
| 110 filtered_ext_exts_ = FilterGLExtensionList(str, disabled_exts_); | 118 filtered_ext_exts_ = FilterGLExtensionList(str, disabled_exts_); |
| 111 return filtered_ext_exts_.c_str(); | 119 return filtered_ext_exts_.c_str(); |
| 112 } | 120 } |
| 113 | 121 |
| 122 DebugWGLApi::DebugWGLApi(WGLApi* wgl_api) : wgl_api_(wgl_api) {} |
| 123 |
| 124 DebugWGLApi::~DebugWGLApi() {} |
| 125 |
| 114 TraceWGLApi::~TraceWGLApi() { | 126 TraceWGLApi::~TraceWGLApi() { |
| 115 } | 127 } |
| 116 | 128 |
| 117 bool GetGLWindowSystemBindingInfoWGL(GLWindowSystemBindingInfo* info) { | 129 bool GetGLWindowSystemBindingInfoWGL(GLWindowSystemBindingInfo* info) { |
| 118 const char* extensions = wglGetExtensionsStringEXT(); | 130 const char* extensions = wglGetExtensionsStringEXT(); |
| 119 *info = GLWindowSystemBindingInfo(); | 131 *info = GLWindowSystemBindingInfo(); |
| 120 if (extensions) | 132 if (extensions) |
| 121 info->extensions = extensions; | 133 info->extensions = extensions; |
| 122 return true; | 134 return true; |
| 123 } | 135 } |
| 124 | 136 |
| 125 } // namespace gl | 137 } // namespace gl |
| OLD | NEW |