diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libjin/render/canvas.cpp | 7 | ||||
-rw-r--r-- | src/libjin/render/canvas.h | 5 | ||||
-rw-r--r-- | src/libjin/render/jsl.cpp | 5 | ||||
-rw-r--r-- | src/libjin/render/jsl.h | 5 | ||||
-rw-r--r-- | src/lua/graphics/luaopen_graphics.cpp | 4 |
5 files changed, 22 insertions, 4 deletions
diff --git a/src/libjin/render/canvas.cpp b/src/libjin/render/canvas.cpp index 89d0d77..fb84434 100644 --- a/src/libjin/render/canvas.cpp +++ b/src/libjin/render/canvas.cpp @@ -6,6 +6,12 @@ namespace jin { namespace render { + + shared Canvas* Canvas::createCanvas(int w, int h) + { + return new Canvas(w, h); + } + Canvas::Canvas(int w, int h) : Drawable(w, h) { @@ -119,5 +125,6 @@ namespace render glPushMatrix(); glLoadIdentity(); } + } }
\ No newline at end of file diff --git a/src/libjin/render/canvas.h b/src/libjin/render/canvas.h index e65c0c1..8162d4e 100644 --- a/src/libjin/render/canvas.h +++ b/src/libjin/render/canvas.h @@ -9,7 +9,8 @@ namespace render { public: - Canvas(int w, int h); + static Canvas* createCanvas(int w, int h); + ~Canvas(); void bind(); @@ -20,6 +21,8 @@ namespace render private: + Canvas(int w, int h); + GLuint fbo; // current binded fbo diff --git a/src/libjin/render/jsl.cpp b/src/libjin/render/jsl.cpp index 66c4551..003f93a 100644 --- a/src/libjin/render/jsl.cpp +++ b/src/libjin/render/jsl.cpp @@ -21,6 +21,11 @@ namespace render shared JSLProgram* JSLProgram::currentJSLProgram = nullptr; + JSLProgram* JSLProgram::createJSLProgram(const char* program) + { + return new JSLProgram(program); + } + JSLProgram::JSLProgram(const char* program) : currentTextureUnit(0) { diff --git a/src/libjin/render/jsl.h b/src/libjin/render/jsl.h index 8bb2deb..520a6eb 100644 --- a/src/libjin/render/jsl.h +++ b/src/libjin/render/jsl.h @@ -18,7 +18,8 @@ namespace render public: - JSLProgram(const char* program); + static JSLProgram* createJSLProgram(const char* program); + ~JSLProgram(); inline void JSLProgram::use() @@ -48,6 +49,8 @@ namespace render private: + JSLProgram(const char* program); + static JSLProgram* currentJSLProgram; GLuint pid; diff --git a/src/lua/graphics/luaopen_graphics.cpp b/src/lua/graphics/luaopen_graphics.cpp index 0d06aca..7db43c5 100644 --- a/src/lua/graphics/luaopen_graphics.cpp +++ b/src/lua/graphics/luaopen_graphics.cpp @@ -84,7 +84,7 @@ namespace lua { Proxy* proxy = (Proxy*)luax_newinstance(L, TYPE_JSL, sizeof(Proxy)); const char* program = luax_checkstring(L, 1); - JSLProgram* jsl = new JSLProgram(program); + JSLProgram* jsl = JSLProgram::createJSLProgram(program); proxy->bind(jsl); return 1; } @@ -98,7 +98,7 @@ namespace lua int w = luax_checknumber(L, 1); int h = luax_checknumber(L, 2); Proxy* proxy = (Proxy*)luax_newinstance(L, TYPE_CANVAS, sizeof(Proxy)); - Canvas* cvs = new Canvas(w, h); + Canvas* cvs = Canvas::createCanvas(w, h); proxy->bind(cvs); return 1; } |