aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Graphics/Shader.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Graphics/Shader.h')
-rw-r--r--src/libjin/Graphics/Shader.h28
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;