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 3 // found in the LICENSE file. 4 5 #include "gpu/command_buffer/service/image_manager.h" 6 7 #include "base/logging.h" 8 #include "ui/gl/gl_image.h" 9 10 namespace gpu { 11 namespace gles2 { 12 13 ImageManager::ImageManager() { 14 } 15 16 ImageManager::~ImageManager() { 17 } 18 19 void ImageManager::Destroy(bool have_context) { 20 for (GLImageMap::const_iterator iter = images_.begin(); iter != images_.end(); 21 ++iter) 22 iter->second.get()->Destroy(have_context); 23 images_.clear(); 24 } 25 26 void ImageManager::AddImage(gfx::GLImage* image, int32 service_id) { 27 DCHECK(images_.find(service_id) == images_.end()); 28 images_[service_id] = image; 29 } 30 31 void ImageManager::RemoveImage(int32 service_id) { 32 GLImageMap::iterator iter = images_.find(service_id); 33 DCHECK(iter != images_.end()); 34 iter->second.get()->Destroy(true); 35 images_.erase(iter); 36 } 37 38 gfx::GLImage* ImageManager::LookupImage(int32 service_id) { 39 GLImageMap::const_iterator iter = images_.find(service_id); 40 if (iter != images_.end()) 41 return iter->second.get(); 42 43 return NULL; 44 } 45 46 } // namespace gles2 47 } // namespace gpu 48