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/WebKit/public/platform/WebGraphicsContext3D.h" 13 14 namespace cc { 15 16 struct TestTexture; 17 18 class OrderedTextureMap { 19 public: 20 OrderedTextureMap(); 21 ~OrderedTextureMap(); 22 23 void Append(blink::WebGLId id, scoped_refptr<TestTexture> texture); 24 void Replace(blink::WebGLId id, scoped_refptr<TestTexture> texture); 25 void Remove(blink::WebGLId id); 26 27 size_t Size(); 28 29 bool ContainsId(blink::WebGLId id); 30 31 scoped_refptr<TestTexture> TextureForId(blink::WebGLId id); 32 blink::WebGLId IdAt(size_t index); 33 34 private: 35 typedef base::hash_map<blink::WebGLId, scoped_refptr<TestTexture> > 36 TextureMap; 37 typedef std::vector<blink::WebGLId> TextureList; 38 39 TextureMap textures_; 40 TextureList ordered_textures_; 41 }; 42 43 } // namespace cc 44 45 #endif // CC_TEST_ORDERED_TEXTURE_MAP_H_ 46