Index: content/common/gpu/gpu_command_buffer_stub.cc |
diff --git a/content/common/gpu/gpu_command_buffer_stub.cc b/content/common/gpu/gpu_command_buffer_stub.cc |
index ff2ab824a401023f6a52dbfafb7fc2bdce2a2df6..8d171172df60bbcb6a278e30b024ec6b3fa7e043 100644 |
--- a/content/common/gpu/gpu_command_buffer_stub.cc |
+++ b/content/common/gpu/gpu_command_buffer_stub.cc |
@@ -87,6 +87,8 @@ bool GpuCommandBufferStub::OnMessageReceived(const IPC::Message& message) { |
IPC_BEGIN_MESSAGE_MAP(GpuCommandBufferStub, message) |
IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_Initialize, |
OnInitialize); |
+ IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_SetGetBuffer, |
+ OnSetGetBuffer); |
IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_SetParent, |
OnSetParent); |
IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_GetState, OnGetState); |
@@ -163,8 +165,6 @@ void GpuCommandBufferStub::OnInitializeFailed(IPC::Message* reply_message) { |
} |
void GpuCommandBufferStub::OnInitialize( |
- base::SharedMemoryHandle ring_buffer, |
- int32 size, |
IPC::Message* reply_message) { |
DCHECK(!command_buffer_.get()); |
@@ -172,19 +172,7 @@ void GpuCommandBufferStub::OnInitialize( |
command_buffer_.reset(new gpu::CommandBufferService); |
-#if defined(OS_WIN) |
- // Windows dups the shared memory handle it receives into the current process |
- // and closes it when this variable goes out of scope. |
- base::SharedMemory shared_memory(ring_buffer, |
- false, |
- channel_->renderer_process()); |
-#else |
- // POSIX receives a dup of the shared memory handle and closes the dup when |
- // this variable goes out of scope. |
- base::SharedMemory shared_memory(ring_buffer, false); |
-#endif |
- |
- if (!command_buffer_->Initialize(&shared_memory, size)) { |
+ if (!command_buffer_->Initialize()) { |
DLOG(ERROR) << "CommandBufferService failed to initialize.\n"; |
OnInitializeFailed(reply_message); |
return; |
@@ -266,6 +254,9 @@ void GpuCommandBufferStub::OnInitialize( |
command_buffer_->SetPutOffsetChangeCallback( |
base::Bind(&gpu::GpuScheduler::PutChanged, |
base::Unretained(scheduler_.get()))); |
+ command_buffer_->SetGetBufferChangeCallback( |
+ base::Bind(&gpu::GpuScheduler::SetGetBuffer, |
+ base::Unretained(scheduler_.get()))); |
command_buffer_->SetParseErrorCallback( |
base::Bind(&GpuCommandBufferStub::OnParseError, base::Unretained(this))); |
scheduler_->SetScheduledCallback( |
@@ -291,6 +282,12 @@ void GpuCommandBufferStub::OnInitialize( |
"offscreen", surface_->IsOffscreen()); |
} |
+void GpuCommandBufferStub::OnSetGetBuffer( |
+ int32 shm_id, IPC::Message* reply_message) { |
+ command_buffer_->SetGetBuffer(shm_id); |
+ Send(reply_message); |
+} |
+ |
void GpuCommandBufferStub::OnSetParent(int32 parent_route_id, |
uint32 parent_texture_id, |
IPC::Message* reply_message) { |