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 eade3cedaf5e6df54041372b964335aa7937edca..0123a95437eae3d9828d8b523b317a8dd7b8c4e1 100644 |
--- a/ui/gl/gl_gl_api_implementation.cc |
+++ b/ui/gl/gl_gl_api_implementation.cc |
@@ -305,17 +305,17 @@ bool VirtualGLApi::MakeCurrent(GLContext* virtual_context, GLSurface* surface) { |
// new context. |
DCHECK_EQ(glGetErrorFn(), static_cast<GLenum>(GL_NO_ERROR)); |
- current_context_ = virtual_context; |
// Set all state that is different from the real state |
- // NOTE: !!! This is a temporary implementation that just restores all |
- // state to let us test that it works. |
- // TODO: ASAP, change this to something that only restores the state |
- // needed for individual GL calls. |
GLApi* temp = GetCurrentGLApi(); |
SetGLToRealGLApi(); |
- if (virtual_context->GetGLStateRestorer()->IsInitialized()) |
- virtual_context->GetGLStateRestorer()->RestoreState(); |
+ if (virtual_context->GetGLStateRestorer()->IsInitialized()) { |
+ virtual_context->GetGLStateRestorer()->RestoreState( |
+ (current_context_) |
Sami
2013/12/18 16:04:07
It might be worth checking how often we go from Ma
kaanb
2013/12/18 17:24:55
I see MakeCurrent(NULL) -> MakeCurrent(some_contex
|
+ ? current_context_->GetGLStateRestorer()->GetContextState() |
+ : NULL); |
+ } |
SetGLApi(temp); |
+ current_context_ = virtual_context; |
} |
SetGLApi(this); |