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

Side by Side Diff: gpu/command_buffer/service/gpu_control_service.cc

Issue 235563002: gpu: Separate GpuControlService from GpuControl (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: unregister Created 6 years, 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "gpu/command_buffer/service/gpu_control_service.h" 5 #include "gpu/command_buffer/service/gpu_control_service.h"
6 6
7 #include "gpu/command_buffer/client/gpu_memory_buffer_factory.h"
8 #include "gpu/command_buffer/service/gpu_memory_buffer_manager.h" 7 #include "gpu/command_buffer/service/gpu_memory_buffer_manager.h"
9 #include "gpu/command_buffer/service/mailbox_manager.h" 8 #include "gpu/command_buffer/service/mailbox_manager.h"
10 #include "gpu/command_buffer/service/query_manager.h" 9 #include "gpu/command_buffer/service/query_manager.h"
11 10
12 namespace gpu { 11 namespace gpu {
13 12
14 GpuControlService::GpuControlService( 13 GpuControlService::GpuControlService(
15 GpuMemoryBufferManagerInterface* gpu_memory_buffer_manager, 14 GpuMemoryBufferManagerInterface* gpu_memory_buffer_manager,
16 GpuMemoryBufferFactory* gpu_memory_buffer_factory,
17 gles2::MailboxManager* mailbox_manager, 15 gles2::MailboxManager* mailbox_manager,
18 gles2::QueryManager* query_manager, 16 gles2::QueryManager* query_manager)
19 const gpu::Capabilities& decoder_capabilities)
20 : gpu_memory_buffer_manager_(gpu_memory_buffer_manager), 17 : gpu_memory_buffer_manager_(gpu_memory_buffer_manager),
21 gpu_memory_buffer_factory_(gpu_memory_buffer_factory),
22 mailbox_manager_(mailbox_manager), 18 mailbox_manager_(mailbox_manager),
23 query_manager_(query_manager), 19 query_manager_(query_manager) {
24 capabilities_(decoder_capabilities) {
25 capabilities_.map_image =
26 gpu_memory_buffer_manager_ && gpu_memory_buffer_factory_;
27 } 20 }
28 21
29 GpuControlService::~GpuControlService() { 22 GpuControlService::~GpuControlService() {
30 } 23 }
31 24
32 gpu::Capabilities GpuControlService::GetCapabilities() {
33 return capabilities_;
34 }
35
36 gfx::GpuMemoryBuffer* GpuControlService::CreateGpuMemoryBuffer(
37 size_t width,
38 size_t height,
39 unsigned internalformat,
40 int32* id) {
41 *id = -1;
42
43 CHECK(gpu_memory_buffer_factory_) << "No GPU memory buffer factory provided";
44 linked_ptr<gfx::GpuMemoryBuffer> buffer = make_linked_ptr(
45 gpu_memory_buffer_factory_->CreateGpuMemoryBuffer(width,
46 height,
47 internalformat));
48 if (!buffer.get())
49 return NULL;
50
51 static int32 next_id = 1;
52 *id = next_id++;
53
54 if (!RegisterGpuMemoryBuffer(*id,
55 buffer->GetHandle(),
56 width,
57 height,
58 internalformat)) {
59 *id = -1;
60 return NULL;
61 }
62
63 gpu_memory_buffers_[*id] = buffer;
64 return buffer.get();
65 }
66
67 void GpuControlService::DestroyGpuMemoryBuffer(int32 id) {
68 GpuMemoryBufferMap::iterator it = gpu_memory_buffers_.find(id);
69 if (it != gpu_memory_buffers_.end())
70 gpu_memory_buffers_.erase(it);
71
72 gpu_memory_buffer_manager_->DestroyGpuMemoryBuffer(id);
73 }
74
75 uint32 GpuControlService::InsertSyncPoint() {
76 NOTREACHED();
77 return 0u;
78 }
79
80 void GpuControlService::SignalSyncPoint(uint32 sync_point,
81 const base::Closure& callback) {
82 NOTREACHED();
83 }
84
85 void GpuControlService::SignalQuery(uint32 query_id, 25 void GpuControlService::SignalQuery(uint32 query_id,
86 const base::Closure& callback) { 26 const base::Closure& callback) {
87 DCHECK(query_manager_); 27 DCHECK(query_manager_);
88 gles2::QueryManager::Query* query = query_manager_->GetQuery(query_id); 28 gles2::QueryManager::Query* query = query_manager_->GetQuery(query_id);
89 if (!query) 29 if (!query)
90 callback.Run(); 30 callback.Run();
91 else 31 else
92 query->AddCallback(callback); 32 query->AddCallback(callback);
93 } 33 }
94 34
95 void GpuControlService::SetSurfaceVisible(bool visible) { 35 void GpuControlService::RegisterGpuMemoryBuffer(
96 NOTREACHED();
97 }
98
99 void GpuControlService::SendManagedMemoryStats(
100 const ManagedMemoryStats& stats) {
101 NOTREACHED();
102 }
103
104 void GpuControlService::Echo(const base::Closure& callback) {
105 NOTREACHED();
106 }
107
108 uint32 GpuControlService::CreateStreamTexture(uint32 texture_id) {
109 NOTREACHED();
110 return 0;
111 }
112
113 bool GpuControlService::RegisterGpuMemoryBuffer(
114 int32 id, 36 int32 id,
115 gfx::GpuMemoryBufferHandle buffer, 37 gfx::GpuMemoryBufferHandle buffer,
116 size_t width, 38 size_t width,
117 size_t height, 39 size_t height,
118 unsigned internalformat) { 40 unsigned internalformat) {
119 return gpu_memory_buffer_manager_->RegisterGpuMemoryBuffer(id, 41 gpu_memory_buffer_manager_->RegisterGpuMemoryBuffer(
120 buffer, 42 id, buffer, width, height, internalformat);
121 width, 43 }
122 height, 44
123 internalformat); 45 void GpuControlService::UnregisterGpuMemoryBuffer(int32 id) {
46 gpu_memory_buffer_manager_->DestroyGpuMemoryBuffer(id);
124 } 47 }
125 48
126 } // namespace gpu 49 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698