OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_memory_buffer_manager.h" | 5 #include "content/browser/gpu/browser_gpu_memory_buffer_manager.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 usage(usage), | 141 usage(usage), |
142 client_id(client_id), | 142 client_id(client_id), |
143 surface_id(surface_id) {} | 143 surface_id(surface_id) {} |
144 ~CreateGpuMemoryBufferRequest() {} | 144 ~CreateGpuMemoryBufferRequest() {} |
145 base::WaitableEvent event; | 145 base::WaitableEvent event; |
146 gfx::Size size; | 146 gfx::Size size; |
147 gfx::BufferFormat format; | 147 gfx::BufferFormat format; |
148 gfx::BufferUsage usage; | 148 gfx::BufferUsage usage; |
149 int client_id; | 149 int client_id; |
150 int surface_id; | 150 int surface_id; |
151 scoped_ptr<gfx::GpuMemoryBuffer> result; | 151 std::unique_ptr<gfx::GpuMemoryBuffer> result; |
152 }; | 152 }; |
153 | 153 |
154 struct BrowserGpuMemoryBufferManager::CreateGpuMemoryBufferFromHandleRequest | 154 struct BrowserGpuMemoryBufferManager::CreateGpuMemoryBufferFromHandleRequest |
155 : public CreateGpuMemoryBufferRequest { | 155 : public CreateGpuMemoryBufferRequest { |
156 CreateGpuMemoryBufferFromHandleRequest( | 156 CreateGpuMemoryBufferFromHandleRequest( |
157 const gfx::GpuMemoryBufferHandle& handle, | 157 const gfx::GpuMemoryBufferHandle& handle, |
158 const gfx::Size& size, | 158 const gfx::Size& size, |
159 gfx::BufferFormat format, | 159 gfx::BufferFormat format, |
160 int client_id) | 160 int client_id) |
161 : CreateGpuMemoryBufferRequest(size, | 161 : CreateGpuMemoryBufferRequest(size, |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 return GL_TEXTURE_2D; | 229 return GL_TEXTURE_2D; |
230 case gfx::EMPTY_BUFFER: | 230 case gfx::EMPTY_BUFFER: |
231 NOTREACHED(); | 231 NOTREACHED(); |
232 return GL_TEXTURE_2D; | 232 return GL_TEXTURE_2D; |
233 } | 233 } |
234 | 234 |
235 NOTREACHED(); | 235 NOTREACHED(); |
236 return GL_TEXTURE_2D; | 236 return GL_TEXTURE_2D; |
237 } | 237 } |
238 | 238 |
239 scoped_ptr<gfx::GpuMemoryBuffer> | 239 std::unique_ptr<gfx::GpuMemoryBuffer> |
240 BrowserGpuMemoryBufferManager::AllocateGpuMemoryBuffer(const gfx::Size& size, | 240 BrowserGpuMemoryBufferManager::AllocateGpuMemoryBuffer(const gfx::Size& size, |
241 gfx::BufferFormat format, | 241 gfx::BufferFormat format, |
242 gfx::BufferUsage usage, | 242 gfx::BufferUsage usage, |
243 int32_t surface_id) { | 243 int32_t surface_id) { |
244 return AllocateGpuMemoryBufferForSurface(size, format, usage, surface_id); | 244 return AllocateGpuMemoryBufferForSurface(size, format, usage, surface_id); |
245 } | 245 } |
246 | 246 |
247 scoped_ptr<gfx::GpuMemoryBuffer> | 247 std::unique_ptr<gfx::GpuMemoryBuffer> |
248 BrowserGpuMemoryBufferManager::CreateGpuMemoryBufferFromHandle( | 248 BrowserGpuMemoryBufferManager::CreateGpuMemoryBufferFromHandle( |
249 const gfx::GpuMemoryBufferHandle& handle, | 249 const gfx::GpuMemoryBufferHandle& handle, |
250 const gfx::Size& size, | 250 const gfx::Size& size, |
251 gfx::BufferFormat format) { | 251 gfx::BufferFormat format) { |
252 DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::IO)); | 252 DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::IO)); |
253 | 253 |
254 CreateGpuMemoryBufferFromHandleRequest request(handle, size, format, | 254 CreateGpuMemoryBufferFromHandleRequest request(handle, size, format, |
255 gpu_client_id_); | 255 gpu_client_id_); |
256 BrowserThread::PostTask( | 256 BrowserThread::PostTask( |
257 BrowserThread::IO, FROM_HERE, | 257 BrowserThread::IO, FROM_HERE, |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
401 clients_.erase(client_it); | 401 clients_.erase(client_it); |
402 } | 402 } |
403 | 403 |
404 bool BrowserGpuMemoryBufferManager::IsNativeGpuMemoryBufferConfiguration( | 404 bool BrowserGpuMemoryBufferManager::IsNativeGpuMemoryBufferConfiguration( |
405 gfx::BufferFormat format, | 405 gfx::BufferFormat format, |
406 gfx::BufferUsage usage) const { | 406 gfx::BufferUsage usage) const { |
407 return native_configurations_.find(std::make_pair(format, usage)) != | 407 return native_configurations_.find(std::make_pair(format, usage)) != |
408 native_configurations_.end(); | 408 native_configurations_.end(); |
409 } | 409 } |
410 | 410 |
411 scoped_ptr<gfx::GpuMemoryBuffer> | 411 std::unique_ptr<gfx::GpuMemoryBuffer> |
412 BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferForSurface( | 412 BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferForSurface( |
413 const gfx::Size& size, | 413 const gfx::Size& size, |
414 gfx::BufferFormat format, | 414 gfx::BufferFormat format, |
415 gfx::BufferUsage usage, | 415 gfx::BufferUsage usage, |
416 int32_t surface_id) { | 416 int32_t surface_id) { |
417 DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::IO)); | 417 DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::IO)); |
418 | 418 |
419 CreateGpuMemoryBufferRequest request(size, format, usage, gpu_client_id_, | 419 CreateGpuMemoryBufferRequest request(size, format, usage, gpu_client_id_, |
420 surface_id); | 420 surface_id); |
421 BrowserThread::PostTask( | 421 BrowserThread::PostTask( |
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
716 return gpu_client_tracing_id_; | 716 return gpu_client_tracing_id_; |
717 } | 717 } |
718 | 718 |
719 // In normal cases, |client_id| is a child process id, so we can perform | 719 // In normal cases, |client_id| is a child process id, so we can perform |
720 // the standard conversion. | 720 // the standard conversion. |
721 return ChildProcessHostImpl::ChildProcessUniqueIdToTracingProcessId( | 721 return ChildProcessHostImpl::ChildProcessUniqueIdToTracingProcessId( |
722 client_id); | 722 client_id); |
723 } | 723 } |
724 | 724 |
725 } // namespace content | 725 } // namespace content |
OLD | NEW |