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 ImageManager()13ImageManager::ImageManager() { 14 } 15 ~ImageManager()16ImageManager::~ImageManager() { 17 } 18 Destroy(bool have_context)19void 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 AddImage(gfx::GLImage * image,int32 service_id)26void ImageManager::AddImage(gfx::GLImage* image, int32 service_id) { 27 DCHECK(images_.find(service_id) == images_.end()); 28 images_[service_id] = image; 29 } 30 RemoveImage(int32 service_id)31void 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 LookupImage(int32 service_id)38gfx::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