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 10namespace gpu { 11namespace gles2 { 12 13ImageManager::ImageManager() { 14} 15 16ImageManager::~ImageManager() { 17} 18 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 26void ImageManager::AddImage(gfx::GLImage* image, int32 service_id) { 27 DCHECK(images_.find(service_id) == images_.end()); 28 images_[service_id] = image; 29} 30 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 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