Index: content/common/gpu/client/gpu_memory_buffer_impl_linux.cc |
diff --git a/content/common/gpu/client/gpu_memory_buffer_impl_linux.cc b/content/common/gpu/client/gpu_memory_buffer_impl_linux.cc |
index ffd4e381c7d9276e27d51e5c9d027ecca96dd33c..8da027bbb5b0bb475b10e31c3b8ed5fdfe4a708d 100644 |
--- a/content/common/gpu/client/gpu_memory_buffer_impl_linux.cc |
+++ b/content/common/gpu/client/gpu_memory_buffer_impl_linux.cc |
@@ -8,15 +8,51 @@ |
namespace content { |
+// static |
scoped_ptr<GpuMemoryBufferImpl> GpuMemoryBufferImpl::Create( |
+ const gfx::Size& size, |
+ unsigned internalformat, |
+ unsigned usage) { |
+ if (GpuMemoryBufferImplShm::IsConfigurationSupported( |
+ size, internalformat, usage)) { |
+ scoped_ptr<GpuMemoryBufferImplShm> buffer( |
+ new GpuMemoryBufferImplShm(size, internalformat)); |
+ if (!buffer->Initialize()) |
+ return scoped_ptr<GpuMemoryBufferImpl>(); |
+ |
+ return buffer.PassAs<GpuMemoryBufferImpl>(); |
+ } |
+ |
+ return scoped_ptr<GpuMemoryBufferImpl>(); |
+} |
+ |
+// static |
+void GpuMemoryBufferImpl::AllocateForChildProcess( |
+ const gfx::Size& size, |
+ unsigned internalformat, |
+ unsigned usage, |
+ base::ProcessHandle child_process, |
+ gfx::GpuMemoryBufferHandle* handle) { |
+ if (GpuMemoryBufferImplShm::IsConfigurationSupported( |
+ size, internalformat, usage)) { |
+ GpuMemoryBufferImplShm::AllocateSharedMemoryForChildProcess( |
+ size, internalformat, child_process, handle); |
+ return; |
+ } |
+ |
+ handle->type = gfx::EMPTY_BUFFER; |
+} |
+ |
+// static |
+scoped_ptr<GpuMemoryBufferImpl> GpuMemoryBufferImpl::CreateFromHandle( |
gfx::GpuMemoryBufferHandle handle, |
- gfx::Size size, |
+ const gfx::Size& size, |
unsigned internalformat) { |
switch (handle.type) { |
case gfx::SHARED_MEMORY_BUFFER: { |
scoped_ptr<GpuMemoryBufferImplShm> buffer( |
new GpuMemoryBufferImplShm(size, internalformat)); |
- if (!buffer->Initialize(handle)) |
+ if (!buffer->InitializeFromHandle(handle)) |
return scoped_ptr<GpuMemoryBufferImpl>(); |
return buffer.PassAs<GpuMemoryBufferImpl>(); |