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 #ifndef CC_TEST_ORDERED_TEXTURE_MAP_H_ 6 #define CC_TEST_ORDERED_TEXTURE_MAP_H_ 7 8 #include <vector> 9 10 #include "base/containers/hash_tables.h" 11 #include "base/memory/ref_counted.h" 12 #include "third_party/khronos/GLES2/gl2.h" 13 14 namespace cc { 15 16 struct TestTexture; 17 18 class OrderedTextureMap { 19 public: 20 OrderedTextureMap(); 21 ~OrderedTextureMap(); 22 23 void Append(GLuint id, scoped_refptr<TestTexture> texture); 24 void Replace(GLuint id, scoped_refptr<TestTexture> texture); 25 void Remove(GLuint id); 26 27 size_t Size(); 28 29 bool ContainsId(GLuint id); 30 31 scoped_refptr<TestTexture> TextureForId(GLuint id); 32 GLuint IdAt(size_t index); 33 34 private: 35 typedef base::hash_map<GLuint, scoped_refptr<TestTexture> > 36 TextureMap; 37 typedef std::vector<GLuint> TextureList; 38 39 TextureMap textures_; 40 TextureList ordered_textures_; 41 }; 42 43 } // namespace cc 44 45 #endif // CC_TEST_ORDERED_TEXTURE_MAP_H_ 46