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 |