| 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)
|
|
|