#pragma once #include "config/types.h" #include "glArrays.h" #include "gl_traits.h" namespace Impl { // NOLINTNEXTLINE(readability-identifier-naming) struct glTexture : Detail::glNamed { [[nodiscard]] TextureDimensions getSize() const; void bind(GLenum type = GL_TEXTURE_2D, GLenum unit = GL_TEXTURE0) const; template void parameter(GLenum pname, T param) { (*gl_traits::glTextureParameterFunc)(name, pname, param); } template void parameter(GLenum pname, const glm::vec & param) { (*gl_traits::glTextureParametervFunc)(name, pname, glm::value_ptr(param)); } }; } // NOLINTBEGIN(readability-identifier-naming) template using glTextures = glManagedArray; using glTexture = glManagedSingle; // NOLINTEND(readability-identifier-naming)