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 fe2681bf051df7b4e5efe3aef6b7db461204fe2e..399e6c2c9157b5a1ac86851a1313722add54d30c 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,15 @@ namespace { |
base::StaticAtomicSequenceNumber g_next_buffer_id; |
+void AllocatedOzoneNativeBuffer( |
+ const gfx::Size& size, |
+ unsigned internalformat, |
+ const GpuMemoryBufferImpl::CreationCallback& callback, |
+ const gfx::GpuMemoryBufferHandle& handle) { |
+ callback.Run( |
+ GpuMemoryBufferImpl::CreateFromHandle(handle, size, internalformat)); |
+} |
+ |
} // namespace |
GpuMemoryBufferImplOzoneNativeBuffer::GpuMemoryBufferImplOzoneNativeBuffer( |
@@ -26,6 +35,26 @@ GpuMemoryBufferImplOzoneNativeBuffer::~GpuMemoryBufferImplOzoneNativeBuffer() { |
} |
// static |
+void GpuMemoryBufferImplOzoneNativeBuffer::Create( |
+ const gfx::Size& size, |
+ unsigned internalformat, |
+ unsigned usage, |
+ const CreationCallback& callback) { |
+ gfx::GpuMemoryBufferHandle handle; |
+ handle.global_id.primary_id = g_next_buffer_id.GetNext(); |
+ // This code makes an assumption that client_id for GPU channel using this |
+ // buffer is zero. |
+ handle.global_id.secondary_id = 0; |
+ handle.type = gfx::OZONE_NATIVE_BUFFER; |
+ GpuMemoryBufferFactoryHost::GetInstance()->CreateGpuMemoryBuffer( |
+ handle, |
+ size, |
+ internalformat, |
+ usage, |
+ base::Bind(&AllocatedOzoneNativeBuffer, size, internalformat, callback)); |
+} |
+ |
+// static |
void GpuMemoryBufferImplOzoneNativeBuffer::AllocateOzoneNativeBufferForChildId( |
const gfx::Size& size, |
unsigned internalformat, |
@@ -33,8 +62,7 @@ void GpuMemoryBufferImplOzoneNativeBuffer::AllocateOzoneNativeBufferForChildId( |
int child_id, |
const AllocationCallback& callback) { |
gfx::GpuMemoryBufferHandle handle; |
- // +1 ensures we always get non-zero IDs. |
- handle.global_id.primary_id = g_next_buffer_id.GetNext() + 1; |
+ handle.global_id.primary_id = g_next_buffer_id.GetNext(); |
handle.global_id.secondary_id = child_id; |
handle.type = gfx::OZONE_NATIVE_BUFFER; |
GpuMemoryBufferFactoryHost::GetInstance()->CreateGpuMemoryBuffer( |