1 // Copyright 2013 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 "cc/test/ordered_texture_map.h" 6 7 #include "base/logging.h" 8 #include "cc/test/test_texture.h" 9 10 namespace cc { 11 OrderedTextureMap()12OrderedTextureMap::OrderedTextureMap() {} 13 ~OrderedTextureMap()14OrderedTextureMap::~OrderedTextureMap() {} 15 Append(GLuint id,scoped_refptr<TestTexture> texture)16void OrderedTextureMap::Append(GLuint id, 17 scoped_refptr<TestTexture> texture) { 18 DCHECK(texture.get()); 19 DCHECK(!ContainsId(id)); 20 21 textures_[id] = texture; 22 ordered_textures_.push_back(id); 23 } 24 Replace(GLuint id,scoped_refptr<TestTexture> texture)25void OrderedTextureMap::Replace(GLuint id, 26 scoped_refptr<TestTexture> texture) { 27 DCHECK(texture.get()); 28 DCHECK(ContainsId(id)); 29 30 textures_[id] = texture; 31 } 32 Remove(GLuint id)33void OrderedTextureMap::Remove(GLuint id) { 34 TextureMap::iterator map_it = textures_.find(id); 35 DCHECK(map_it != textures_.end()); 36 textures_.erase(map_it); 37 38 TextureList::iterator list_it = 39 std::find(ordered_textures_.begin(), ordered_textures_.end(), id); 40 DCHECK(list_it != ordered_textures_.end()); 41 ordered_textures_.erase(list_it); 42 } 43 Size()44size_t OrderedTextureMap::Size() { return ordered_textures_.size(); } 45 ContainsId(GLuint id)46bool OrderedTextureMap::ContainsId(GLuint id) { 47 return textures_.find(id) != textures_.end(); 48 } 49 TextureForId(GLuint id)50scoped_refptr<TestTexture> OrderedTextureMap::TextureForId(GLuint id) { 51 DCHECK(ContainsId(id)); 52 scoped_refptr<TestTexture> texture = textures_[id]; 53 DCHECK(texture.get()); 54 return texture; 55 } 56 IdAt(size_t index)57GLuint OrderedTextureMap::IdAt(size_t index) { 58 DCHECK(index < Size()); 59 return ordered_textures_[index]; 60 } 61 62 } // namespace cc 63