#ifndef TEXTURE_H #define TEXTURE_H #include #include "wrapper/TextureFormat.h" class Texture final { TextureFormat format; GLuint texture; template friend class Framebuffer; public: Texture(const TextureFormat& format); Texture(); ~Texture(); Texture(const Texture& other) = delete; Texture(Texture&& other) = delete; Texture& operator=(const Texture& other) = delete; Texture& operator=(Texture&& other) = delete; void setFormat(const TextureFormat& format); void setNearestFilter(); void setLinearFilter(); void setRepeatWrap(); void setClampWrap(); void setData(int width, int height, const void* data = nullptr); void bindTo(int index = 0) const; private: void setFilter(GLint param); void setWrap(GLint param); void bind() const; }; #endif