aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Graphics
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Graphics')
-rw-r--r--src/libjin/Graphics/JSL.cpp24
-rw-r--r--src/libjin/Graphics/JSL.h19
2 files changed, 9 insertions, 34 deletions
diff --git a/src/libjin/Graphics/JSL.cpp b/src/libjin/Graphics/JSL.cpp
index e22e872..1eb1357 100644
--- a/src/libjin/Graphics/JSL.cpp
+++ b/src/libjin/Graphics/JSL.cpp
@@ -33,22 +33,6 @@ void main()
JSLProgram::JSLProgram(const char* program)
: currentTextureUnit(0)
{
- initialize(program);
- }
-
- JSLProgram::~JSLProgram()
- {
- destroy();
- }
-
- inline void JSLProgram::destroy()
- {
- if (currentJSLProgram == this)
- unuse();
- }
-
- inline void JSLProgram::initialize(const char* program)
- {
char* fs = (char*)alloca(strlen(program) + strlen(base_f));
sprintf(fs, base_f, program);
GLuint fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
@@ -58,7 +42,13 @@ void main()
glAttachShader(pid, fragmentShader);
glLinkProgram(pid);
}
-
+
+ JSLProgram::~JSLProgram()
+ {
+ if (currentJSLProgram == this)
+ unuse();
+ }
+
static inline GLint getMaxTextureUnits()
{
GLint maxTextureUnits = 0;
diff --git a/src/libjin/Graphics/JSL.h b/src/libjin/Graphics/JSL.h
index b9198fb..a99a4c7 100644
--- a/src/libjin/Graphics/JSL.h
+++ b/src/libjin/Graphics/JSL.h
@@ -17,11 +17,9 @@ namespace graphics
class JSLProgram
{
-
public:
-
static JSLProgram* createJSLProgram(const char* program);
-
+ static inline JSLProgram* getCurrentJSL() { return currentJSLProgram; }
virtual ~JSLProgram();
inline void use()
@@ -29,7 +27,6 @@ namespace graphics
glUseProgram(pid);
currentJSLProgram = this;
}
-
static inline void unuse()
{
glUseProgram(0);
@@ -44,27 +41,15 @@ namespace graphics
void sendCanvas(const char* name, const Canvas* canvas);
void sendColor(const char* name, const color* col);
- static inline JSLProgram* getCurrentJSL()
- {
- return currentJSLProgram;
- }
-
protected:
-
- JSLProgram(const char* program);
-
static JSLProgram* currentJSLProgram;
+ JSLProgram(const char* program);
GLuint pid;
-
std::map<std::string, GLint> texturePool;
-
GLint currentTextureUnit;
GLint getTextureUnit(const std::string& name);
- inline void initialize(const char* program);
- inline void destroy();
-
};
} // graphics