| 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 |