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 | 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 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 sizeof(signature_data)); | 104 sizeof(signature_data)); |
105 } | 105 } |
106 | 106 |
107 Renderbuffer::Renderbuffer(RenderbufferManager* manager, | 107 Renderbuffer::Renderbuffer(RenderbufferManager* manager, |
108 GLuint client_id, | 108 GLuint client_id, |
109 GLuint service_id) | 109 GLuint service_id) |
110 : manager_(manager), | 110 : manager_(manager), |
111 client_id_(client_id), | 111 client_id_(client_id), |
112 service_id_(service_id), | 112 service_id_(service_id), |
113 cleared_(true), | 113 cleared_(true), |
| 114 depth_cleared_(true), |
| 115 stencil_cleared_(true), |
114 has_been_bound_(false), | 116 has_been_bound_(false), |
115 samples_(0), | 117 samples_(0), |
116 internal_format_(GL_RGBA4), | 118 internal_format_(GL_RGBA4), |
117 width_(0), | 119 width_(0), |
118 height_(0) { | 120 height_(0) { |
119 manager_->StartTracking(this); | 121 manager_->StartTracking(this); |
120 } | 122 } |
121 | 123 |
122 Renderbuffer::~Renderbuffer() { | 124 Renderbuffer::~Renderbuffer() { |
123 if (manager_) { | 125 if (manager_) { |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 DCHECK(renderbuffer); | 170 DCHECK(renderbuffer); |
169 if (!renderbuffer->cleared()) { | 171 if (!renderbuffer->cleared()) { |
170 --num_uncleared_renderbuffers_; | 172 --num_uncleared_renderbuffers_; |
171 } | 173 } |
172 renderbuffer->set_cleared(cleared); | 174 renderbuffer->set_cleared(cleared); |
173 if (!renderbuffer->cleared()) { | 175 if (!renderbuffer->cleared()) { |
174 ++num_uncleared_renderbuffers_; | 176 ++num_uncleared_renderbuffers_; |
175 } | 177 } |
176 } | 178 } |
177 | 179 |
| 180 void RenderbufferManager::SetCleared(Renderbuffer* renderbuffer, |
| 181 GLenum attachment, |
| 182 bool cleared) { |
| 183 DCHECK(renderbuffer); |
| 184 if (!renderbuffer->cleared()) { |
| 185 --num_uncleared_renderbuffers_; |
| 186 } |
| 187 renderbuffer->set_cleared(attachment, cleared); |
| 188 if (!renderbuffer->cleared()) { |
| 189 ++num_uncleared_renderbuffers_; |
| 190 } |
| 191 } |
| 192 |
178 void RenderbufferManager::CreateRenderbuffer( | 193 void RenderbufferManager::CreateRenderbuffer( |
179 GLuint client_id, GLuint service_id) { | 194 GLuint client_id, GLuint service_id) { |
180 scoped_refptr<Renderbuffer> renderbuffer( | 195 scoped_refptr<Renderbuffer> renderbuffer( |
181 new Renderbuffer(this, client_id, service_id)); | 196 new Renderbuffer(this, client_id, service_id)); |
182 std::pair<RenderbufferMap::iterator, bool> result = | 197 std::pair<RenderbufferMap::iterator, bool> result = |
183 renderbuffers_.insert(std::make_pair(client_id, renderbuffer)); | 198 renderbuffers_.insert(std::make_pair(client_id, renderbuffer)); |
184 DCHECK(result.second); | 199 DCHECK(result.second); |
185 if (!renderbuffer->cleared()) { | 200 if (!renderbuffer->cleared()) { |
186 ++num_uncleared_renderbuffers_; | 201 ++num_uncleared_renderbuffers_; |
187 } | 202 } |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 auto guid = gl::GetGLRenderbufferGUIDForTracing( | 282 auto guid = gl::GetGLRenderbufferGUIDForTracing( |
268 memory_tracker_->ShareGroupTracingGUID(), client_renderbuffer_id); | 283 memory_tracker_->ShareGroupTracingGUID(), client_renderbuffer_id); |
269 pmd->CreateSharedGlobalAllocatorDump(guid); | 284 pmd->CreateSharedGlobalAllocatorDump(guid); |
270 pmd->AddOwnershipEdge(dump->guid(), guid); | 285 pmd->AddOwnershipEdge(dump->guid(), guid); |
271 } | 286 } |
272 return true; | 287 return true; |
273 } | 288 } |
274 | 289 |
275 } // namespace gles2 | 290 } // namespace gles2 |
276 } // namespace gpu | 291 } // namespace gpu |
OLD | NEW |