Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(116)

Side by Side Diff: components/viz/service/display_compositor/in_process_gpu_memory_buffer_manager.cc

Issue 2942283002: viz: Use a simple GpuMemoryBufferManager implementation. (Closed)
Patch Set: . Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698