Index: ui/gl/gl_surface_osmesa.cc |
diff --git a/ui/gl/gl_surface_osmesa.cc b/ui/gl/gl_surface_osmesa.cc |
index 7994eec379187df5b0838ab1f7749615d8fff3ae..9a556bc9982d528dcfb40aa81fc08e861e454b27 100644 |
--- a/ui/gl/gl_surface_osmesa.cc |
+++ b/ui/gl/gl_surface_osmesa.cc |
@@ -6,6 +6,7 @@ |
#include "ui/gl/gl_bindings.h" |
#include "ui/gl/gl_context.h" |
#include "ui/gl/gl_surface_osmesa.h" |
+#include "ui/gl/scoped_make_current.h" |
namespace gfx { |
@@ -23,10 +24,15 @@ void GLSurfaceOSMesa::Destroy() { |
} |
bool GLSurfaceOSMesa::Resize(const gfx::Size& new_size) { |
+ scoped_ptr<ui::ScopedMakeCurrent> scoped_make_current; |
GLContext* current_context = GLContext::GetCurrent(); |
- bool was_current = current_context && current_context->IsCurrent(this); |
- if (was_current) |
+ bool was_current = |
+ current_context && current_context->IsCurrent(this); |
+ if (was_current) { |
+ scoped_make_current.reset( |
+ new ui::ScopedMakeCurrent(current_context, this)); |
current_context->ReleaseCurrent(this); |
+ } |
// Preserve the old buffer. |
scoped_ptr<int32[]> old_buffer(buffer_.release()); |
@@ -48,9 +54,6 @@ bool GLSurfaceOSMesa::Resize(const gfx::Size& new_size) { |
size_ = new_size; |
- if (was_current) |
- return current_context->MakeCurrent(this); |
- |
return true; |
} |