Index: content/common/gpu/gpu_command_buffer_stub.cc |
=================================================================== |
--- content/common/gpu/gpu_command_buffer_stub.cc (revision 113511) |
+++ content/common/gpu/gpu_command_buffer_stub.cc (working copy) |
@@ -87,8 +87,6 @@ |
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); |
@@ -161,6 +159,8 @@ |
} |
void GpuCommandBufferStub::OnInitialize( |
+ base::SharedMemoryHandle ring_buffer, |
+ int32 size, |
IPC::Message* reply_message) { |
DCHECK(!command_buffer_.get()); |
@@ -168,7 +168,19 @@ |
command_buffer_.reset(new gpu::CommandBufferService); |
- if (!command_buffer_->Initialize()) { |
+#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)) { |
DLOG(ERROR) << "CommandBufferService failed to initialize.\n"; |
OnInitializeFailed(reply_message); |
return; |
@@ -250,9 +262,6 @@ |
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( |
@@ -278,12 +287,6 @@ |
"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) { |