/*! * @file shader.h * @brief Definition of the Shader rendering class */ #ifndef _SHADER_H #define _SHADER_H #include "base_object.h" #include "glincl.h" typedef enum { SHADER_NONE = 0, SHADER_FRAGMENT = 1, SHADER_VERTEX = 0, } SHADER_TYPE; // FORWARD DECLARATION template class Array; //! A class for ... class Shader : public BaseObject { public: Shader(const char* vertexShaderFile = NULL, const char* fragmentShaderFile = NULL); virtual ~Shader(); bool loadShaderProgramm(SHADER_TYPE type, const char* fileName); bool activateShader(); void deleteProgram(SHADER_TYPE type); void debug() const; private: private: char* fragmentShaderFile; char* vertexShaderFile; Array* fragmentShaderSource; Array* vertexShaderSource; Array* fragmentShaderLengths; Array* vertexShaderLenghts; GLenum shaderProgram; GLenum vertexShader; GLenum fragmentShader; }; #endif /* _SHADER_H */