Index: ui/gl/gl_wgl_api_implementation.cc |
diff --git a/ui/gl/gl_wgl_api_implementation.cc b/ui/gl/gl_wgl_api_implementation.cc |
index c26312cdf9a09294663ca1f9100f751aa5152966..c6a500fc6d80b028839d19f22f59176170ca92ae 100644 |
--- a/ui/gl/gl_wgl_api_implementation.cc |
+++ b/ui/gl/gl_wgl_api_implementation.cc |
@@ -11,7 +11,8 @@ |
namespace gl { |
-RealWGLApi* g_real_wgl; |
+RealWGLApi* g_real_wgl = nullptr; |
+DebugWGLApi* g_debug_wgl = nullptr; |
void InitializeStaticGLBindingsWGL() { |
g_driver_wgl.InitializeStaticBindings(); |
@@ -24,10 +25,17 @@ void InitializeStaticGLBindingsWGL() { |
} |
void InitializeDebugGLBindingsWGL() { |
- g_driver_wgl.InitializeDebugBindings(); |
+ if (!g_debug_wgl) { |
+ g_debug_wgl = new DebugWGLApi(g_real_wgl); |
+ } |
+ g_current_wgl_context = g_debug_wgl; |
} |
void ClearBindingsWGL() { |
+ if (g_debug_wgl) { |
+ delete g_debug_wgl; |
+ g_debug_wgl = NULL; |
+ } |
if (g_real_wgl) { |
delete g_real_wgl; |
g_real_wgl = NULL; |
@@ -111,6 +119,10 @@ const char* RealWGLApi::wglGetExtensionsStringEXTFn() { |
return filtered_ext_exts_.c_str(); |
} |
+DebugWGLApi::DebugWGLApi(WGLApi* wgl_api) : wgl_api_(wgl_api) {} |
+ |
+DebugWGLApi::~DebugWGLApi() {} |
+ |
TraceWGLApi::~TraceWGLApi() { |
} |