| Index: cc/resources/resource_provider.cc
|
| diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc
|
| index eb774fe10b3bd8d2ce217aa806d90a7158e3ca11..24fa2968f7a9c8776b5ef0aa2bfaf66fd8760284 100644
|
| --- a/cc/resources/resource_provider.cc
|
| +++ b/cc/resources/resource_provider.cc
|
| @@ -1104,6 +1104,31 @@ ResourceProvider::ScopedWriteLockGpuMemoryBuffer::GetGpuMemoryBuffer() {
|
| return gpu_memory_buffer_;
|
| }
|
|
|
| +ResourceProvider::ScopedReadLockGpuMemoryBuffer::ScopedReadLockGpuMemoryBuffer(
|
| + ResourceProvider* resource_provider,
|
| + ResourceProvider::ResourceId resource_id)
|
| + : resource_provider_(resource_provider),
|
| + resource_id_(resource_id),
|
| + gpu_memory_buffer_(nullptr) {
|
| + const Resource* resource = resource_provider->LockForRead(resource_id);
|
| + DCHECK_EQ(RESOURCE_TYPE_GL_TEXTURE, resource->type);
|
| + DCHECK(resource->allocated);
|
| + DCHECK(resource->image_id);
|
| + DCHECK(resource->gpu_memory_buffer);
|
| + gpu_memory_buffer_ = resource->gpu_memory_buffer;
|
| +}
|
| +
|
| +ResourceProvider::ScopedReadLockGpuMemoryBuffer::
|
| + ~ScopedReadLockGpuMemoryBuffer() {
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| + resource_provider_->UnlockForRead(resource_id_);
|
| +}
|
| +
|
| +gfx::GpuMemoryBuffer*
|
| +ResourceProvider::ScopedReadLockGpuMemoryBuffer::GetGpuMemoryBuffer() {
|
| + return gpu_memory_buffer_;
|
| +}
|
| +
|
| ResourceProvider::ScopedWriteLockGr::ScopedWriteLockGr(
|
| ResourceProvider* resource_provider,
|
| ResourceProvider::ResourceId resource_id)
|
|
|