| Index: content/browser/gpu/browser_gpu_channel_host_factory.cc
|
| diff --git a/content/browser/gpu/browser_gpu_channel_host_factory.cc b/content/browser/gpu/browser_gpu_channel_host_factory.cc
|
| index 0c43205d3d80b81a60230fba718914d1348b886f..4e69bf314fcfd703fd66affc60f794f671df0492 100644
|
| --- a/content/browser/gpu/browser_gpu_channel_host_factory.cc
|
| +++ b/content/browser/gpu/browser_gpu_channel_host_factory.cc
|
| @@ -469,4 +469,52 @@ void BrowserGpuChannelHostFactory::SetHandlerForControlMessages(
|
| filter));
|
| }
|
|
|
| +void BrowserGpuChannelHostFactory::AllocateGpuMemoryBufferAsync(
|
| + const gfx::GpuMemoryBufferParams& params,
|
| + const AllocateGpuMemoryBufferCallback& callback) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + GetIOLoopProxy()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(
|
| + &BrowserGpuChannelHostFactory::AllocateGpuMemoryBufferAsyncOnIO,
|
| + base::Unretained(this),
|
| + params,
|
| + callback));
|
| +}
|
| +
|
| +void BrowserGpuChannelHostFactory::AllocateGpuMemoryBufferAsyncOnIO(
|
| + const gfx::GpuMemoryBufferParams& params,
|
| + const AllocateGpuMemoryBufferCallback& callback) {
|
| + GpuProcessHost* host = GpuProcessHost::FromID(gpu_host_id_);
|
| + if (!host) {
|
| + GpuMemoryBufferAllocatedAsyncOnIO(callback, gfx::GpuMemoryBufferHandle());
|
| + return;
|
| + }
|
| +
|
| + host->AllocateGpuMemoryBuffer(
|
| + params,
|
| + base::Bind(
|
| + &BrowserGpuChannelHostFactory::GpuMemoryBufferAllocatedAsyncOnIO,
|
| + callback));
|
| +}
|
| +
|
| +// static
|
| +void BrowserGpuChannelHostFactory::GpuMemoryBufferAllocatedAsyncOnIO(
|
| + const AllocateGpuMemoryBufferCallback& callback,
|
| + const gfx::GpuMemoryBufferHandle& handle) {
|
| + BrowserThread::PostTask(
|
| + BrowserThread::UI,
|
| + FROM_HERE,
|
| + base::Bind(&BrowserGpuChannelHostFactory::GpuMemoryBufferAllocatedAsync,
|
| + callback,
|
| + handle));
|
| +}
|
| +
|
| +// static
|
| +void BrowserGpuChannelHostFactory::GpuMemoryBufferAllocatedAsync(
|
| + const AllocateGpuMemoryBufferCallback& callback,
|
| + const gfx::GpuMemoryBufferHandle& handle) {
|
| + callback.Run(handle);
|
| +}
|
| +
|
| } // namespace content
|
|
|