From 7a20483f06624e82feb129c9e4c8fa13881a6a9f Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 22 Nov 2018 12:23:12 +0800 Subject: =?UTF-8?q?*=E4=BF=AE=E6=94=B9lua=20bind?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lua/modules/graphics/je_lua_graphics.cpp | 51 ++++++++++------------------ 1 file changed, 17 insertions(+), 34 deletions(-) (limited to 'src/lua/modules/graphics/je_lua_graphics.cpp') diff --git a/src/lua/modules/graphics/je_lua_graphics.cpp b/src/lua/modules/graphics/je_lua_graphics.cpp index 4ebd1ee..cc67055 100644 --- a/src/lua/modules/graphics/je_lua_graphics.cpp +++ b/src/lua/modules/graphics/je_lua_graphics.cpp @@ -208,8 +208,7 @@ namespace JinEngine return 1; } } - Proxy* proxy = luax_newinstance(L, Jin_Lua_Bitmap); - proxy->bind(new Shared(bitmap, Jin_Lua_Bitmap)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_Bitmap, new Shared(bitmap, Jin_Lua_Bitmap)); return 1; } @@ -229,8 +228,7 @@ namespace JinEngine const char* path = luax_checkstring(L, 1); texture = Texture::createTexture(path); } - Proxy* proxy = luax_newinstance(L, Jin_Lua_Texture); - proxy->bind(new Shared(texture, Jin_Lua_Texture)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_Texture, new Shared(texture, Jin_Lua_Texture)); return 1; } @@ -244,8 +242,7 @@ namespace JinEngine luax_pushnil(L); return 1; } - Proxy* proxy = luax_newinstance(L, Jin_Lua_Shader); - proxy->bind(new Shared(jsl, Jin_Lua_Shader)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_Shader, new Shared(jsl, Jin_Lua_Shader)); return 1; } @@ -268,8 +265,7 @@ namespace JinEngine luax_pushnil(L); return 1; } - Proxy* proxy = luax_newinstance(L, Jin_Lua_Shader); - proxy->bind(new Shared(jsl, Jin_Lua_Shader)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_Shader, new Shared(jsl, Jin_Lua_Shader)); return 1; } @@ -277,9 +273,8 @@ namespace JinEngine { int w = luax_checknumber(L, 1); int h = luax_checknumber(L, 2); - Proxy* proxy = luax_newinstance(L, Jin_Lua_Canvas); Canvas* cvs = Canvas::createCanvas(w, h); - proxy->bind(new Shared(cvs, Jin_Lua_Canvas)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_Canvas, new Shared(cvs, Jin_Lua_Canvas)); return 1; } @@ -676,7 +671,6 @@ namespace JinEngine LUA_IMPLEMENT int l_newTTFData(lua_State* L) { - Proxy* proxy = luax_newinstance(L, Jin_Lua_TTFData); TTFData* fd = nullptr; { const char* path = luax_checkstring(L, 1); @@ -691,7 +685,7 @@ namespace JinEngine fs->read(path, b); fd = TTFData::createTTFData(&b, b.size()); } - proxy->bind(new Shared(fd, Jin_Lua_TTFData)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_TTFData, new Shared(fd, Jin_Lua_TTFData)); return 1; } @@ -714,8 +708,7 @@ namespace JinEngine unsigned length; const char* data = luax_checklstring(L, 1, &length); Text* text = new Text(encode, data, length); - Proxy* proxy = luax_newinstance(L, Jin_Lua_Text); - proxy->bind(new Shared(text, Jin_Lua_Text)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_Text, new Shared(text, Jin_Lua_Text)); return 1; } @@ -743,8 +736,7 @@ namespace JinEngine quad.h = luax_rawgetnumberthenpop(L, 2, 4); int o = luax_checkinteger(L, 3); Origin origin = static_cast(o); - Proxy* p = luax_newinstance(L, Jin_Lua_Sprite); - p->bind(new Shared(new Sprite(graphic, quad, origin), Jin_Lua_Sprite)); + Proxy* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(new Sprite(graphic, quad, origin), Jin_Lua_Sprite)); } else if (n == 4) { @@ -755,22 +747,19 @@ namespace JinEngine quad.h = luax_rawgetnumberthenpop(L, 2, 4); int ox = luax_checkinteger(L, 3); int oy = luax_checkinteger(L, 4); - Proxy* p = luax_newinstance(L, Jin_Lua_Sprite); - p->bind(new Shared(new Sprite(graphic, quad, ox, oy), Jin_Lua_Sprite)); + Proxy* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(new Sprite(graphic, quad, ox, oy), Jin_Lua_Sprite)); } else if (n == 2) { int o = luax_checkinteger(L, 2); Origin origin = static_cast(o); - Proxy* p = luax_newinstance(L, Jin_Lua_Sprite); - p->bind(new Shared(new Sprite(graphic, origin), Jin_Lua_Sprite)); + Proxy* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(new Sprite(graphic, origin), Jin_Lua_Sprite)); } else if (n == 3) { int ox = luax_checkinteger(L, 2); int oy = luax_checkinteger(L, 3); - Proxy* p = luax_newinstance(L, Jin_Lua_Sprite); - p->bind(new Shared(new Sprite(graphic, ox, oy), Jin_Lua_Sprite)); + Proxy* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(new Sprite(graphic, ox, oy), Jin_Lua_Sprite)); } else { @@ -791,12 +780,11 @@ namespace JinEngine pxyGraphic = (Proxy*)luax_checktype(L, 1, Jin_Lua_Canvas); if (pxyGraphic != nullptr) { - Proxy* pxySSheet = luax_newinstance(L, Jin_Lua_SpriteSheet); Graphic* graphic = pxyGraphic->getObject(); Shared* shrSSheet = new Shared(new SpriteSheet(graphic), Jin_Lua_SpriteSheet); Shared& shrGraphic = pxyGraphic->getShared(); shrSSheet->setDependency((int)SpriteSheetDependency::DEP_GRAPHIC, &shrGraphic); - pxySSheet->bind(shrSSheet); + Proxy* pxySSheet = luax_newinstance(L, Jin_Lua_SpriteSheet, shrSSheet); return 1; } else @@ -830,8 +818,7 @@ namespace JinEngine (*shrAnimation)->setLoop(loop); (*shrAnimation)->setSpeed(speed); } - Proxy* pxyAnimation = luax_newinstance(L, Jin_Lua_Animation); - pxyAnimation->bind(shrAnimation); + Proxy* pxyAnimation = luax_newinstance(L, Jin_Lua_Animation, shrAnimation); return 1; } @@ -847,8 +834,7 @@ namespace JinEngine (*shrAniamtor)->setAnimation(shrAnimtion.getObject()); (*shrAniamtor).setDependency((int)AnimatorDependency::DEP_ANIMATION, &shrAnimtion); } - Proxy* pxyAnimator = luax_newinstance(L, Jin_Lua_Animator); - pxyAnimator->bind(shrAniamtor); + Proxy* pxyAnimator = luax_newinstance(L, Jin_Lua_Animator, shrAniamtor); return 1; } @@ -899,8 +885,7 @@ namespace JinEngine // Delete temporary text. delete text; } - Proxy* proxy = luax_newinstance(L, Jin_Lua_TextureFont); - proxy->bind(new Shared(textureFont, Jin_Lua_TextureFont)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_TextureFont, new Shared(textureFont, Jin_Lua_TextureFont)); return 1; } @@ -985,7 +970,7 @@ namespace JinEngine luaopen_Animation(L); luaopen_Animator(L); - luaL_Reg f[] = { + luaL_Reg methods[] = { /* window */ { "init", l_init }, { "setTitle", l_setTitle }, @@ -1041,10 +1026,8 @@ namespace JinEngine { "scale", l_scale }, { 0, 0 } }; - // Load whole lib. - luax_newlib(L, f); - + luax_newlib(L, methods); return 1; } -- cgit v1.1-26-g67d0