Index: content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc |
diff --git a/content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc b/content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc |
index cb5c4a5166f1c51506e0435774c0535359cbd34f..411b86f6ed7d45efc57d2c6c21dbe2f50fb4dd04 100644 |
--- a/content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc |
+++ b/content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc |
@@ -14,6 +14,9 @@ namespace { |
base::StaticAtomicSequenceNumber g_next_buffer_id; |
+void Noop() { |
+} |
+ |
void GpuMemoryBufferCreated( |
const gfx::Size& size, |
unsigned internalformat, |
@@ -21,14 +24,8 @@ void GpuMemoryBufferCreated( |
const gfx::GpuMemoryBufferHandle& handle) { |
DCHECK_EQ(gfx::OZONE_NATIVE_BUFFER, handle.type); |
- scoped_ptr<GpuMemoryBufferImplOzoneNativeBuffer> buffer( |
- new GpuMemoryBufferImplOzoneNativeBuffer(size, internalformat)); |
- if (!buffer->InitializeFromHandle(handle)) { |
- callback.Run(scoped_ptr<GpuMemoryBufferImpl>()); |
- return; |
- } |
- |
- callback.Run(buffer.PassAs<GpuMemoryBufferImpl>()); |
+ callback.Run(GpuMemoryBufferImplOzoneNativeBuffer::CreateFromHandle( |
+ handle, size, internalformat, base::Bind(&Noop))); |
} |
void GpuMemoryBufferCreatedForChildProcess( |
@@ -43,8 +40,10 @@ void GpuMemoryBufferCreatedForChildProcess( |
GpuMemoryBufferImplOzoneNativeBuffer::GpuMemoryBufferImplOzoneNativeBuffer( |
const gfx::Size& size, |
- unsigned internalformat) |
- : GpuMemoryBufferImpl(size, internalformat) { |
+ unsigned internalformat, |
+ const DestructionCallback& callback, |
+ const gfx::GpuMemoryBufferId& id) |
+ : GpuMemoryBufferImpl(size, internalformat, callback), id_(id) { |
} |
GpuMemoryBufferImplOzoneNativeBuffer::~GpuMemoryBufferImplOzoneNativeBuffer() { |
@@ -70,8 +69,7 @@ void GpuMemoryBufferImplOzoneNativeBuffer::Create( |
} |
// static |
-void |
-GpuMemoryBufferImplOzoneNativeBuffer::AllocateOzoneNativeBufferForChildProcess( |
+void GpuMemoryBufferImplOzoneNativeBuffer::AllocateForChildProcess( |
const gfx::Size& size, |
unsigned internalformat, |
unsigned usage, |
@@ -90,6 +88,20 @@ GpuMemoryBufferImplOzoneNativeBuffer::AllocateOzoneNativeBufferForChildProcess( |
} |
// static |
+scoped_ptr<GpuMemoryBufferImpl> |
+GpuMemoryBufferImplOzoneNativeBuffer::CreateFromHandle( |
+ const gfx::GpuMemoryBufferHandle& handle, |
+ const gfx::Size& size, |
+ unsigned internalformat, |
+ const DestructionCallback& callback) { |
+ DCHECK(IsFormatSupported(internalformat)); |
+ |
+ return make_scoped_ptr<GpuMemoryBufferImpl>( |
+ new GpuMemoryBufferImplOzoneNativeBuffer( |
+ size, internalformat, callback, handle.global_id)); |
+} |
+ |
+// static |
bool GpuMemoryBufferImplOzoneNativeBuffer::IsFormatSupported( |
unsigned internalformat) { |
switch (internalformat) { |
@@ -117,12 +129,6 @@ bool GpuMemoryBufferImplOzoneNativeBuffer::IsConfigurationSupported( |
return IsFormatSupported(internalformat) && IsUsageSupported(usage); |
} |
-bool GpuMemoryBufferImplOzoneNativeBuffer::InitializeFromHandle( |
- const gfx::GpuMemoryBufferHandle& handle) { |
- id_ = handle.global_id; |
- return true; |
-} |
- |
void* GpuMemoryBufferImplOzoneNativeBuffer::Map() { |
NOTREACHED(); |
return NULL; |