#ifndef OPENGLTEXTURE_HPP
#define OPENGLTEXTURE_HPP

#include <epoxy/gl.h>
#include <string>

class OpenGlTexture
{
	public:
		OpenGlTexture(const std::string &texture_path);
		OpenGlTexture();
		OpenGlTexture(const OpenGlTexture &tex) = delete;
		OpenGlTexture(const OpenGlTexture &&tex) = delete;
		~OpenGlTexture();
		void setRGBDataFromBytes(unsigned int width, unsigned int height, char *buffer);
		void loadFromImagePath(const std::string &base_directory);
		void use(unsigned int slot);
		void use();
		const std::string &getPath();
		float blend;

	private:
		std::string texture_path;
	protected:
		GLuint texture;

};

#endif // OPENGLTEXTURE_HPP
