OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/renderbuffer_manager.h" | 5 #include "gpu/command_buffer/service/renderbuffer_manager.h" |
6 #include "base/logging.h" | 6 #include "base/logging.h" |
7 #include "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
8 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | 8 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
9 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" | 9 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
| 10 #include "gpu/command_buffer/service/memory_tracking.h" |
10 | 11 |
11 namespace gpu { | 12 namespace gpu { |
12 namespace gles2 { | 13 namespace gles2 { |
13 | 14 |
14 RenderbufferManager::RenderbufferManager( | 15 RenderbufferManager::RenderbufferManager( |
15 GLint max_renderbuffer_size, GLint max_samples) | 16 MemoryTracker* memory_tracker, |
16 : max_renderbuffer_size_(max_renderbuffer_size), | 17 GLint max_renderbuffer_size, |
| 18 GLint max_samples) |
| 19 : renderbuffer_memory_tracker_(new MemoryTypeTracker( |
| 20 memory_tracker, |
| 21 "RenderbufferManager", |
| 22 "RenderbufferMemory")), |
| 23 max_renderbuffer_size_(max_renderbuffer_size), |
17 max_samples_(max_samples), | 24 max_samples_(max_samples), |
18 num_uncleared_renderbuffers_(0), | 25 num_uncleared_renderbuffers_(0), |
19 mem_represented_(0), | 26 mem_represented_(0), |
20 renderbuffer_info_count_(0), | 27 renderbuffer_info_count_(0), |
21 have_context_(true) { | 28 have_context_(true) { |
22 UpdateMemRepresented(); | 29 UpdateMemRepresented(); |
23 } | 30 } |
24 | 31 |
25 RenderbufferManager::~RenderbufferManager() { | 32 RenderbufferManager::~RenderbufferManager() { |
26 DCHECK(renderbuffer_infos_.empty()); | 33 DCHECK(renderbuffer_infos_.empty()); |
(...skipping 14 matching lines...) Expand all Loading... |
41 if (manager_->have_context_) { | 48 if (manager_->have_context_) { |
42 GLuint id = service_id(); | 49 GLuint id = service_id(); |
43 glDeleteRenderbuffersEXT(1, &id); | 50 glDeleteRenderbuffersEXT(1, &id); |
44 } | 51 } |
45 manager_->StopTracking(this); | 52 manager_->StopTracking(this); |
46 manager_ = NULL; | 53 manager_ = NULL; |
47 } | 54 } |
48 } | 55 } |
49 | 56 |
50 void RenderbufferManager::UpdateMemRepresented() { | 57 void RenderbufferManager::UpdateMemRepresented() { |
51 TRACE_COUNTER_ID1( | 58 renderbuffer_memory_tracker_->UpdateMemRepresented(mem_represented_); |
52 "RenderbufferManager", "RenderbufferMemory", this, mem_represented_); | |
53 } | 59 } |
54 | 60 |
55 void RenderbufferManager::Destroy(bool have_context) { | 61 void RenderbufferManager::Destroy(bool have_context) { |
56 have_context_ = have_context; | 62 have_context_ = have_context; |
57 renderbuffer_infos_.clear(); | 63 renderbuffer_infos_.clear(); |
58 DCHECK_EQ(0u, mem_represented_); | 64 DCHECK_EQ(0u, mem_represented_); |
59 UpdateMemRepresented(); | 65 UpdateMemRepresented(); |
60 } | 66 } |
61 | 67 |
62 void RenderbufferManager::StartTracking(RenderbufferInfo* /* renderbuffer */) { | 68 void RenderbufferManager::StartTracking(RenderbufferInfo* /* renderbuffer */) { |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 return true; | 140 return true; |
135 } | 141 } |
136 } | 142 } |
137 return false; | 143 return false; |
138 } | 144 } |
139 | 145 |
140 } // namespace gles2 | 146 } // namespace gles2 |
141 } // namespace gpu | 147 } // namespace gpu |
142 | 148 |
143 | 149 |
OLD | NEW |