Index: ui/gfx/gl/gl_surface_osmesa.cc |
=================================================================== |
--- ui/gfx/gl/gl_surface_osmesa.cc (revision 113398) |
+++ ui/gfx/gl/gl_surface_osmesa.cc (working copy) |
@@ -5,6 +5,7 @@ |
#include "ui/gfx/gl/gl_surface_osmesa.h" |
#include "base/logging.h" |
#include "ui/gfx/gl/gl_bindings.h" |
+#include "ui/gfx/gl/gl_context.h" |
namespace gfx { |
@@ -21,6 +22,11 @@ |
if (new_size == size_) |
return true; |
+ GLContext* current_context = GLContext::GetCurrent(); |
+ bool was_current = current_context && current_context->IsCurrent(this); |
+ if (was_current) |
+ current_context->ReleaseCurrent(this); |
+ |
// Preserve the old buffer. |
scoped_array<int32> old_buffer(buffer_.release()); |
@@ -37,6 +43,10 @@ |
} |
size_ = new_size; |
+ |
+ if (was_current) |
+ return current_context->MakeCurrent(this); |
+ |
return true; |
} |