Index: ui/gl/gl_gl_api_implementation.cc |
diff --git a/ui/gl/gl_gl_api_implementation.cc b/ui/gl/gl_gl_api_implementation.cc |
index 94166eed457f039623a47d1f85329b871cd61ba0..ff76d6bebd8641f11e55accd8c6b139d797627dd 100644 |
--- a/ui/gl/gl_gl_api_implementation.cc |
+++ b/ui/gl/gl_gl_api_implementation.cc |
@@ -259,6 +259,7 @@ bool VirtualGLApi::MakeCurrent(GLContext* virtual_context, GLSurface* surface) { |
// MakeCurrent 'lite' path that avoids potentially expensive MakeCurrent() |
// calls if the GLSurface uses the same underlying surface or renders to |
// an FBO. |
+ real_context_->SetCurrent(surface); |
if (!surface->OnMakeCurrent(real_context_)) { |
LOG(ERROR) << "Could not make GLSurface current."; |
return false; |
@@ -268,8 +269,9 @@ bool VirtualGLApi::MakeCurrent(GLContext* virtual_context, GLSurface* surface) { |
} |
} |
- DCHECK(GLSurface::GetCurrent()); |
- DCHECK(real_context_->IsCurrent(GLSurface::GetCurrent())); |
+ DCHECK_EQ(real_context_, GLContext::GetRealCurrent()); |
+ DCHECK(GLSurface::GetRealCurrent()); |
+ DCHECK(real_context_->IsCurrent(GLSurface::GetRealCurrent())); |
DCHECK(virtual_context->IsCurrent(surface)); |
if (switched_contexts || virtual_context != current_context_) { |
@@ -290,6 +292,7 @@ bool VirtualGLApi::MakeCurrent(GLContext* virtual_context, GLSurface* surface) { |
SetGLApi(temp); |
} |
SetGLApi(this); |
+ |
return true; |
} |