diff options
author | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-05 21:53:50 +0000 |
---|---|---|
committer | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-05 21:53:50 +0000 |
commit | 246a7045b9c45620fd725210aac51322e611c83f (patch) | |
tree | 6bdce605ae758c282a2b27e92a6b223d98b8d46a /chrome/plugin | |
parent | c3240722a63ff142684575e3ea4eb89915edae72 (diff) | |
download | chromium_src-246a7045b9c45620fd725210aac51322e611c83f.zip chromium_src-246a7045b9c45620fd725210aac51322e611c83f.tar.gz chromium_src-246a7045b9c45620fd725210aac51322e611c83f.tar.bz2 |
Added support for opening a GPU command buffer from a renderer processes through a GPU channel.
Probably only works in windows only so far.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/657046
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40783 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/plugin')
-rw-r--r-- | chrome/plugin/command_buffer_stub.cc | 24 | ||||
-rw-r--r-- | chrome/plugin/command_buffer_stub_win.cc | 4 | ||||
-rw-r--r-- | chrome/plugin/webplugin_delegate_stub.cc | 8 | ||||
-rw-r--r-- | chrome/plugin/webplugin_delegate_stub.h | 2 |
4 files changed, 24 insertions, 14 deletions
diff --git a/chrome/plugin/command_buffer_stub.cc b/chrome/plugin/command_buffer_stub.cc index d8cc7d4..5ae203d 100644 --- a/chrome/plugin/command_buffer_stub.cc +++ b/chrome/plugin/command_buffer_stub.cc @@ -5,7 +5,7 @@ #include "base/callback.h" #include "base/scoped_open_process.h" #include "base/shared_memory.h" -#include "chrome/common/command_buffer_messages.h" +#include "chrome/common/gpu_messages.h" #include "chrome/common/plugin_messages.h" #include "chrome/plugin/command_buffer_stub.h" #include "chrome/plugin/plugin_channel.h" @@ -29,19 +29,19 @@ CommandBufferStub::~CommandBufferStub() { void CommandBufferStub::OnMessageReceived(const IPC::Message& message) { IPC_BEGIN_MESSAGE_MAP(CommandBufferStub, message) - IPC_MESSAGE_HANDLER(CommandBufferMsg_Initialize, OnInitialize); - IPC_MESSAGE_HANDLER(CommandBufferMsg_GetState, OnGetState); - IPC_MESSAGE_HANDLER(CommandBufferMsg_AsyncGetState, OnAsyncGetState); - IPC_MESSAGE_HANDLER(CommandBufferMsg_Flush, OnFlush); - IPC_MESSAGE_HANDLER(CommandBufferMsg_AsyncFlush, OnAsyncFlush); - IPC_MESSAGE_HANDLER(CommandBufferMsg_CreateTransferBuffer, + IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_Initialize, OnInitialize); + IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_GetState, OnGetState); + IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_AsyncGetState, OnAsyncGetState); + IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_Flush, OnFlush); + IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_AsyncFlush, OnAsyncFlush); + IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_CreateTransferBuffer, OnCreateTransferBuffer); - IPC_MESSAGE_HANDLER(CommandBufferMsg_DestroyTransferBuffer, + IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_DestroyTransferBuffer, OnDestroyTransferBuffer); - IPC_MESSAGE_HANDLER(CommandBufferMsg_GetTransferBuffer, + IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_GetTransferBuffer, OnGetTransferBuffer); #if defined(OS_MACOSX) - IPC_MESSAGE_HANDLER(CommandBufferMsg_SetWindowSize, OnSetWindowSize); + IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SetWindowSize, OnSetWindowSize); #endif IPC_MESSAGE_UNHANDLED_ERROR() IPC_END_MESSAGE_MAP() @@ -127,7 +127,7 @@ void CommandBufferStub::OnGetState(gpu::CommandBuffer::State* state) { void CommandBufferStub::OnAsyncGetState() { gpu::CommandBuffer::State state = command_buffer_->GetState(); - Send(new CommandBufferMsg_UpdateState(route_id_, state)); + Send(new GpuCommandBufferMsg_UpdateState(route_id_, state)); } void CommandBufferStub::OnFlush(int32 put_offset, @@ -137,7 +137,7 @@ void CommandBufferStub::OnFlush(int32 put_offset, void CommandBufferStub::OnAsyncFlush(int32 put_offset) { gpu::CommandBuffer::State state = command_buffer_->Flush(put_offset); - Send(new CommandBufferMsg_UpdateState(route_id_, state)); + Send(new GpuCommandBufferMsg_UpdateState(route_id_, state)); } void CommandBufferStub::OnCreateTransferBuffer(int32 size, int32* id) { diff --git a/chrome/plugin/command_buffer_stub_win.cc b/chrome/plugin/command_buffer_stub_win.cc index 656bbd1..abf13b1 100644 --- a/chrome/plugin/command_buffer_stub_win.cc +++ b/chrome/plugin/command_buffer_stub_win.cc @@ -4,7 +4,7 @@ #include <windows.h> -#include "chrome/common/command_buffer_messages.h" +#include "chrome/common/gpu_messages.h" #include "chrome/plugin/command_buffer_stub.h" namespace { @@ -45,7 +45,7 @@ LRESULT WINAPI WndProc(HWND handle, } // namespace anonymous void CommandBufferStub::NotifyRepaint() { - Send(new CommandBufferMsg_NotifyRepaint(route_id_)); + Send(new GpuCommandBufferMsg_NotifyRepaint(route_id_)); } bool CommandBufferStub::InitializePlatformSpecific() { diff --git a/chrome/plugin/webplugin_delegate_stub.cc b/chrome/plugin/webplugin_delegate_stub.cc index 7654058..e3d477e 100644 --- a/chrome/plugin/webplugin_delegate_stub.cc +++ b/chrome/plugin/webplugin_delegate_stub.cc @@ -140,6 +140,8 @@ void WebPluginDelegateStub::OnMessageReceived(const IPC::Message& msg) { OnHTTPRangeRequestReply) IPC_MESSAGE_HANDLER(PluginMsg_CreateCommandBuffer, OnCreateCommandBuffer) + IPC_MESSAGE_HANDLER(PluginMsg_DestroyCommandBuffer, + OnDestroyCommandBuffer) #if defined(OS_MACOSX) IPC_MESSAGE_HANDLER(PluginMsg_SetFakeGPUPluginWindowHandle, OnSetFakeGPUPluginWindowHandle) @@ -406,6 +408,12 @@ void WebPluginDelegateStub::OnCreateCommandBuffer(int* route_id) { #endif // ENABLE_GPU } +void WebPluginDelegateStub::OnDestroyCommandBuffer() { +#if defined(ENABLE_GPU) + command_buffer_stub_.reset(); +#endif +} + void WebPluginDelegateStub::CreateSharedBuffer( uint32 size, base::SharedMemory* shared_buf, diff --git a/chrome/plugin/webplugin_delegate_stub.h b/chrome/plugin/webplugin_delegate_stub.h index 36fda08..1bbd04d 100644 --- a/chrome/plugin/webplugin_delegate_stub.h +++ b/chrome/plugin/webplugin_delegate_stub.h @@ -98,6 +98,8 @@ class WebPluginDelegateStub : public IPC::Channel::Listener, int notify_id); void OnHTTPRangeRequestReply(unsigned long resource_id, int range_request_id); void OnCreateCommandBuffer(int* route_id); + void OnDestroyCommandBuffer(); + void CreateSharedBuffer(uint32 size, base::SharedMemory* shared_buf, base::SharedMemoryHandle* remote_handle); |