Vis 2 Demo  1.0
Technical illustration type real-time rendering of geometry
 All Classes Namespaces Files Functions Variables Typedefs Macros
Shader.h
Go to the documentation of this file.
1 #ifndef __SHADER_H__
2 #define __SHADER_H__
3 
4 #include <string>
5 #include <glew.h>
6 
7 namespace vis2
8 {
10  class Shader
11  {
12  public:
14 
19  Shader( const std::string& _vertexShader,
20  const std::string& _fragmentShader);
21 
23 
25  ~Shader();
26 
28  void useShader();
30  void releaseShader();
32  inline bool shaderInUse() const {return shader_in_use; }
33 
34  GLuint program_handle;
35 
36  private:
37 
38  // Shader( const Shader& ); /// \internal to hide - prevents shallow copies (bit-copy)! \endinternal
39 
41 
47  void loadShader(const std::string& _path_to_shader,
48  GLenum _shaderType,
49  GLuint& _shaderHandle);
50 
52 
54  void link();
55 
58 
60 
61  };
62 }
63 
64 
65 
66 #endif