| Index: cc/resources/one_copy_raster_worker_pool.cc
|
| diff --git a/cc/resources/one_copy_raster_worker_pool.cc b/cc/resources/one_copy_raster_worker_pool.cc
|
| index fba320f108f49e9456238ed395e15d9d7a62c397..5b8a5c16ea7dd47fce9aa264aef44bc80f1a33b6 100644
|
| --- a/cc/resources/one_copy_raster_worker_pool.cc
|
| +++ b/cc/resources/one_copy_raster_worker_pool.cc
|
| @@ -15,6 +15,7 @@
|
| #include "cc/resources/scoped_resource.h"
|
| #include "gpu/command_buffer/client/gles2_interface.h"
|
| #include "third_party/skia/include/utils/SkNullCanvas.h"
|
| +#include "ui/gfx/gpu_memory_buffer.h"
|
|
|
| namespace cc {
|
| namespace {
|
| @@ -47,23 +48,26 @@ class RasterBufferImpl : public RasterBuffer {
|
|
|
| // Overridden from RasterBuffer:
|
| virtual skia::RefPtr<SkCanvas> AcquireSkCanvas() override {
|
| - buffer_ = lock_->gpu_memory_buffer();
|
| - if (!buffer_)
|
| + gfx::GpuMemoryBuffer* gpu_memory_buffer = lock_->gpu_memory_buffer();
|
| + if (!gpu_memory_buffer)
|
| return skia::AdoptRef(SkCreateNullCanvas());
|
|
|
| + buffer_ = gpu_memory_buffer->Map();
|
| RasterWorkerPool::AcquireBitmapForBuffer(&bitmap_,
|
| buffer_,
|
| resource_->format(),
|
| resource_->size(),
|
| - lock_->stride());
|
| + gpu_memory_buffer->GetStride());
|
| return skia::AdoptRef(new SkCanvas(bitmap_));
|
| }
|
| virtual void ReleaseSkCanvas(const skia::RefPtr<SkCanvas>& canvas) override {
|
| - if (!buffer_)
|
| + gfx::GpuMemoryBuffer* gpu_memory_buffer = lock_->gpu_memory_buffer();
|
| + if (!gpu_memory_buffer)
|
| return;
|
|
|
| RasterWorkerPool::ReleaseBitmapForBuffer(
|
| &bitmap_, buffer_, resource_->format());
|
| + gpu_memory_buffer->Unmap();
|
| }
|
|
|
| private:
|
|
|