Index: ui/gl/gl_surface.cc |
diff --git a/ui/gl/gl_surface.cc b/ui/gl/gl_surface.cc |
index f09aa35924daf21f1ab19a5eb57ba463eb8e011c..bf78be3e51c80bb6ec17ce7c709004abdf8ad5c0 100644 |
--- a/ui/gl/gl_surface.cc |
+++ b/ui/gl/gl_surface.cc |
@@ -20,6 +20,9 @@ namespace gfx { |
namespace { |
base::LazyInstance<base::ThreadLocalPointer<GLSurface> >::Leaky |
current_surface_ = LAZY_INSTANCE_INITIALIZER; |
+ |
+base::LazyInstance<base::ThreadLocalPointer<GLSurface> >::Leaky |
+ current_real_surface_ = LAZY_INSTANCE_INITIALIZER; |
} // namespace |
// static |
@@ -154,15 +157,26 @@ GLSurface* GLSurface::GetCurrent() { |
return current_surface_.Pointer()->Get(); |
} |
+GLSurface* GLSurface::GetRealCurrent() { |
+ return current_real_surface_.Pointer()->Get(); |
+} |
+ |
GLSurface::~GLSurface() { |
if (GetCurrent() == this) |
SetCurrent(NULL); |
+ |
+ if (GetRealCurrent() == this) |
+ SetRealCurrent(NULL); |
} |
void GLSurface::SetCurrent(GLSurface* surface) { |
current_surface_.Pointer()->Set(surface); |
} |
+void GLSurface::SetRealCurrent(GLSurface* surface) { |
+ current_real_surface_.Pointer()->Set(surface); |
+} |
+ |
bool GLSurface::ExtensionsContain(const char* c_extensions, const char* name) { |
DCHECK(name); |
if (!c_extensions) |