OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/gpu/browser_gpu_channel_host_factory.h" | 5 #include "content/browser/gpu/browser_gpu_channel_host_factory.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/profiler/scoped_tracker.h" | 10 #include "base/profiler/scoped_tracker.h" |
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
445 for (size_t n = 0; n < established_callbacks_.size(); n++) | 445 for (size_t n = 0; n < established_callbacks_.size(); n++) |
446 established_callbacks_[n].Run(); | 446 established_callbacks_[n].Run(); |
447 | 447 |
448 established_callbacks_.clear(); | 448 established_callbacks_.clear(); |
449 } | 449 } |
450 | 450 |
451 // static | 451 // static |
452 void BrowserGpuChannelHostFactory::AddFilterOnIO( | 452 void BrowserGpuChannelHostFactory::AddFilterOnIO( |
453 int host_id, | 453 int host_id, |
454 scoped_refptr<IPC::MessageFilter> filter) { | 454 scoped_refptr<IPC::MessageFilter> filter) { |
455 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 455 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
456 | 456 |
457 GpuProcessHost* host = GpuProcessHost::FromID(host_id); | 457 GpuProcessHost* host = GpuProcessHost::FromID(host_id); |
458 if (host) | 458 if (host) |
459 host->AddFilter(filter.get()); | 459 host->AddFilter(filter.get()); |
460 } | 460 } |
461 | 461 |
462 bool BrowserGpuChannelHostFactory::IsGpuMemoryBufferConfigurationSupported( | 462 bool BrowserGpuChannelHostFactory::IsGpuMemoryBufferConfigurationSupported( |
463 gfx::GpuMemoryBuffer::Format format, | 463 gfx::GpuMemoryBuffer::Format format, |
464 gfx::GpuMemoryBuffer::Usage usage) { | 464 gfx::GpuMemoryBuffer::Usage usage) { |
465 // Return early if usage is not enabled. | 465 // Return early if usage is not enabled. |
(...skipping 30 matching lines...) Expand all Loading... |
496 } | 496 } |
497 | 497 |
498 void BrowserGpuChannelHostFactory::CreateGpuMemoryBuffer( | 498 void BrowserGpuChannelHostFactory::CreateGpuMemoryBuffer( |
499 gfx::GpuMemoryBufferId id, | 499 gfx::GpuMemoryBufferId id, |
500 const gfx::Size& size, | 500 const gfx::Size& size, |
501 gfx::GpuMemoryBuffer::Format format, | 501 gfx::GpuMemoryBuffer::Format format, |
502 gfx::GpuMemoryBuffer::Usage usage, | 502 gfx::GpuMemoryBuffer::Usage usage, |
503 int client_id, | 503 int client_id, |
504 int32 surface_id, | 504 int32 surface_id, |
505 const CreateGpuMemoryBufferCallback& callback) { | 505 const CreateGpuMemoryBufferCallback& callback) { |
506 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 506 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
507 | 507 |
508 GpuProcessHost* host = GpuProcessHost::FromID(gpu_host_id_); | 508 GpuProcessHost* host = GpuProcessHost::FromID(gpu_host_id_); |
509 if (!host) { | 509 if (!host) { |
510 callback.Run(gfx::GpuMemoryBufferHandle()); | 510 callback.Run(gfx::GpuMemoryBufferHandle()); |
511 return; | 511 return; |
512 } | 512 } |
513 | 513 |
514 uint32 request_id = next_create_gpu_memory_buffer_request_id_++; | 514 uint32 request_id = next_create_gpu_memory_buffer_request_id_++; |
515 create_gpu_memory_buffer_requests_[request_id] = callback; | 515 create_gpu_memory_buffer_requests_[request_id] = callback; |
516 | 516 |
(...skipping 14 matching lines...) Expand all Loading... |
531 base::Unretained(this), | 531 base::Unretained(this), |
532 id, | 532 id, |
533 client_id, | 533 client_id, |
534 sync_point)); | 534 sync_point)); |
535 } | 535 } |
536 | 536 |
537 void BrowserGpuChannelHostFactory::DestroyGpuMemoryBufferOnIO( | 537 void BrowserGpuChannelHostFactory::DestroyGpuMemoryBufferOnIO( |
538 gfx::GpuMemoryBufferId id, | 538 gfx::GpuMemoryBufferId id, |
539 int client_id, | 539 int client_id, |
540 int32 sync_point) { | 540 int32 sync_point) { |
541 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 541 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
542 | 542 |
543 GpuProcessHost* host = GpuProcessHost::FromID(gpu_host_id_); | 543 GpuProcessHost* host = GpuProcessHost::FromID(gpu_host_id_); |
544 if (!host) | 544 if (!host) |
545 return; | 545 return; |
546 | 546 |
547 host->DestroyGpuMemoryBuffer(id, client_id, sync_point); | 547 host->DestroyGpuMemoryBuffer(id, client_id, sync_point); |
548 } | 548 } |
549 | 549 |
550 void BrowserGpuChannelHostFactory::OnGpuMemoryBufferCreated( | 550 void BrowserGpuChannelHostFactory::OnGpuMemoryBufferCreated( |
551 uint32 request_id, | 551 uint32 request_id, |
552 const gfx::GpuMemoryBufferHandle& handle) { | 552 const gfx::GpuMemoryBufferHandle& handle) { |
553 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 553 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
554 | 554 |
555 CreateGpuMemoryBufferCallbackMap::iterator iter = | 555 CreateGpuMemoryBufferCallbackMap::iterator iter = |
556 create_gpu_memory_buffer_requests_.find(request_id); | 556 create_gpu_memory_buffer_requests_.find(request_id); |
557 DCHECK(iter != create_gpu_memory_buffer_requests_.end()); | 557 DCHECK(iter != create_gpu_memory_buffer_requests_.end()); |
558 iter->second.Run(handle); | 558 iter->second.Run(handle); |
559 create_gpu_memory_buffer_requests_.erase(iter); | 559 create_gpu_memory_buffer_requests_.erase(iter); |
560 } | 560 } |
561 | 561 |
562 } // namespace content | 562 } // namespace content |
OLD | NEW |