#pragma once // Must be the first include #include // Other includes #include #include #include class Texture { public: struct Settings { Settings() : mipmaps(true), transparent(false){}; bool mipmaps; bool transparent; }; explicit Texture(const std::string &path, Settings settings) : id(load_texture(path, settings)), valid(false) { } bool is_valid() const; // Bind a texture from the given path and return its ID uint load_texture(const std::string &path, Settings settings); void bind_to(int unit); private: const uint id; bool valid; };