// // Copyright (c) 2002-2011 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // HandleAllocator.h: Defines the gl::HandleAllocator class, which is used to // allocate GL handles. #ifndef LIBGLESV2_HANDLEALLOCATOR_H_ #define LIBGLESV2_HANDLEALLOCATOR_H_ #define GL_APICALL #include #include #include "common/angleutils.h" namespace gl { class HandleAllocator { public: HandleAllocator(); virtual ~HandleAllocator(); void setBaseHandle(GLuint value); GLuint allocate(); void release(GLuint handle); private: DISALLOW_COPY_AND_ASSIGN(HandleAllocator); GLuint mBaseValue; GLuint mNextValue; typedef std::vector HandleList; HandleList mFreeValues; }; } #endif // LIBGLESV2_HANDLEALLOCATOR_H_