aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libjin/render/canvas.cpp7
-rw-r--r--src/libjin/render/canvas.h5
-rw-r--r--src/libjin/render/jsl.cpp5
-rw-r--r--src/libjin/render/jsl.h5
-rw-r--r--src/lua/graphics/luaopen_graphics.cpp4
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;
}