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

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

Issue 2629633003: Refactor GL bindings so there is no global GLApi or DriverGL. (Closed)
Patch Set: rebase Created 3 years, 10 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
« no previous file with comments | « ui/gl/gl_wgl_api_implementation.h ('k') | ui/gl/gpu_timing_unittest.cc » ('j') | 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) 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
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
OLDNEW
« no previous file with comments | « ui/gl/gl_wgl_api_implementation.h ('k') | ui/gl/gpu_timing_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698