Chromium Code Reviews| Index: content/browser/gpu/browser_gpu_channel_host_factory.cc |
| diff --git a/content/browser/gpu/browser_gpu_channel_host_factory.cc b/content/browser/gpu/browser_gpu_channel_host_factory.cc |
| index 7bc6fca71e6ea30a2cef3cb891b3dd3a7977a142..a60eb1e3f0f3147fb831aa1fee2dcf53173d8d1c 100644 |
| --- a/content/browser/gpu/browser_gpu_channel_host_factory.cc |
| +++ b/content/browser/gpu/browser_gpu_channel_host_factory.cc |
| @@ -9,8 +9,9 @@ |
| #include "content/browser/gpu/gpu_data_manager_impl.h" |
| #include "content/browser/gpu/gpu_process_host.h" |
| #include "content/browser/gpu/gpu_surface_tracker.h" |
| -#include "content/common/gpu/gpu_messages.h" |
| #include "content/common/child_process_host_impl.h" |
| +#include "content/common/gpu/client/gpu_memory_buffer_impl.h" |
| +#include "content/common/gpu/gpu_messages.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/common/content_client.h" |
| #include "ipc/ipc_forwarding_message_filter.h" |
| @@ -284,6 +285,28 @@ GpuChannelHost* BrowserGpuChannelHostFactory::EstablishGpuChannelSync( |
| return gpu_channel_.get(); |
| } |
| +scoped_ptr<gfx::GpuMemoryBuffer> |
| + BrowserGpuChannelHostFactory::AllocateGpuMemoryBuffer( |
| + size_t width, |
| + size_t height, |
| + unsigned internalformat) { |
| + DCHECK(GpuMemoryBufferImpl::IsFormatValid(internalformat)); |
| + if (!GpuMemoryBufferImpl::IsFormatValid(internalformat)) |
| + return scoped_ptr<gfx::GpuMemoryBuffer>(); |
|
piman
2013/10/21 21:57:00
nit: either DCHECK or test, but not both.
If the c
reveman
2013/10/22 16:26:11
Removed the DCHECK.
|
| + |
| + size_t size = width * height * |
| + GpuMemoryBufferImpl::BytesPerPixel(internalformat); |
| + scoped_ptr<base::SharedMemory> shm(new base::SharedMemory()); |
| + if (!shm->CreateAnonymous(size)) |
| + return scoped_ptr<gfx::GpuMemoryBuffer>(); |
| + |
| + return make_scoped_ptr<gfx::GpuMemoryBuffer>( |
| + new GpuMemoryBufferImpl(shm.Pass(), |
| + width, |
| + height, |
| + internalformat)); |
| +} |
| + |
| // static |
| void BrowserGpuChannelHostFactory::AddFilterOnIO( |
| int host_id, |