root / trunk / tbeta / Windows / addons / ofxNCore / Copy of src / Filters / ShaderProgram.h @ 139

View | Annotate | Download (993 Bytes)

1 139 ss
#ifndef SHADERPROGRAM_H_
2 139 ss
#define SHADERPROGRAM_H_
3 139 ss
4 139 ss
#ifdef __APPLE_CC__
5 139 ss
        #include "GLee.h"
6 139 ss
        #include <OpenGL/gl.h>
7 139 ss
        #include <GLUT/glut.h>
8 139 ss
#else
9 139 ss
        #include <stdlib.h> //needed to avoid redefinition of exit
10 139 ss
        #include "GLee.h"
11 139 ss
        #include <GL/gl.h>
12 139 ss
#endif
13 139 ss
14 139 ss
15 139 ss
class ShaderProgram {
16 139 ss
17 139 ss
        private:
18 139 ss
                GLuint  vertex_shader_id;
19 139 ss
                GLuint  geometry_shader_id;
20 139 ss
                GLuint  fragment_shader_id;
21 139 ss
                GLuint  program;
22 139 ss
23 139 ss
        public:
24 139 ss
                ShaderProgram(const char* vertexSourceFile, const char* geometrySourceFile, const char* fragmentSourceFile); //pass NULL or 0 where you want the fixed funtion pipeline
25 139 ss
                inline void enable(void)  { glUseProgram(program);  };
26 139 ss
                inline void disable(void) { glUseProgram(0);        };
27 139 ss
                inline void setUniform1f(const char* name, float val){  glUniform1f(glGetUniformLocation(this->program, name), val);  };
28 139 ss
                inline void setUniform1i(const char* name, int val){  glUniform1i(glGetUniformLocation(this->program, name), val);  };
29 139 ss
                virtual ~ShaderProgram();
30 139 ss
31 139 ss
};
32 139 ss
33 139 ss
34 139 ss
#endif //SHADERPROGRAM_H_