| Index: gpu/command_buffer/service/gl_context_virtual.cc
|
| diff --git a/gpu/command_buffer/service/gl_context_virtual.cc b/gpu/command_buffer/service/gl_context_virtual.cc
|
| index 7747407cf6dfba7887bd043afb45bd445fb1afba..0857a521787052d9eba3317cd21eab189f4baec0 100644
|
| --- a/gpu/command_buffer/service/gl_context_virtual.cc
|
| +++ b/gpu/command_buffer/service/gl_context_virtual.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "gpu/command_buffer/service/gl_state_restorer_impl.h"
|
| #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
|
| +#include "ui/gl/gl_gl_api_implementation.h"
|
| #include "ui/gl/gl_surface.h"
|
| #include "ui/gl/gpu_timing.h"
|
|
|
| @@ -114,6 +115,21 @@ void GLContextVirtual::SetUnbindFboOnMakeCurrent() {
|
| shared_context_->SetUnbindFboOnMakeCurrent();
|
| }
|
|
|
| +base::Closure GLContextVirtual::GetStateWasDirtiedExternallyCallback() {
|
| + return shared_context_->GetStateWasDirtiedExternallyCallback();
|
| +}
|
| +
|
| +void GLContextVirtual::RestoreStateIfDirtiedExternally() {
|
| + // The dirty bit should only be cleared after the state has been restored,
|
| + // which should be done only when the context is current.
|
| + DCHECK(IsCurrent(NULL));
|
| + if (!shared_context_->GetStateWasDirtiedExternally())
|
| + return;
|
| + gfx::ScopedSetGLToRealGLApi scoped_set_gl_api;
|
| + GetGLStateRestorer()->RestoreState(NULL);
|
| + shared_context_->SetStateWasDirtiedExternally(false);
|
| +}
|
| +
|
| GLContextVirtual::~GLContextVirtual() {
|
| Destroy();
|
| }
|
|
|