• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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()13 ImageManager::ImageManager() {
14 }
15 
~ImageManager()16 ImageManager::~ImageManager() {
17 }
18 
Destroy(bool have_context)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 
AddImage(gfx::GLImage * image,int32 service_id)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 
RemoveImage(int32 service_id)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 
LookupImage(int32 service_id)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