summaryrefslogtreecommitdiffstats
path: root/chrome/plugin
diff options
context:
space:
mode:
authorapatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-05 21:53:50 +0000
committerapatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-05 21:53:50 +0000
commit246a7045b9c45620fd725210aac51322e611c83f (patch)
tree6bdce605ae758c282a2b27e92a6b223d98b8d46a /chrome/plugin
parentc3240722a63ff142684575e3ea4eb89915edae72 (diff)
downloadchromium_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.cc24
-rw-r--r--chrome/plugin/command_buffer_stub_win.cc4
-rw-r--r--chrome/plugin/webplugin_delegate_stub.cc8
-rw-r--r--chrome/plugin/webplugin_delegate_stub.h2
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);