#pragma once #include #include #include "Shader.hpp" #include "Uniform.hpp" namespace MC::GFX::Shading { class Program { public: Program() : m_program(0) {} Program(Shader vertex, Shader fragment); U32 get() const; std::optional uniform(std::string const& name) const; void bind() const; void unbind() const; private: U32 m_program; }; }