Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "components/viz/service/display_compositor/in_process_gpu_memory_buffer _manager.h" | |
| 6 | |
| 7 #include "gpu/ipc/client/gpu_memory_buffer_impl.h" | |
| 8 #include "gpu/ipc/service/gpu_channel_manager.h" | |
| 9 #include "gpu/ipc/service/gpu_memory_buffer_factory.h" | |
|
danakj
2017/06/20 14:59:50
tbh i don't see this type anywhere in this file, i
sadrul
2017/06/21 05:57:46
This is needed (in line ~35:37).
| |
| 10 | |
| 11 namespace viz { | |
| 12 | |
| 13 InProcessGpuMemoryBufferManager::InProcessGpuMemoryBufferManager( | |
| 14 gpu::GpuChannelManager* channel_manager) | |
| 15 : client_id_(1), channel_manager_(channel_manager), weak_factory_(this) { | |
| 16 weak_ptr_ = weak_factory_.GetWeakPtr(); | |
| 17 } | |
| 18 | |
| 19 InProcessGpuMemoryBufferManager::~InProcessGpuMemoryBufferManager() {} | |
| 20 | |
| 21 void InProcessGpuMemoryBufferManager::DestroyGpuMemoryBuffer( | |
| 22 gfx::GpuMemoryBufferId id, | |
| 23 int client_id, | |
| 24 const gpu::SyncToken& sync_token) { | |
| 25 channel_manager_->DestroyGpuMemoryBuffer(id, client_id, sync_token); | |
| 26 } | |
| 27 | |
| 28 std::unique_ptr<gfx::GpuMemoryBuffer> | |
| 29 InProcessGpuMemoryBufferManager::CreateGpuMemoryBuffer( | |
| 30 const gfx::Size& size, | |
| 31 gfx::BufferFormat format, | |
| 32 gfx::BufferUsage usage, | |
| 33 gpu::SurfaceHandle surface_handle) { | |
| 34 gfx::GpuMemoryBufferId id(next_gpu_memory_id_++); | |
| 35 gfx::GpuMemoryBufferHandle buffer_handle = | |
| 36 channel_manager_->gpu_memory_buffer_factory()->CreateGpuMemoryBuffer( | |
| 37 id, size, format, usage, client_id_, surface_handle); | |
| 38 return gpu::GpuMemoryBufferImpl::CreateFromHandle( | |
| 39 buffer_handle, size, format, usage, | |
| 40 base::Bind(&InProcessGpuMemoryBufferManager::DestroyGpuMemoryBuffer, | |
| 41 weak_ptr_, id, client_id_)); | |
| 42 } | |
| 43 | |
| 44 void InProcessGpuMemoryBufferManager::SetDestructionSyncToken( | |
| 45 gfx::GpuMemoryBuffer* buffer, | |
| 46 const gpu::SyncToken& sync_token) { | |
| 47 static_cast<gpu::GpuMemoryBufferImpl*>(buffer)->set_destruction_sync_token( | |
| 48 sync_token); | |
| 49 } | |
| 50 | |
| 51 } // namespace viz | |
| OLD | NEW |