1 #ifndef BLANK_SHADER_HPP_
2 #define BLANK_SHADER_HPP_
14 explicit Shader(GLenum type);
18 Shader &operator =(Shader &&);
20 Shader(const Shader &) = delete;
21 Shader &operator =(const Shader &) = delete;
23 void Source(const GLchar *src);
25 bool Compiled() const;
26 void Log(std::ostream &) const;
28 void AttachToProgram(GLuint id) const;
42 Program(const Program &) = delete;
43 Program &operator =(const Program &) = delete;
45 const Shader &LoadShader(GLenum type, const GLchar *src);
46 void Attach(Shader &);
49 void Log(std::ostream &) const;
51 GLint UniformLocation(const GLchar *name) const;
53 void Use() const { glUseProgram(handle); }
57 std::list<Shader> shaders;