diff options
Diffstat (limited to 'src/libjin/Graphics')
-rw-r--r-- | src/libjin/Graphics/JSL.cpp | 24 | ||||
-rw-r--r-- | src/libjin/Graphics/JSL.h | 19 |
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 |