| Index: ui/gl/gl_context_osmesa.cc
|
| diff --git a/ui/gl/gl_context_osmesa.cc b/ui/gl/gl_context_osmesa.cc
|
| index e7ccba99039c116727f7c9f4061ad6adea717c0e..524fe42bb1716d110999e3321ea658be28cfae1b 100644
|
| --- a/ui/gl/gl_context_osmesa.cc
|
| +++ b/ui/gl/gl_context_osmesa.cc
|
| @@ -52,6 +52,7 @@ bool GLContextOSMesa::MakeCurrent(GLSurface* surface) {
|
|
|
| gfx::Size size = surface->GetSize();
|
|
|
| + ScopedReleaseCurrent release_current;
|
| if (!OSMesaMakeCurrent(context_,
|
| surface->GetHandle(),
|
| GL_UNSIGNED_BYTE,
|
| @@ -70,7 +71,6 @@ bool GLContextOSMesa::MakeCurrent(GLSurface* surface) {
|
|
|
| SetCurrent(surface);
|
| if (!InitializeDynamicBindings()) {
|
| - ReleaseCurrent(surface);
|
| return false;
|
| }
|
|
|
| @@ -79,6 +79,7 @@ bool GLContextOSMesa::MakeCurrent(GLSurface* surface) {
|
| return false;
|
| }
|
|
|
| + release_current.Cancel();
|
| return true;
|
| }
|
|
|
| @@ -87,6 +88,7 @@ void GLContextOSMesa::ReleaseCurrent(GLSurface* surface) {
|
| return;
|
|
|
| SetCurrent(NULL);
|
| + // TODO: Calling with NULL here does not work to release the context.
|
| OSMesaMakeCurrent(NULL, NULL, GL_UNSIGNED_BYTE, 0, 0);
|
| }
|
|
|
|
|