From d304cbdeccf3db7330c09cb218096a45a2bdc746 Mon Sep 17 00:00:00 2001 From: "gman@chromium.org" Date: Thu, 1 Jul 2010 22:41:16 +0000 Subject: Free the resources used by a context group. TEST=unit tests BUG=none Review URL: http://codereview.chromium.org/2880013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51441 0039d316-1c4b-4281-b951-d872f2087c98 --- gpu/command_buffer/service/framebuffer_manager.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'gpu/command_buffer/service/framebuffer_manager.cc') diff --git a/gpu/command_buffer/service/framebuffer_manager.cc b/gpu/command_buffer/service/framebuffer_manager.cc index 1a7d739..8dd036b 100644 --- a/gpu/command_buffer/service/framebuffer_manager.cc +++ b/gpu/command_buffer/service/framebuffer_manager.cc @@ -9,6 +9,24 @@ namespace gpu { namespace gles2 { +FramebufferManager::~FramebufferManager() { + DCHECK(framebuffer_infos_.empty()); +} + +void FramebufferManager::Destroy(bool have_context) { + while (!framebuffer_infos_.empty()) { + if (have_context) { + FramebufferInfo* info = framebuffer_infos_.begin()->second; + if (!info->IsDeleted()) { + GLuint service_id = info->service_id(); + glDeleteFramebuffersEXT(1, &service_id); + info->MarkAsDeleted(); + } + } + framebuffer_infos_.erase(framebuffer_infos_.begin()); + } +} + void FramebufferManager::CreateFramebufferInfo( GLuint client_id, GLuint service_id) { std::pair result = -- cgit v1.1