| Index: gpu/command_buffer/service/image_manager.cc
|
| diff --git a/gpu/command_buffer/service/image_manager.cc b/gpu/command_buffer/service/image_manager.cc
|
| index a3ac4350c875fabb11f6e53375bfeef68d158e6f..b3b1357d5b875ccd96a64dd69e7aecf15cb9018f 100644
|
| --- a/gpu/command_buffer/service/image_manager.cc
|
| +++ b/gpu/command_buffer/service/image_manager.cc
|
| @@ -15,6 +15,14 @@ ImageManager::ImageManager() : release_after_use_(false) {
|
| ImageManager::~ImageManager() {
|
| }
|
|
|
| +void ImageManager::Destroy(bool have_context) {
|
| + for (GLImageMap::const_iterator iter = gl_images_.begin();
|
| + iter != gl_images_.end();
|
| + ++iter)
|
| + iter->second.get()->Destroy(have_context);
|
| + gl_images_.clear();
|
| +}
|
| +
|
| void ImageManager::RegisterGpuMemoryBuffer(int32 id,
|
| gfx::GpuMemoryBufferHandle buffer,
|
| size_t width,
|
| @@ -44,6 +52,19 @@ void ImageManager::RegisterGpuMemoryBuffer(int32 id,
|
| }
|
|
|
| void ImageManager::UnregisterGpuMemoryBuffer(int32 id) {
|
| + if (id <= 0) {
|
| + DVLOG(0) << "Cannot Unregister GPU memory buffer with non-positive ID.";
|
| + return;
|
| + }
|
| +
|
| + gfx::GLImage* image = LookupImage(id);
|
| + if (!image) {
|
| + DVLOG(0) << "Invalid ID.";
|
| + return;
|
| + }
|
| +
|
| + image->Destroy(true);
|
| +
|
| RemoveImage(id);
|
| }
|
|
|
|
|