diff options
Diffstat (limited to 'gpu/command_buffer/service/renderbuffer_manager.cc')
-rw-r--r-- | gpu/command_buffer/service/renderbuffer_manager.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gpu/command_buffer/service/renderbuffer_manager.cc b/gpu/command_buffer/service/renderbuffer_manager.cc index 63aee26..88a2d26 100644 --- a/gpu/command_buffer/service/renderbuffer_manager.cc +++ b/gpu/command_buffer/service/renderbuffer_manager.cc @@ -10,6 +10,24 @@ namespace gpu { namespace gles2 { +RenderbufferManager::~RenderbufferManager() { + DCHECK(renderbuffer_infos_.empty()); +} + +void RenderbufferManager::Destroy(bool have_context) { + while (!renderbuffer_infos_.empty()) { + if (have_context) { + RenderbufferInfo* info = renderbuffer_infos_.begin()->second; + if (!info->IsDeleted()) { + GLuint service_id = info->service_id(); + glDeleteRenderbuffersEXT(1, &service_id); + info->MarkAsDeleted(); + } + } + renderbuffer_infos_.erase(renderbuffer_infos_.begin()); + } +} + void RenderbufferManager::CreateRenderbufferInfo( GLuint client_id, GLuint service_id) { std::pair<RenderbufferInfoMap::iterator, bool> result = |