#ifndef GLTEXTUREND_HPP_ #define GLTEXTUREND_HPP_ #include #include #include #include #include /// Class template class GLTextureND : public GLTexture { public: /// Special member functions using Size = std::array; 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_