diff options
Diffstat (limited to 'src/libjin/Graphics/Shader.h')
-rw-r--r-- | src/libjin/Graphics/Shader.h | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/libjin/Graphics/Shader.h b/src/libjin/Graphics/Shader.h index 83a2831..2ea9e04 100644 --- a/src/libjin/Graphics/Shader.h +++ b/src/libjin/Graphics/Shader.h @@ -1,6 +1,6 @@ #ifndef __LIBJIN_JSL_H #define __LIBJIN_JSL_H -#include "../modules.h" +#include "../jin_configuration.h" #if LIBJIN_MODULES_RENDER #include <string> @@ -15,30 +15,42 @@ namespace jin namespace graphics { - /* Jin Shader Language Program*/ - class JSLProgram + /* Jin Shading Language Program*/ + class Shader { public: - static JSLProgram* createJSLProgram(const char* program); - static inline JSLProgram* getCurrentJSL() { return currentJSLProgram; } + static Shader* createShader(const std::string& program); + static inline Shader* getCurrentJSL() { return currentShader; } static void unuse(); - virtual ~JSLProgram(); + static const char* PROJECTION_MATRIX; + static const char* MODEL_MATRIX; + static const char* MAIN_TEXTURE; + static const char* VERTEX_COORDS; + static const char* TEXTURE_COORDS; + + virtual ~Shader(); void use(); void sendFloat(const char* name, float number); void sendTexture(const char* name, const Texture* image); + void sendInt(const char* name, int value); void sendVec2(const char* name, float x, float y); void sendVec3(const char* name, float x, float y, float z); void sendVec4(const char* name, float x, float y, float z, float w); void sendCanvas(const char* name, const Canvas* canvas); void sendColor(const char* name, const Color* col); + void sendMatrix4(const char* name, const math::Matrix* mat4); + + void bindVertexPointer(int n, GLenum type, GLsizei stride, const GLvoid * pointers); + void bindUVPointer(int n, GLenum type, GLsizei stride, const GLvoid * pointers); protected: - static JSLProgram* currentJSLProgram; + static Shader* currentShader; GLint claimTextureUnit(const std::string& name); - JSLProgram(const char* program); + Shader(const std::string& program); + bool compile(const std::string& program); GLuint pid; GLint currentTextureUnit; |