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