1 #ifndef BLANK_GRAPHICS_PROGRAM_HPP_
2 #define BLANK_GRAPHICS_PROGRAM_HPP_
21 Program(const Program &) = delete;
22 Program &operator =(const Program &) = delete;
24 const Shader &LoadShader(GLenum type, const GLchar *src);
25 void Attach(Shader &) noexcept;
27 bool Linked() const noexcept;
28 void Log(std::ostream &) const;
30 GLint AttributeLocation(const GLchar *name) const noexcept;
31 GLint UniformLocation(const GLchar *name) const noexcept;
33 void Uniform(GLint, GLint) noexcept;
34 void Uniform(GLint, float) noexcept;
35 void Uniform(GLint, const glm::vec3 &) noexcept;
36 void Uniform(GLint, const glm::vec4 &) noexcept;
37 void Uniform(GLint, const glm::mat4 &) noexcept;
39 void Use() const noexcept { glUseProgram(handle); }
43 std::list<Shader> shaders;