Chromium Code Reviews| Index: services/ui/public/cpp/mojo_gpu_memory_buffer.cc |
| diff --git a/services/ui/public/cpp/mojo_gpu_memory_buffer.cc b/services/ui/public/cpp/mojo_gpu_memory_buffer.cc |
| index fcc89b5d614eb862450b70a5c9628b473c8728dd..fad3ea0797257b7928def6a9f3a12ee8da74273e 100644 |
| --- a/services/ui/public/cpp/mojo_gpu_memory_buffer.cc |
| +++ b/services/ui/public/cpp/mojo_gpu_memory_buffer.cc |
| @@ -27,6 +27,7 @@ MojoGpuMemoryBufferImpl::MojoGpuMemoryBufferImpl( |
| // TODO(rjkroege): Support running a destructor callback as necessary. |
| MojoGpuMemoryBufferImpl::~MojoGpuMemoryBufferImpl() {} |
| +// static |
| std::unique_ptr<gfx::GpuMemoryBuffer> MojoGpuMemoryBufferImpl::Create( |
| const gfx::Size& size, |
| gfx::BufferFormat format, |
| @@ -53,6 +54,21 @@ std::unique_ptr<gfx::GpuMemoryBuffer> MojoGpuMemoryBufferImpl::Create( |
| new MojoGpuMemoryBufferImpl(size, format, std::move(shared_memory))); |
| } |
| +// static |
| +std::unique_ptr<gfx::GpuMemoryBuffer> MojoGpuMemoryBufferImpl::CreateFromHandle( |
| + const gfx::GpuMemoryBufferHandle& handle, |
| + const gfx::Size& size, |
| + gfx::BufferFormat format, |
| + gfx::BufferUsage usage) { |
| + DCHECK_EQ(handle.type, gfx::SHARED_MEMORY_BUFFER); |
| + DCHECK(base::SharedMemory::IsHandleValid(handle.handle)); |
| + const bool readonly = false; |
| + auto shared_memory = |
| + base::MakeUnique<base::SharedMemory>(handle.handle, readonly); |
| + return base::WrapUnique<gfx::GpuMemoryBuffer>( |
|
dcheng
2016/08/17 22:59:00
Nit: Omit the template parameter here (WrapUnique
Peng
2016/08/17 23:28:17
Done.
|
| + new MojoGpuMemoryBufferImpl(size, format, std::move(shared_memory))); |
| +} |
| + |
| MojoGpuMemoryBufferImpl* MojoGpuMemoryBufferImpl::FromClientBuffer( |
| ClientBuffer buffer) { |
| return reinterpret_cast<MojoGpuMemoryBufferImpl*>(buffer); |