Index: ui/gl/gl_implementation_win.cc |
diff --git a/ui/gl/gl_implementation_win.cc b/ui/gl/gl_implementation_win.cc |
index 477f5a5b4b3118a5e4f66ddcc80ecbbc0e7cbe64..618250d0a7a298ceb438ffb292ed8424bedc698c 100644 |
--- a/ui/gl/gl_implementation_win.cc |
+++ b/ui/gl/gl_implementation_win.cc |
@@ -9,6 +9,7 @@ |
#include "base/bind.h" |
#include "base/command_line.h" |
#include "base/files/file_path.h" |
+#include "base/lazy_instance.h" |
#include "base/logging.h" |
#include "base/native_library.h" |
#include "base/path_service.h" |
@@ -16,6 +17,8 @@ |
#include "base/threading/thread_restrictions.h" |
#include "base/trace_event/trace_event.h" |
#include "base/win/windows_version.h" |
+// TODO(jmadill): Apply to all platforms eventually |
+#include "ui/gl/angle_platform_impl.h" |
#include "ui/gl/gl_bindings.h" |
#include "ui/gl/gl_context_stub_with_extensions.h" |
#include "ui/gl/gl_egl_api_implementation.h" |
@@ -97,6 +100,10 @@ typedef void (__stdcall *SetTraceFunctionPointersFunc)( |
GetCategoryEnabledFlagFunc get_category_enabled_flag, |
AddTraceEventFunc add_trace_event_func); |
+// TODO(jmadill): Apply to all platforms eventually |
+base::LazyInstance<ANGLEPlatformImpl> g_angle_platform_impl = |
+ LAZY_INSTANCE_INITIALIZER; |
+ |
} // namespace |
void GetAllowedGLImplementations(std::vector<GLImplementation>* impls) { |
@@ -111,6 +118,10 @@ bool InitializeStaticGLBindings(GLImplementation implementation) { |
// later switch to another GL implementation. |
DCHECK_EQ(kGLImplementationNone, GetGLImplementation()); |
+ // Init ANGLE platform here, before we call GetPlatformDisplay(). |
+ // TODO(jmadill): Apply to all platforms eventually |
+ angle::Platform::initialize(&g_angle_platform_impl.Get()); |
+ |
// Allow the main thread or another to initialize these bindings |
// after instituting restrictions on I/O. Going forward they will |
// likely be used in the browser process on most platforms. The |
@@ -348,6 +359,9 @@ void InitializeDebugGLBindings() { |
} |
void ClearGLBindings() { |
+ // TODO(jmadill): Apply to all platforms eventually |
+ angle::Platform::shutdown(); |
+ |
ClearGLBindingsEGL(); |
ClearGLBindingsGL(); |
ClearGLBindingsOSMESA(); |