| Index: chrome/plugin/command_buffer_stub.cc
|
| ===================================================================
|
| --- chrome/plugin/command_buffer_stub.cc (revision 37920)
|
| +++ chrome/plugin/command_buffer_stub.cc (working copy)
|
| @@ -5,14 +5,17 @@
|
| #include "base/process_util.h"
|
| #include "base/shared_memory.h"
|
| #include "chrome/common/command_buffer_messages.h"
|
| +#include "chrome/common/plugin_messages.h"
|
| #include "chrome/plugin/command_buffer_stub.h"
|
| #include "chrome/plugin/plugin_channel.h"
|
|
|
| using gpu::Buffer;
|
|
|
| CommandBufferStub::CommandBufferStub(PluginChannel* channel,
|
| + int plugin_host_route_id,
|
| gfx::PluginWindowHandle window)
|
| : channel_(channel),
|
| + plugin_host_route_id_(plugin_host_route_id),
|
| window_(window) {
|
| route_id_ = channel->GenerateRouteID();
|
| channel->AddRoute(route_id_, this, false);
|
| @@ -58,6 +61,11 @@
|
| command_buffer_->SetPutOffsetChangeCallback(
|
| NewCallback(processor_.get(),
|
| &gpu::GPUProcessor::ProcessCommands));
|
| +#if defined(OS_MACOSX)
|
| + processor_->SetSwapBuffersCallback(
|
| + NewCallback(this,
|
| + &CommandBufferStub::SwapBuffersCallback));
|
| +#endif
|
| buffer.shared_memory->ShareToProcess(peer_handle, ring_buffer);
|
| } else {
|
| processor_ = NULL;
|
| @@ -108,6 +116,24 @@
|
| base::CloseProcessHandle(peer_handle);
|
| }
|
|
|
| +#if defined(OS_MACOSX)
|
| +void CommandBufferStub::OnSetWindowSize(int32 width, int32 height) {
|
| + uint64 new_backing_store = processor_->SetWindowSize(width, height);
|
| + if (new_backing_store) {
|
| + Send(new PluginHostMsg_GPUPluginSetIOSurface(plugin_host_route_id_,
|
| + window_,
|
| + width,
|
| + height,
|
| + new_backing_store));
|
| + }
|
| +}
|
| +
|
| +void CommandBufferStub::SwapBuffersCallback() {
|
| + Send(new PluginHostMsg_GPUPluginBuffersSwapped(plugin_host_route_id_,
|
| + window_));
|
| +}
|
| +#endif
|
| +
|
| void CommandBufferStub::OnMessageReceived(const IPC::Message& msg) {
|
| IPC_BEGIN_MESSAGE_MAP(CommandBufferStub, msg)
|
| IPC_MESSAGE_HANDLER(CommandBufferMsg_Initialize, OnInitialize);
|
| @@ -119,6 +145,9 @@
|
| OnDestroyTransferBuffer);
|
| IPC_MESSAGE_HANDLER(CommandBufferMsg_GetTransferBuffer,
|
| OnGetTransferBuffer);
|
| +#if defined(OS_MACOSX)
|
| + IPC_MESSAGE_HANDLER(CommandBufferMsg_SetWindowSize, OnSetWindowSize);
|
| +#endif
|
| IPC_MESSAGE_UNHANDLED_ERROR()
|
| IPC_END_MESSAGE_MAP()
|
| }
|
|
|