694871da |
#ifndef GLTEXTUREND_HPP_
#define GLTEXTUREND_HPP_
#include <array>
#include <cstddef>
#include <string>
#include <globject.hpp>
#include <gltexture.hpp>
/// Class
template<std::size_t N>
class GLTextureND : public GLTexture
{
public:
/// Special member functions
using Size = std::array<GLsizei, N>;
explicit GLTextureND(
std::string object_label,
GLenum target,
GLenum binding,
GLenum size_max_name,
Size size,
GLenum internal_format = 0,
GLenum wrap = 0,
GLenum min_filter = 0,
GLenum mag_filter = 0
);
/// Core
GLOBJECT_GET(Size, size);
protected:
/// Core
std::size_t virtual data_size_() const override;
/// Check
void check_size_max_(GLenum size_max_name);
/// String
std::string static str_size_(Size size);
private:
/// Core
Size const size_;
};
/// Explicit template instantiation
extern template class GLTextureND<1>;
extern template class GLTextureND<2>;
extern template class GLTextureND<3>;
#endif // GLTEXTUREND_HPP_
|