Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "cc/test/test_gpu_memory_buffer_manager.h" | 5 #include "cc/test/test_gpu_memory_buffer_manager.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 122 gfx::GpuMemoryBufferId id_; | 122 gfx::GpuMemoryBufferId id_; |
| 123 gfx::GpuMemoryBuffer* client_buffer_; | 123 gfx::GpuMemoryBuffer* client_buffer_; |
| 124 }; | 124 }; |
| 125 | 125 |
| 126 } // namespace | 126 } // namespace |
| 127 | 127 |
| 128 TestGpuMemoryBufferManager::TestGpuMemoryBufferManager() { | 128 TestGpuMemoryBufferManager::TestGpuMemoryBufferManager() { |
| 129 } | 129 } |
| 130 | 130 |
| 131 TestGpuMemoryBufferManager::~TestGpuMemoryBufferManager() { | 131 TestGpuMemoryBufferManager::~TestGpuMemoryBufferManager() { |
| 132 DCHECK(buffers_.empty()); | 132 { |
| 133 base::AutoLock hold(buffers_lock_); | |
| 134 DCHECK(buffers_.empty()); | |
| 135 } | |
| 133 DCHECK(clients_.empty()); | 136 DCHECK(clients_.empty()); |
| 134 if (parent_gpu_memory_buffer_manager_) | 137 if (parent_gpu_memory_buffer_manager_) |
| 135 parent_gpu_memory_buffer_manager_->clients_.erase(client_id_); | 138 parent_gpu_memory_buffer_manager_->clients_.erase(client_id_); |
| 136 } | 139 } |
| 137 | 140 |
| 138 std::unique_ptr<TestGpuMemoryBufferManager> | 141 std::unique_ptr<TestGpuMemoryBufferManager> |
| 139 TestGpuMemoryBufferManager::CreateClientGpuMemoryBufferManager() { | 142 TestGpuMemoryBufferManager::CreateClientGpuMemoryBufferManager() { |
| 140 std::unique_ptr<TestGpuMemoryBufferManager> client( | 143 std::unique_ptr<TestGpuMemoryBufferManager> client( |
| 141 new TestGpuMemoryBufferManager); | 144 new TestGpuMemoryBufferManager); |
| 142 client->client_id_ = ++last_client_id_; | 145 client->client_id_ = ++last_client_id_; |
| 143 client->parent_gpu_memory_buffer_manager_ = this; | 146 client->parent_gpu_memory_buffer_manager_ = this; |
| 144 | 147 |
| 145 clients_[client->client_id_] = client.get(); | 148 clients_[client->client_id_] = client.get(); |
| 146 return client; | 149 return client; |
| 147 } | 150 } |
| 148 | 151 |
| 149 void TestGpuMemoryBufferManager::OnGpuMemoryBufferDestroyed( | 152 void TestGpuMemoryBufferManager::OnGpuMemoryBufferDestroyed( |
| 150 gfx::GpuMemoryBufferId gpu_memory_buffer_id) { | 153 gfx::GpuMemoryBufferId gpu_memory_buffer_id) { |
| 154 base::AutoLock hold(buffers_lock_); | |
| 151 DCHECK(buffers_.find(gpu_memory_buffer_id.id) != buffers_.end()); | 155 DCHECK(buffers_.find(gpu_memory_buffer_id.id) != buffers_.end()); |
| 152 buffers_.erase(gpu_memory_buffer_id.id); | 156 buffers_.erase(gpu_memory_buffer_id.id); |
| 153 } | 157 } |
| 154 | 158 |
| 155 std::unique_ptr<gfx::GpuMemoryBuffer> | 159 std::unique_ptr<gfx::GpuMemoryBuffer> |
| 156 TestGpuMemoryBufferManager::CreateGpuMemoryBuffer( | 160 TestGpuMemoryBufferManager::CreateGpuMemoryBuffer( |
| 157 const gfx::Size& size, | 161 const gfx::Size& size, |
| 158 gfx::BufferFormat format, | 162 gfx::BufferFormat format, |
| 159 gfx::BufferUsage usage, | 163 gfx::BufferUsage usage, |
| 160 gpu::SurfaceHandle surface_handle) { | 164 gpu::SurfaceHandle surface_handle) { |
| 161 std::unique_ptr<base::SharedMemory> shared_memory(new base::SharedMemory); | 165 std::unique_ptr<base::SharedMemory> shared_memory(new base::SharedMemory); |
| 162 const size_t buffer_size = gfx::BufferSizeForBufferFormat(size, format); | 166 const size_t buffer_size = gfx::BufferSizeForBufferFormat(size, format); |
| 163 if (!shared_memory->CreateAnonymous(buffer_size)) | 167 if (!shared_memory->CreateAnonymous(buffer_size)) |
| 164 return nullptr; | 168 return nullptr; |
| 165 | 169 |
| 166 last_gpu_memory_buffer_id_ += 1; | 170 last_gpu_memory_buffer_id_ += 1; |
| 167 std::unique_ptr<gfx::GpuMemoryBuffer> result(new GpuMemoryBufferImpl( | 171 std::unique_ptr<gfx::GpuMemoryBuffer> result(new GpuMemoryBufferImpl( |
| 168 this, last_gpu_memory_buffer_id_, size, format, std::move(shared_memory), | 172 this, last_gpu_memory_buffer_id_, size, format, std::move(shared_memory), |
| 169 0, base::checked_cast<int>( | 173 0, base::checked_cast<int>( |
| 170 gfx::RowSizeForBufferFormat(size.width(), format, 0)))); | 174 gfx::RowSizeForBufferFormat(size.width(), format, 0)))); |
| 171 buffers_[last_gpu_memory_buffer_id_] = result.get(); | 175 { |
|
vmpstr
2017/02/09 20:37:16
nit: don't need braces here, I don't think?
danakj
2017/02/09 20:39:43
tru
| |
| 176 base::AutoLock hold(buffers_lock_); | |
| 177 buffers_[last_gpu_memory_buffer_id_] = result.get(); | |
| 178 } | |
| 172 return result; | 179 return result; |
| 173 } | 180 } |
| 174 | 181 |
| 175 void TestGpuMemoryBufferManager::SetDestructionSyncToken( | 182 void TestGpuMemoryBufferManager::SetDestructionSyncToken( |
| 176 gfx::GpuMemoryBuffer* buffer, | 183 gfx::GpuMemoryBuffer* buffer, |
| 177 const gpu::SyncToken& sync_token) {} | 184 const gpu::SyncToken& sync_token) {} |
| 178 | 185 |
| 179 } // namespace cc | 186 } // namespace cc |
| OLD | NEW |