Chromium Code Reviews| Index: chrome/browser/gpu_process_host.cc |
| =================================================================== |
| --- chrome/browser/gpu_process_host.cc (revision 65702) |
| +++ chrome/browser/gpu_process_host.cc (working copy) |
| @@ -194,6 +194,10 @@ |
| OnAcceleratedSurfaceSetIOSurface) |
| IPC_MESSAGE_HANDLER(GpuHostMsg_AcceleratedSurfaceBuffersSwapped, |
| OnAcceleratedSurfaceBuffersSwapped) |
| +#elif defined(OS_WIN) |
| + IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuHostMsg_CreateCompositorHostWindow, |
| + OnCreateCompositorHostWindow) |
| + IPC_MESSAGE_HANDLER(GpuHostMsg_ScheduleComposite, OnScheduleComposite) |
| #endif |
| IPC_MESSAGE_UNHANDLED_ERROR() |
| IPC_END_MESSAGE_MAP() |
| @@ -342,6 +346,61 @@ |
| new BuffersSwappedDispatcher( |
| renderer_id, render_view_id, window, surface_id)); |
| } |
| + |
| +#elif defined(OS_WIN) |
| + |
| +namespace { |
| + |
| +void SendDelayedReply(IPC::Message* reply_msg) { |
|
apatrick_chromium
2010/11/11 22:32:15
I think some of this code might belong in GpuProce
nduca
2010/11/11 23:53:33
I don't have any religion here... this is largely
|
| + GpuProcessHost::Get()->Send(reply_msg); |
| +} |
| + |
| +void CreateCompositorHostWindowDispatcher(int32 renderer_id, |
|
apatrick_chromium
2010/11/11 22:32:15
Wrap first argument to next line.
nduca
2010/11/11 23:53:33
Done.
|
| + int32 render_view_id, |
| + IPC::Message* reply_msg) { |
| + |
| + RenderViewHost* host = RenderViewHost::FromID(renderer_id, |
| + render_view_id); |
| + DCHECK(host); |
| + |
| + RenderWidgetHostView* view = host->view(); |
| + DCHECK(view); |
| + gfx::PluginWindowHandle id = view->CreateCompositorHostWindow(); |
| + |
| + GpuHostMsg_CreateCompositorHostWindow::WriteReplyParams(reply_msg, id); |
| + |
| + // Have to reply from IO thread. |
| + BrowserThread::PostTask( |
| + BrowserThread::IO, FROM_HERE, |
| + NewRunnableFunction(&SendDelayedReply, reply_msg)); |
| +} |
| + |
| +void ScheduleCompositeDispatcher(int32 renderer_id, int32 render_view_id) { |
| + RenderViewHost* host = RenderViewHost::FromID(renderer_id, |
| + render_view_id); |
| + DCHECK(host); |
| + |
| + |
| + host->ScheduleComposite(); |
| +} |
| +} // namespace |
| + |
| +void GpuProcessHost::OnCreateCompositorHostWindow( |
| + int32 renderer_id, |
| + int32 render_view_id, |
| + IPC::Message* reply_message) { |
| + BrowserThread::PostTask( |
| + BrowserThread::UI, FROM_HERE, |
| + NewRunnableFunction(&CreateCompositorHostWindowDispatcher, |
| + renderer_id, render_view_id, reply_message)); |
| +} |
| + |
| +void GpuProcessHost::OnScheduleComposite(int renderer_id, int render_view_id) { |
| + BrowserThread::PostTask( |
| + BrowserThread::UI, FROM_HERE, |
| + NewRunnableFunction(&ScheduleCompositeDispatcher, |
| + renderer_id, render_view_id)); |
| +} |
| #endif |
| void GpuProcessHost::ReplyToRenderer( |