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

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"
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 std::unique_ptr<gfx::GpuMemoryBuffer>
22 InProcessGpuMemoryBufferManager::CreateGpuMemoryBuffer(
23 const gfx::Size& size,
24 gfx::BufferFormat format,
25 gfx::BufferUsage usage,
26 gpu::SurfaceHandle surface_handle) {
27 gfx::GpuMemoryBufferId id(next_gpu_memory_id_++);
28 gfx::GpuMemoryBufferHandle buffer_handle =
29 channel_manager_->gpu_memory_buffer_factory()->CreateGpuMemoryBuffer(
30 id, size, format, usage, client_id_, surface_handle);
31 return gpu::GpuMemoryBufferImpl::CreateFromHandle(
32 buffer_handle, size, format, usage,
33 base::Bind(&InProcessGpuMemoryBufferManager::DestroyGpuMemoryBuffer,
34 weak_ptr_, id, client_id_));
35 }
36
37 void InProcessGpuMemoryBufferManager::SetDestructionSyncToken(
38 gfx::GpuMemoryBuffer* buffer,
39 const gpu::SyncToken& sync_token) {
40 static_cast<gpu::GpuMemoryBufferImpl*>(buffer)->set_destruction_sync_token(
41 sync_token);
42 }
43
44 void InProcessGpuMemoryBufferManager::DestroyGpuMemoryBuffer(
45 gfx::GpuMemoryBufferId id,
46 int client_id,
47 const gpu::SyncToken& sync_token) {
48 channel_manager_->DestroyGpuMemoryBuffer(id, client_id, sync_token);
49 }
50
51 } // namespace viz
OLDNEW
« no previous file with comments | « components/viz/service/display_compositor/in_process_gpu_memory_buffer_manager.h ('k') | services/ui/gpu/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698