ladybird/Userland/Libraries/LibGL/NameAllocator.h
cflip 892006218a LibGL: Refactor TextureNameAllocator to a more general NameAllocator
This functionality can also be used for other types of objects.
2022-11-26 09:38:13 +01:00

28 lines
459 B
C++

/*
* Copyright (c) 2021, Jesse Buhagiar <jooster669@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/Stack.h>
#include <LibGL/GL/gl.h>
namespace GL {
class NameAllocator {
public:
NameAllocator() = default;
void allocate(GLsizei count, GLuint* names);
void free(GLuint name);
bool has_allocated_name(GLuint name) const;
private:
Stack<GLuint, 512> m_free_names;
GLuint m_last_id { 1 };
};
}