14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file. 44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 50f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#ifndef CC_TEST_ORDERED_TEXTURE_MAP_H_ 60f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#define CC_TEST_ORDERED_TEXTURE_MAP_H_ 74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include <vector> 94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "base/containers/hash_tables.h" 114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "base/memory/ref_counted.h" 125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "third_party/khronos/GLES2/gl2.h" 134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace cc { 154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)struct TestTexture; 174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 180f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)class OrderedTextureMap { 194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) public: 204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) OrderedTextureMap(); 214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ~OrderedTextureMap(); 224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void Append(GLuint id, scoped_refptr<TestTexture> texture); 245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void Replace(GLuint id, scoped_refptr<TestTexture> texture); 255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void Remove(GLuint id); 264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) size_t Size(); 284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) bool ContainsId(GLuint id); 304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) scoped_refptr<TestTexture> TextureForId(GLuint id); 325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) GLuint IdAt(size_t index); 334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) private: 355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) typedef base::hash_map<GLuint, scoped_refptr<TestTexture> > 364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) TextureMap; 375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) typedef std::vector<GLuint> TextureList; 384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) TextureMap textures_; 404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) TextureList ordered_textures_; 414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}; 424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} // namespace cc 444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 450f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#endif // CC_TEST_ORDERED_TEXTURE_MAP_H_ 46