diff options
Diffstat (limited to 'content/common')
14 files changed, 44 insertions, 36 deletions
diff --git a/content/common/gpu/client/gpu_memory_buffer_factory_host.h b/content/common/gpu/client/gpu_memory_buffer_factory_host.h index c206911..fc42b18 100644 --- a/content/common/gpu/client/gpu_memory_buffer_factory_host.h +++ b/content/common/gpu/client/gpu_memory_buffer_factory_host.h @@ -29,6 +29,7 @@ class CONTENT_EXPORT GpuMemoryBufferFactoryHost { gfx::GpuMemoryBuffer::Format format, gfx::GpuMemoryBuffer::Usage usage, int client_id, + int32 surface_id, const CreateGpuMemoryBufferCallback& callback) = 0; virtual void DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, int client_id, diff --git a/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc b/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc index 615cc93..3ac1b83 100644 --- a/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc +++ b/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc @@ -12,6 +12,7 @@ namespace content { namespace { const int kClientId = 1; +const int kSurfaceId = 0; class GpuMemoryBufferImplTest : public testing::TestWithParam<gfx::GpuMemoryBufferType> { @@ -32,7 +33,8 @@ class GpuMemoryBufferImplTest gfx::GpuMemoryBuffer::Format format, gfx::GpuMemoryBuffer::Usage usage) { ++buffer_count_; - return factory_->CreateGpuMemoryBuffer(id, size, format, usage, kClientId); + return factory_->CreateGpuMemoryBuffer(id, size, format, usage, kClientId, + kSurfaceId); } void DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, uint32 sync_point) { diff --git a/content/common/gpu/gpu_channel_manager.cc b/content/common/gpu/gpu_channel_manager.cc index 9e5fee4..131c7b5 100644 --- a/content/common/gpu/gpu_channel_manager.cc +++ b/content/common/gpu/gpu_channel_manager.cc @@ -59,23 +59,15 @@ class GpuChannelManagerMessageFilter : public IPC::MessageFilter { protected: ~GpuChannelManagerMessageFilter() override {} - void OnCreateGpuMemoryBuffer(gfx::GpuMemoryBufferId id, - const gfx::Size& size, - gfx::GpuMemoryBuffer::Format format, - gfx::GpuMemoryBuffer::Usage usage, - int client_id) { + void OnCreateGpuMemoryBuffer( + const GpuMsg_CreateGpuMemoryBuffer_Params& params) { TRACE_EVENT2("gpu", "GpuChannelManagerMessageFilter::OnCreateGpuMemoryBuffer", - "id", - id, - "client_id", - client_id); + "id", params.id, "client_id", params.client_id); sender_->Send(new GpuHostMsg_GpuMemoryBufferCreated( - gpu_memory_buffer_factory_->CreateGpuMemoryBuffer(id, - size, - format, - usage, - client_id))); + gpu_memory_buffer_factory_->CreateGpuMemoryBuffer( + params.id, params.size, params.format, params.usage, + params.client_id, params.surface_handle))); } IPC::Sender* sender_; diff --git a/content/common/gpu/gpu_memory_buffer_factory.h b/content/common/gpu/gpu_memory_buffer_factory.h index 7df2773..467944b 100644 --- a/content/common/gpu/gpu_memory_buffer_factory.h +++ b/content/common/gpu/gpu_memory_buffer_factory.h @@ -12,6 +12,7 @@ #include "content/common/content_export.h" #include "ui/gfx/geometry/size.h" #include "ui/gfx/gpu_memory_buffer.h" +#include "ui/gfx/native_widget_types.h" namespace gfx { class GLImage; @@ -52,7 +53,8 @@ class CONTENT_EXPORT GpuMemoryBufferFactory { const gfx::Size& size, gfx::GpuMemoryBuffer::Format format, gfx::GpuMemoryBuffer::Usage usage, - int client_id) = 0; + int client_id, + gfx::PluginWindowHandle surface_handle) = 0; // Destroys GPU memory buffer identified by |id|. virtual void DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, diff --git a/content/common/gpu/gpu_memory_buffer_factory_io_surface.cc b/content/common/gpu/gpu_memory_buffer_factory_io_surface.cc index e6954bf..ba00ea2 100644 --- a/content/common/gpu/gpu_memory_buffer_factory_io_surface.cc +++ b/content/common/gpu/gpu_memory_buffer_factory_io_surface.cc @@ -92,7 +92,8 @@ GpuMemoryBufferFactoryIOSurface::CreateGpuMemoryBuffer( const gfx::Size& size, gfx::GpuMemoryBuffer::Format format, gfx::GpuMemoryBuffer::Usage usage, - int client_id) { + int client_id, + gfx::PluginWindowHandle surface_handle) { base::ScopedCFTypeRef<CFMutableDictionaryRef> properties; properties.reset(CFDictionaryCreateMutable(kCFAllocatorDefault, 0, diff --git a/content/common/gpu/gpu_memory_buffer_factory_io_surface.h b/content/common/gpu/gpu_memory_buffer_factory_io_surface.h index e636bbd..0fe8681 100644 --- a/content/common/gpu/gpu_memory_buffer_factory_io_surface.h +++ b/content/common/gpu/gpu_memory_buffer_factory_io_surface.h @@ -40,7 +40,8 @@ class GpuMemoryBufferFactoryIOSurface : public GpuMemoryBufferFactory, const gfx::Size& size, gfx::GpuMemoryBuffer::Format format, gfx::GpuMemoryBuffer::Usage usage, - int client_id) override; + int client_id, + gfx::PluginWindowHandle surface_handle) override; void DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, int client_id) override; gpu::ImageFactory* AsImageFactory() override; diff --git a/content/common/gpu/gpu_memory_buffer_factory_ozone_native_buffer.cc b/content/common/gpu/gpu_memory_buffer_factory_ozone_native_buffer.cc index c4f8e82..6185150 100644 --- a/content/common/gpu/gpu_memory_buffer_factory_ozone_native_buffer.cc +++ b/content/common/gpu/gpu_memory_buffer_factory_ozone_native_buffer.cc @@ -56,9 +56,10 @@ GpuMemoryBufferFactoryOzoneNativeBuffer::CreateGpuMemoryBuffer( const gfx::Size& size, gfx::GpuMemoryBuffer::Format format, gfx::GpuMemoryBuffer::Usage usage, - int client_id) { + int client_id, + gfx::PluginWindowHandle surface_handle) { if (!ozone_native_buffer_factory_.CreateGpuMemoryBuffer( - id, size, format, usage, client_id)) { + id, size, format, usage, client_id, surface_handle)) { return gfx::GpuMemoryBufferHandle(); } gfx::GpuMemoryBufferHandle handle; diff --git a/content/common/gpu/gpu_memory_buffer_factory_ozone_native_buffer.h b/content/common/gpu/gpu_memory_buffer_factory_ozone_native_buffer.h index 9b311de..5cdce58 100644 --- a/content/common/gpu/gpu_memory_buffer_factory_ozone_native_buffer.h +++ b/content/common/gpu/gpu_memory_buffer_factory_ozone_native_buffer.h @@ -36,7 +36,8 @@ class GpuMemoryBufferFactoryOzoneNativeBuffer : public GpuMemoryBufferFactory, const gfx::Size& size, gfx::GpuMemoryBuffer::Format format, gfx::GpuMemoryBuffer::Usage usage, - int client_id) override; + int client_id, + gfx::PluginWindowHandle surface_handle) override; void DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, int client_id) override; gpu::ImageFactory* AsImageFactory() override; diff --git a/content/common/gpu/gpu_memory_buffer_factory_shared_memory.cc b/content/common/gpu/gpu_memory_buffer_factory_shared_memory.cc index 3a65c7c..9a4bdcf 100644 --- a/content/common/gpu/gpu_memory_buffer_factory_shared_memory.cc +++ b/content/common/gpu/gpu_memory_buffer_factory_shared_memory.cc @@ -35,7 +35,8 @@ GpuMemoryBufferFactorySharedMemory::CreateGpuMemoryBuffer( const gfx::Size& size, gfx::GpuMemoryBuffer::Format format, gfx::GpuMemoryBuffer::Usage usage, - int client_id) { + int client_id, + gfx::PluginWindowHandle surface_handle) { base::SharedMemory shared_memory; if (!shared_memory.CreateAnonymous( size.GetArea() * GpuMemoryBufferImpl::BytesPerPixel(format))) diff --git a/content/common/gpu/gpu_memory_buffer_factory_shared_memory.h b/content/common/gpu/gpu_memory_buffer_factory_shared_memory.h index 521021c..b2a9c70 100644 --- a/content/common/gpu/gpu_memory_buffer_factory_shared_memory.h +++ b/content/common/gpu/gpu_memory_buffer_factory_shared_memory.h @@ -31,7 +31,8 @@ class GpuMemoryBufferFactorySharedMemory : public GpuMemoryBufferFactory, const gfx::Size& size, gfx::GpuMemoryBuffer::Format format, gfx::GpuMemoryBuffer::Usage usage, - int client_id) override; + int client_id, + gfx::PluginWindowHandle surface_handle) override; void DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, int client_id) override; gpu::ImageFactory* AsImageFactory() override; diff --git a/content/common/gpu/gpu_memory_buffer_factory_surface_texture.cc b/content/common/gpu/gpu_memory_buffer_factory_surface_texture.cc index 2410e61..1b2c881 100644 --- a/content/common/gpu/gpu_memory_buffer_factory_surface_texture.cc +++ b/content/common/gpu/gpu_memory_buffer_factory_surface_texture.cc @@ -49,7 +49,8 @@ GpuMemoryBufferFactorySurfaceTexture::CreateGpuMemoryBuffer( const gfx::Size& size, gfx::GpuMemoryBuffer::Format format, gfx::GpuMemoryBuffer::Usage usage, - int client_id) { + int client_id, + gfx::PluginWindowHandle surface_handle) { // Note: this needs to be 0 as the surface texture implemenation will take // ownership of the texture and call glDeleteTextures when the GPU service // attaches the surface texture to a real texture id. glDeleteTextures diff --git a/content/common/gpu/gpu_memory_buffer_factory_surface_texture.h b/content/common/gpu/gpu_memory_buffer_factory_surface_texture.h index 57dfc94..fe47f69 100644 --- a/content/common/gpu/gpu_memory_buffer_factory_surface_texture.h +++ b/content/common/gpu/gpu_memory_buffer_factory_surface_texture.h @@ -38,7 +38,8 @@ class GpuMemoryBufferFactorySurfaceTexture : public GpuMemoryBufferFactory, const gfx::Size& size, gfx::GpuMemoryBuffer::Format format, gfx::GpuMemoryBuffer::Usage usage, - int client_id) override; + int client_id, + gfx::PluginWindowHandle surface_handle) override; void DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, int client_id) override; gpu::ImageFactory* AsImageFactory() override; diff --git a/content/common/gpu/gpu_memory_buffer_factory_unittest.cc b/content/common/gpu/gpu_memory_buffer_factory_unittest.cc index 174c36c..39186f1 100644 --- a/content/common/gpu/gpu_memory_buffer_factory_unittest.cc +++ b/content/common/gpu/gpu_memory_buffer_factory_unittest.cc @@ -30,16 +30,14 @@ class GpuMemoryBufferFactoryTest TEST_P(GpuMemoryBufferFactoryTest, CreateAndDestroy) { const int kBufferId = 1; const int kClientId = 1; + const int kSurfaceId = 0; gfx::Size buffer_size(1, 1); for (auto configuration : supported_configurations_) { gfx::GpuMemoryBufferHandle handle = factory_->CreateGpuMemoryBuffer( - kBufferId, - buffer_size, - configuration.format, - configuration.usage, - kClientId); + kBufferId, buffer_size, configuration.format, configuration.usage, + kClientId, kSurfaceId); EXPECT_EQ(handle.type, GetParam()); factory_->DestroyGpuMemoryBuffer(kBufferId, kClientId); } diff --git a/content/common/gpu/gpu_messages.h b/content/common/gpu/gpu_messages.h index 3f373bb..b860c56 100644 --- a/content/common/gpu/gpu_messages.h +++ b/content/common/gpu/gpu_messages.h @@ -77,6 +77,15 @@ IPC_STRUCT_BEGIN(GPUCreateCommandBufferConfig) IPC_STRUCT_MEMBER(gfx::GpuPreference, gpu_preference) IPC_STRUCT_END() +IPC_STRUCT_BEGIN(GpuMsg_CreateGpuMemoryBuffer_Params) +IPC_STRUCT_MEMBER(int32, id) +IPC_STRUCT_MEMBER(gfx::Size, size) +IPC_STRUCT_MEMBER(gfx::GpuMemoryBuffer::Format, format) +IPC_STRUCT_MEMBER(gfx::GpuMemoryBuffer::Usage, usage) +IPC_STRUCT_MEMBER(int32, client_id) +IPC_STRUCT_MEMBER(gfx::PluginWindowHandle, surface_handle) +IPC_STRUCT_END() + IPC_STRUCT_BEGIN(GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params) IPC_STRUCT_MEMBER(int32, surface_id) IPC_STRUCT_MEMBER(uint64, surface_handle) @@ -252,12 +261,8 @@ IPC_MESSAGE_CONTROL5(GpuMsg_CreateViewCommandBuffer, int32 /* route_id */) // Tells the GPU process to create a new gpu memory buffer. -IPC_MESSAGE_CONTROL5(GpuMsg_CreateGpuMemoryBuffer, - gfx::GpuMemoryBufferId, /* id */ - gfx::Size, /* size */ - gfx::GpuMemoryBuffer::Format, /* format */ - gfx::GpuMemoryBuffer::Usage, /* usage */ - int32 /* client_id */) +IPC_MESSAGE_CONTROL1(GpuMsg_CreateGpuMemoryBuffer, + GpuMsg_CreateGpuMemoryBuffer_Params) // Tells the GPU process to destroy buffer. IPC_MESSAGE_CONTROL3(GpuMsg_DestroyGpuMemoryBuffer, |