OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/gpu_process_host.h" | 5 #include "chrome/browser/gpu_process_host.h" |
6 | 6 |
7 #include "app/app_switches.h" | 7 #include "app/app_switches.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/thread.h" | 9 #include "base/thread.h" |
10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 BrowserThread::PostTask( | 301 BrowserThread::PostTask( |
302 BrowserThread::UI, FROM_HERE, | 302 BrowserThread::UI, FROM_HERE, |
303 new SetIOSurfaceDispatcher(params)); | 303 new SetIOSurfaceDispatcher(params)); |
304 } | 304 } |
305 | 305 |
306 namespace { | 306 namespace { |
307 | 307 |
308 class BuffersSwappedDispatcher : public Task { | 308 class BuffersSwappedDispatcher : public Task { |
309 public: | 309 public: |
310 BuffersSwappedDispatcher( | 310 BuffersSwappedDispatcher( |
311 int32 renderer_id, int32 render_view_id, gfx::PluginWindowHandle window) | 311 int32 renderer_id, |
| 312 int32 render_view_id, |
| 313 gfx::PluginWindowHandle window, |
| 314 uint64 surface_id) |
312 : renderer_id_(renderer_id), | 315 : renderer_id_(renderer_id), |
313 render_view_id_(render_view_id), | 316 render_view_id_(render_view_id), |
314 window_(window) { | 317 window_(window), |
| 318 surface_id_(surface_id) { |
315 } | 319 } |
316 | 320 |
317 void Run() { | 321 void Run() { |
318 RenderViewHost* host = RenderViewHost::FromID(renderer_id_, | 322 RenderViewHost* host = RenderViewHost::FromID(renderer_id_, |
319 render_view_id_); | 323 render_view_id_); |
320 if (!host) | 324 if (!host) |
321 return; | 325 return; |
322 RenderWidgetHostView* view = host->view(); | 326 RenderWidgetHostView* view = host->view(); |
323 if (!view) | 327 if (!view) |
324 return; | 328 return; |
325 view->AcceleratedSurfaceBuffersSwapped(window_); | 329 view->AcceleratedSurfaceBuffersSwapped(window_, surface_id_); |
326 } | 330 } |
327 | 331 |
328 private: | 332 private: |
329 int32 renderer_id_; | 333 int32 renderer_id_; |
330 int32 render_view_id_; | 334 int32 render_view_id_; |
331 gfx::PluginWindowHandle window_; | 335 gfx::PluginWindowHandle window_; |
| 336 uint64 surface_id_; |
332 | 337 |
333 DISALLOW_COPY_AND_ASSIGN(BuffersSwappedDispatcher); | 338 DISALLOW_COPY_AND_ASSIGN(BuffersSwappedDispatcher); |
334 }; | 339 }; |
335 | 340 |
336 } // namespace | 341 } // namespace |
337 | 342 |
338 void GpuProcessHost::OnAcceleratedSurfaceBuffersSwapped( | 343 void GpuProcessHost::OnAcceleratedSurfaceBuffersSwapped( |
339 int32 renderer_id, | 344 int32 renderer_id, |
340 int32 render_view_id, | 345 int32 render_view_id, |
341 gfx::PluginWindowHandle window) { | 346 gfx::PluginWindowHandle window, |
| 347 uint64 surface_id) { |
342 BrowserThread::PostTask( | 348 BrowserThread::PostTask( |
343 BrowserThread::UI, FROM_HERE, | 349 BrowserThread::UI, FROM_HERE, |
344 new BuffersSwappedDispatcher(renderer_id, render_view_id, window)); | 350 new BuffersSwappedDispatcher( |
| 351 renderer_id, render_view_id, window, surface_id)); |
345 } | 352 } |
346 #endif | 353 #endif |
347 | 354 |
348 void GpuProcessHost::ReplyToRenderer( | 355 void GpuProcessHost::ReplyToRenderer( |
349 const IPC::ChannelHandle& channel, | 356 const IPC::ChannelHandle& channel, |
350 const GPUInfo& gpu_info, | 357 const GPUInfo& gpu_info, |
351 ResourceMessageFilter* filter) { | 358 ResourceMessageFilter* filter) { |
352 ViewMsg_GpuChannelEstablished* message = | 359 ViewMsg_GpuChannelEstablished* message = |
353 new ViewMsg_GpuChannelEstablished(channel, gpu_info); | 360 new ViewMsg_GpuChannelEstablished(channel, gpu_info); |
354 // If the renderer process is performing synchronous initialization, | 361 // If the renderer process is performing synchronous initialization, |
355 // it needs to handle this message before receiving the reply for | 362 // it needs to handle this message before receiving the reply for |
356 // the synchronous ViewHostMsg_SynchronizeGpu message. | 363 // the synchronous ViewHostMsg_SynchronizeGpu message. |
357 message->set_unblock(true); | 364 message->set_unblock(true); |
358 filter->Send(message); | 365 filter->Send(message); |
359 } | 366 } |
360 | 367 |
361 URLRequestContext* GpuProcessHost::GetRequestContext( | 368 URLRequestContext* GpuProcessHost::GetRequestContext( |
362 uint32 request_id, | 369 uint32 request_id, |
363 const ViewHostMsg_Resource_Request& request_data) { | 370 const ViewHostMsg_Resource_Request& request_data) { |
364 return NULL; | 371 return NULL; |
365 } | 372 } |
366 | 373 |
367 bool GpuProcessHost::CanShutdown() { | 374 bool GpuProcessHost::CanShutdown() { |
368 return true; | 375 return true; |
369 } | 376 } |
OLD | NEW |