| Index: gpu/command_buffer/client/gl_in_process_context.cc
|
| diff --git a/gpu/command_buffer/client/gl_in_process_context.cc b/gpu/command_buffer/client/gl_in_process_context.cc
|
| index f10695ed10f71f097b3482b850ba48120fceab93..5d8049bceee7458b2671e143537bc40d79a91d5e 100644
|
| --- a/gpu/command_buffer/client/gl_in_process_context.cc
|
| +++ b/gpu/command_buffer/client/gl_in_process_context.cc
|
| @@ -66,6 +66,7 @@ class GLInProcessContextImpl
|
| void SetContextLostCallback(const base::Closure& callback) override;
|
| gles2::GLES2Implementation* GetImplementation() override;
|
| size_t GetMappedMemoryLimit() override;
|
| + void SetLock(base::Lock* lock) override;
|
|
|
| #if defined(OS_ANDROID)
|
| scoped_refptr<gfx::SurfaceTexture> GetSurfaceTexture(
|
| @@ -85,6 +86,7 @@ class GLInProcessContextImpl
|
| const GLInProcessContextSharedMemoryLimits mem_limits_;
|
| bool context_lost_;
|
| base::Closure context_lost_callback_;
|
| + base::Lock* lock_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(GLInProcessContextImpl);
|
| };
|
| @@ -96,7 +98,7 @@ base::LazyInstance<std::set<GLInProcessContextImpl*> > g_all_shared_contexts =
|
|
|
| GLInProcessContextImpl::GLInProcessContextImpl(
|
| const GLInProcessContextSharedMemoryLimits& mem_limits)
|
| - : mem_limits_(mem_limits), context_lost_(false) {
|
| + : mem_limits_(mem_limits), context_lost_(false), lock_(nullptr) {
|
| }
|
|
|
| GLInProcessContextImpl::~GLInProcessContextImpl() {
|
| @@ -115,12 +117,20 @@ size_t GLInProcessContextImpl::GetMappedMemoryLimit() {
|
| return mem_limits_.mapped_memory_reclaim_limit;
|
| }
|
|
|
| +void GLInProcessContextImpl::SetLock(base::Lock* lock) {
|
| + command_buffer_->SetLock(lock);
|
| + lock_ = lock;
|
| +}
|
| +
|
| void GLInProcessContextImpl::SetContextLostCallback(
|
| const base::Closure& callback) {
|
| context_lost_callback_ = callback;
|
| }
|
|
|
| void GLInProcessContextImpl::OnContextLost() {
|
| + scoped_ptr<base::AutoLock> lock;
|
| + if (lock_)
|
| + lock.reset(new base::AutoLock(*lock_));
|
| context_lost_ = true;
|
| if (!context_lost_callback_.is_null()) {
|
| context_lost_callback_.Run();
|
|
|