Home | History | Annotate | Download | only in test
      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