source:
orxonox.OLD/trunk/src/lib/graphics/shader.h
@
5264
Last change on this file since 5264 was 5264, checked in by bensch, 19 years ago | |
---|---|
File size: 1.1 KB |
Rev | Line | |
---|---|---|
[4838] | 1 | /*! |
[5261] | 2 | * @file shader.h |
3 | * @brief Definition of the Shader rendering class | |
[3245] | 4 | */ |
[1853] | 5 | |
[5261] | 6 | #ifndef _SHADER_H |
7 | #define _SHADER_H | |
[1853] | 8 | |
[3543] | 9 | #include "base_object.h" |
[5261] | 10 | #include "glincl.h" |
[1853] | 11 | |
[5261] | 12 | |
13 | typedef enum | |
14 | { | |
15 | SHADER_NONE = 0, | |
16 | SHADER_FRAGMENT = 1, | |
17 | SHADER_VERTEX = 0, | |
18 | ||
19 | } SHADER_TYPE; | |
20 | ||
[4838] | 21 | // FORWARD DECLARATION |
[5262] | 22 | template<class T> class Array; |
[3543] | 23 | |
24 | ||
[3955] | 25 | //! A class for ... |
[5261] | 26 | class Shader : public BaseObject { |
[1853] | 27 | |
[1904] | 28 | public: |
[5262] | 29 | Shader(const char* vertexShaderFile = NULL, const char* fragmentShaderFile = NULL); |
[5261] | 30 | virtual ~Shader(); |
[1853] | 31 | |
[5261] | 32 | bool loadShaderProgramm(SHADER_TYPE type, const char* fileName); |
33 | bool activateShader(); | |
[5262] | 34 | void deleteProgram(SHADER_TYPE type); |
[3245] | 35 | |
[5264] | 36 | void printError(GLenum program); |
[5262] | 37 | void debug() const; |
38 | ||
39 | private: | |
40 | ||
[3245] | 41 | private: |
[5261] | 42 | char* fragmentShaderFile; |
43 | char* vertexShaderFile; | |
[5262] | 44 | Array<char*>* fragmentShaderSource; |
45 | Array<char*>* vertexShaderSource; | |
[5263] | 46 | Array<int>* fragmentShaderLengths; |
47 | Array<int>* vertexShaderLenghts; | |
[5261] | 48 | GLenum shaderProgram; |
49 | GLenum vertexShader; | |
50 | GLenum fragmentShader; | |
[1853] | 51 | }; |
52 | ||
[5261] | 53 | #endif /* _SHADER_H */ |
Note: See TracBrowser
for help on using the repository browser.