Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __SHADER_H__
00021 #define __SHADER_H__
00022
00023
00024
00025 #include <blort/Tracker/headers.h>
00026 #include <blort/TomGine/tgMathlib.h>
00027
00028 namespace Tracking{
00029
00033 class Shader{
00034 private:
00035 GLhandleARB fragment;
00036 GLhandleARB vertex;
00037 GLhandleARB program;
00038 public:
00039 Shader( const char *vertex_file = NULL,
00040 const char *fragment_file = NULL,
00041 const char *header = NULL);
00042 ~Shader();
00043
00044 void bind();
00045 void unbind();
00046 void dumpVars();
00047 void printInfoLog(GLhandleARB obj, const char *msg, ...);
00048 bool getStatus();
00049
00050 GLuint getAttribLoc(const char*);
00051 GLint getUniformLoc(const char*);
00052 void setUniform(const char*,int);
00053 void setUniform(const char*,unsigned);
00054 void setUniform(const char*,int,const int*);
00055 void setUniform(const char*,float);
00056 void setUniform(const char*,int,const float*);
00057 void setUniform(const char*,vec2);
00058 void setUniform(const char* var,int n,vec2* f);
00059 void setUniform(const char*,vec3);
00060 void setUniform(const char* var,int n,vec3* f);
00061 void setUniform(const char*,vec4);
00062 void setUniform(const char* var,int n,vec4* f);
00063 void setUniform(const char*,mat3,bool transpose=false);
00064 void setUniform(const char* var,int n,mat3* f,bool transpose);
00065 void setUniform(const char*,mat4,bool transpose=false);
00066 void setUniform(const char* var,int n,mat4* f,bool transpose);
00067
00068
00069 };
00070
00071 }
00072
00073 #endif //__SHADER_H__