Index: gpu/command_buffer/service/renderbuffer_manager.cc |
diff --git a/gpu/command_buffer/service/renderbuffer_manager.cc b/gpu/command_buffer/service/renderbuffer_manager.cc |
index f85f6c00263dc51f324aee9cf6c640447bf7d34d..a81e85dbc75ace0e3c2fac718c64626aaf148136 100644 |
--- a/gpu/command_buffer/service/renderbuffer_manager.cc |
+++ b/gpu/command_buffer/service/renderbuffer_manager.cc |
@@ -30,20 +30,20 @@ RenderbufferManager::RenderbufferManager( |
RenderbufferManager::~RenderbufferManager() { |
DCHECK(renderbuffer_infos_.empty()); |
// If this triggers, that means something is keeping a reference to |
- // a RenderbufferInfo belonging to this. |
+ // a Renderbuffer belonging to this. |
CHECK_EQ(renderbuffer_info_count_, 0u); |
DCHECK_EQ(0, num_uncleared_renderbuffers_); |
} |
-size_t RenderbufferManager::RenderbufferInfo::EstimatedSize() { |
+size_t Renderbuffer::EstimatedSize() { |
uint32 size = 0; |
RenderbufferManager::ComputeEstimatedRenderbufferSize( |
width_, height_, samples_, internal_format_, &size); |
return size; |
} |
-void RenderbufferManager::RenderbufferInfo::AddToSignature( |
+void Renderbuffer::AddToSignature( |
std::string* signature) const { |
DCHECK(signature); |
*signature += base::StringPrintf( |
@@ -51,7 +51,20 @@ void RenderbufferManager::RenderbufferInfo::AddToSignature( |
internal_format_, samples_, width_, height_); |
} |
-RenderbufferManager::RenderbufferInfo::~RenderbufferInfo() { |
+Renderbuffer::Renderbuffer(RenderbufferManager* manager, GLuint service_id) |
+ : manager_(manager), |
+ deleted_(false), |
+ service_id_(service_id), |
+ cleared_(true), |
+ has_been_bound_(false), |
+ samples_(0), |
+ internal_format_(GL_RGBA4), |
+ width_(0), |
+ height_(0) { |
+ manager_->StartTracking(this); |
+} |
+ |
+Renderbuffer::~Renderbuffer() { |
if (manager_) { |
if (manager_->have_context_) { |
GLuint id = service_id(); |
@@ -68,11 +81,11 @@ void RenderbufferManager::Destroy(bool have_context) { |
DCHECK_EQ(0u, memory_tracker_->GetMemRepresented()); |
} |
-void RenderbufferManager::StartTracking(RenderbufferInfo* /* renderbuffer */) { |
+void RenderbufferManager::StartTracking(Renderbuffer* /* renderbuffer */) { |
++renderbuffer_info_count_; |
} |
-void RenderbufferManager::StopTracking(RenderbufferInfo* renderbuffer) { |
+void RenderbufferManager::StopTracking(Renderbuffer* renderbuffer) { |
--renderbuffer_info_count_; |
if (!renderbuffer->cleared()) { |
--num_uncleared_renderbuffers_; |
@@ -81,7 +94,7 @@ void RenderbufferManager::StopTracking(RenderbufferInfo* renderbuffer) { |
} |
void RenderbufferManager::SetInfo( |
- RenderbufferInfo* renderbuffer, |
+ Renderbuffer* renderbuffer, |
GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { |
DCHECK(renderbuffer); |
if (!renderbuffer->cleared()) { |
@@ -95,7 +108,7 @@ void RenderbufferManager::SetInfo( |
} |
} |
-void RenderbufferManager::SetCleared(RenderbufferInfo* renderbuffer, |
+void RenderbufferManager::SetCleared(Renderbuffer* renderbuffer, |
bool cleared) { |
DCHECK(renderbuffer); |
if (!renderbuffer->cleared()) { |
@@ -107,9 +120,9 @@ void RenderbufferManager::SetCleared(RenderbufferInfo* renderbuffer, |
} |
} |
-void RenderbufferManager::CreateRenderbufferInfo( |
+void RenderbufferManager::CreateRenderbuffer( |
GLuint client_id, GLuint service_id) { |
- RenderbufferInfo::Ref info(new RenderbufferInfo(this, service_id)); |
+ scoped_refptr<Renderbuffer> info(new Renderbuffer(this, service_id)); |
std::pair<RenderbufferInfoMap::iterator, bool> result = |
renderbuffer_infos_.insert(std::make_pair(client_id, info)); |
DCHECK(result.second); |
@@ -118,16 +131,16 @@ void RenderbufferManager::CreateRenderbufferInfo( |
} |
} |
-RenderbufferManager::RenderbufferInfo* RenderbufferManager::GetRenderbufferInfo( |
+Renderbuffer* RenderbufferManager::GetRenderbuffer( |
GLuint client_id) { |
RenderbufferInfoMap::iterator it = renderbuffer_infos_.find(client_id); |
return it != renderbuffer_infos_.end() ? it->second : NULL; |
} |
-void RenderbufferManager::RemoveRenderbufferInfo(GLuint client_id) { |
+void RenderbufferManager::RemoveRenderbuffer(GLuint client_id) { |
RenderbufferInfoMap::iterator it = renderbuffer_infos_.find(client_id); |
if (it != renderbuffer_infos_.end()) { |
- RenderbufferInfo* info = it->second; |
+ Renderbuffer* info = it->second; |
info->MarkAsDeleted(); |
renderbuffer_infos_.erase(it); |
} |