From e1bc01ce6948283930f7f29a640a91a27a29c997 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 4 Dec 2018 14:10:29 +0800 Subject: =?UTF-8?q?*=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lua/modules/graphics/je_lua_animation.cpp | 15 +++--- src/lua/modules/graphics/je_lua_animator.cpp | 5 +- src/lua/modules/graphics/je_lua_bitmap.cpp | 2 +- src/lua/modules/graphics/je_lua_graphics.cpp | 67 +++++++++++++----------- src/lua/modules/graphics/je_lua_spritesheet.cpp | 12 ++--- src/lua/modules/graphics/je_lua_texture_font.cpp | 6 +-- src/lua/modules/graphics/je_lua_ttf.cpp | 6 +-- src/lua/modules/graphics/je_lua_ttf_data.cpp | 6 +-- 8 files changed, 63 insertions(+), 56 deletions(-) (limited to 'src/lua/modules/graphics') diff --git a/src/lua/modules/graphics/je_lua_animation.cpp b/src/lua/modules/graphics/je_lua_animation.cpp index 32e2c9c..4cb513c 100644 --- a/src/lua/modules/graphics/je_lua_animation.cpp +++ b/src/lua/modules/graphics/je_lua_animation.cpp @@ -38,19 +38,21 @@ namespace JinEngine // addFrame(frame) LUA_IMPLEMENT int l_addFrame(lua_State* L) { - SharedAnimation shrAnimation = checkAnimation(L); + LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation); + SharedAnimation shrAnimation = luaObj->getShared(); LuaObject* pxySprite = (LuaObject*)luax_checktype(L, 2, Jin_Lua_Sprite); Shared& shrSprite = pxySprite->getShared(); shrAnimation->addFrame(shrSprite.getObject()); int i = shrAnimation->getFrameCount() - 1; - shrAnimation.setDependency((int)AnimationDependency::DEP_SPRITES + i, &shrSprite); + luaObj->setDependency((int)AnimationDependency::DEP_SPRITES + i, &shrSprite); return 0; } // addFrames(frames table) LUA_IMPLEMENT int l_addFrames(lua_State* L) { - SharedAnimation shrAnimation = checkAnimation(L); + LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation); + SharedAnimation shrAnimation = luaObj->getShared(); if (!luax_istable(L, 2)) { luax_typerror(L, 2, "sprites table"); @@ -64,7 +66,7 @@ namespace JinEngine Shared& shrSprite = pxySprite->getShared(); shrAnimation->addFrame(shrSprite.getObject()); int index = shrAnimation->getFrameCount() - 1; - shrAnimation.setDependency((int)AnimationDependency::DEP_SPRITES + index, &shrSprite); + luaObj->setDependency((int)AnimationDependency::DEP_SPRITES + index, &shrSprite); } return 0; } @@ -87,9 +89,10 @@ namespace JinEngine LUA_IMPLEMENT int l_getFrame(lua_State* L) { - SharedAnimation shrAnimation = checkAnimation(L); + LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation); + SharedAnimation shrAnimation = luaObj->getShared(); int i = luax_checkinteger(L, 2); - SharedBase* shrFrame = shrAnimation.getDependency((int)AnimationDependency::DEP_SPRITES + i); + SharedBase* shrFrame = luaObj->getDependency((int)AnimationDependency::DEP_SPRITES + i); luax_getobject(L, shrFrame); return 1; } diff --git a/src/lua/modules/graphics/je_lua_animator.cpp b/src/lua/modules/graphics/je_lua_animator.cpp index 43a1f50..c8dd420 100644 --- a/src/lua/modules/graphics/je_lua_animator.cpp +++ b/src/lua/modules/graphics/je_lua_animator.cpp @@ -85,10 +85,11 @@ namespace JinEngine LUA_IMPLEMENT int l_setAnimation(lua_State* L) { - SharedAnimator shrAnimator = checkAnimator(L); + LuaObject* luaAnimator = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animator); + SharedAnimator shrAnimator = luaAnimator->getShared(); LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation); Shared& shrAnimation = luaObj->getShared(); - shrAnimator.setDependency((int)AnimatorDependency::DEP_ANIMATION, &shrAnimation); + luaAnimator->setDependency((int)AnimatorDependency::DEP_ANIMATION, &shrAnimation); shrAnimator->setAnimation(shrAnimation.getObject()); return 0; } diff --git a/src/lua/modules/graphics/je_lua_bitmap.cpp b/src/lua/modules/graphics/je_lua_bitmap.cpp index 9b71e9b..26908e6 100644 --- a/src/lua/modules/graphics/je_lua_bitmap.cpp +++ b/src/lua/modules/graphics/je_lua_bitmap.cpp @@ -90,7 +90,7 @@ namespace JinEngine SharedBitmap shared = checkBitmap(L); Bitmap* bitmap = shared.getObject(); Bitmap* b = Bitmap::clone(bitmap); - LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Bitmap, new Shared(L, b, Jin_Lua_Bitmap)); + LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Bitmap, new Shared(b, Jin_Lua_Bitmap)); return 1; } diff --git a/src/lua/modules/graphics/je_lua_graphics.cpp b/src/lua/modules/graphics/je_lua_graphics.cpp index 907d90e..34ef8e7 100644 --- a/src/lua/modules/graphics/je_lua_graphics.cpp +++ b/src/lua/modules/graphics/je_lua_graphics.cpp @@ -207,7 +207,7 @@ namespace JinEngine return 1; } } - LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Bitmap, new Shared(L, bitmap, Jin_Lua_Bitmap)); + LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Bitmap, new Shared(bitmap, Jin_Lua_Bitmap)); return 1; } @@ -227,7 +227,7 @@ namespace JinEngine const char* path = luax_checkstring(L, 1); texture = Texture::createTexture(path); } - LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Texture, new Shared(L, texture, Jin_Lua_Texture)); + LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Texture, new Shared(texture, Jin_Lua_Texture)); return 1; } @@ -241,7 +241,7 @@ namespace JinEngine luax_pushnil(L); return 1; } - LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Shader, new Shared(L, jsl, Jin_Lua_Shader)); + LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Shader, new Shared(jsl, Jin_Lua_Shader)); return 1; } @@ -264,7 +264,7 @@ namespace JinEngine luax_pushnil(L); return 1; } - LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Shader, new Shared(L, jsl, Jin_Lua_Shader)); + LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Shader, new Shared(jsl, Jin_Lua_Shader)); return 1; } @@ -273,7 +273,7 @@ namespace JinEngine int w = luax_checknumber(L, 1); int h = luax_checknumber(L, 2); Canvas* cvs = Canvas::createCanvas(w, h); - LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Canvas, new Shared(L, cvs, Jin_Lua_Canvas)); + LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Canvas, new Shared(cvs, Jin_Lua_Canvas)); return 1; } @@ -684,7 +684,7 @@ namespace JinEngine fs->read(path, b); fd = TTFData::createTTFData(&b, b.size()); } - LuaObject* luaObj = luax_newinstance(L, Jin_Lua_TTFData, new Shared(L, fd, Jin_Lua_TTFData)); + LuaObject* luaObj = luax_newinstance(L, Jin_Lua_TTFData, new Shared(fd, Jin_Lua_TTFData)); return 1; } @@ -707,7 +707,7 @@ namespace JinEngine unsigned length; const char* data = luax_checklstring(L, 1, &length); Text* text = new Text(encode, data, length); - LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Text, new Shared(L, text, Jin_Lua_Text)); + LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Text, new Shared(text, Jin_Lua_Text)); return 1; } @@ -718,13 +718,13 @@ namespace JinEngine LUA_IMPLEMENT int l_newSprite(lua_State* L) { int n = luax_gettop(L); - LuaObject* pxyGraphic = nullptr; + LuaObject* objGraphic = nullptr; if (luax_istype(L, 1, Jin_Lua_Texture)) - pxyGraphic = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Texture); + objGraphic = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Texture); else if (luax_istype(L, 1, Jin_Lua_Canvas)) - pxyGraphic = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Canvas); - Graphic* graphic = pxyGraphic->getObject(); - if (pxyGraphic != nullptr) + objGraphic = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Canvas); + Graphic* graphic = objGraphic->getObject(); + if (objGraphic != nullptr) { if (n == 3 && luax_istable(L, 2)) { @@ -735,7 +735,7 @@ namespace JinEngine quad.h = luax_rawgetnumberthenpop(L, 2, 4); int o = luax_checkinteger(L, 3); Origin origin = static_cast(o); - LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(L, new Sprite(graphic, quad, origin), Jin_Lua_Sprite)); + LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(new Sprite(graphic, quad, origin), Jin_Lua_Sprite)); } else if (n == 4) { @@ -746,19 +746,19 @@ namespace JinEngine quad.h = luax_rawgetnumberthenpop(L, 2, 4); int ox = luax_checkinteger(L, 3); int oy = luax_checkinteger(L, 4); - LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(L, new Sprite(graphic, quad, ox, oy), Jin_Lua_Sprite)); + LuaObject* 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); - LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(L, new Sprite(graphic, origin), Jin_Lua_Sprite)); + LuaObject* 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); - LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(L, new Sprite(graphic, ox, oy), Jin_Lua_Sprite)); + LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(new Sprite(graphic, ox, oy), Jin_Lua_Sprite)); } else { @@ -772,18 +772,18 @@ namespace JinEngine LUA_IMPLEMENT int l_newSpriteSheet(lua_State* L) { - LuaObject* pxyGraphic = nullptr; + LuaObject* objGraphic = nullptr; if (luax_istype(L, 1, Jin_Lua_Texture)) - pxyGraphic = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Texture); + objGraphic = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Texture); else if(luax_istype(L, 1, Jin_Lua_Canvas)) - pxyGraphic = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Canvas); - if (pxyGraphic != nullptr) + objGraphic = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Canvas); + if (objGraphic != nullptr) { - Graphic* graphic = pxyGraphic->getObject(); - Shared* shrSSheet = new Shared(L, new SpriteSheet(graphic), Jin_Lua_SpriteSheet); - Shared& shrGraphic = pxyGraphic->getShared(); - shrSSheet->setDependency((int)SpriteSheetDependency::DEP_GRAPHIC, &shrGraphic); - LuaObject* pxySSheet = luax_newinstance(L, Jin_Lua_SpriteSheet, shrSSheet); + Graphic* graphic = objGraphic->getObject(); + Shared* shrSSheet = new Shared(new SpriteSheet(graphic), Jin_Lua_SpriteSheet); + Shared& shrGraphic = objGraphic->getShared(); + LuaObject* luaSSheet = luax_newinstance(L, Jin_Lua_SpriteSheet, shrSSheet); + luaSSheet->setDependency((int)SpriteSheetDependency::DEP_GRAPHIC, &shrGraphic); return 1; } else @@ -794,7 +794,8 @@ namespace JinEngine LUA_IMPLEMENT int l_newAnimation(lua_State* L) { int argc = luax_gettop(L); - Shared* shrAnimation = new Shared(L, new Animation(), Jin_Lua_Animation); + Shared* shrAnimation = new Shared(new Animation(), Jin_Lua_Animation); + LuaObject* luaAnimation = luax_newinstance(L, Jin_Lua_Animation, shrAnimation); if (argc >= 3) { if (!luax_istable(L, 1)) @@ -812,12 +813,12 @@ namespace JinEngine Shared& shrSprite = pxySprite->getShared(); (*shrAnimation)->addFrame(shrSprite.getObject()); int index = (*shrAnimation)->getFrameCount() - 1; - (*shrAnimation).setDependency((int)AnimationDependency::DEP_SPRITES + index, &shrSprite); + luaAnimation->setDependency((int)AnimationDependency::DEP_SPRITES + index, &shrSprite); } (*shrAnimation)->setLoop(loop); (*shrAnimation)->setSpeed(speed); } - LuaObject* pxyAnimation = luax_newinstance(L, Jin_Lua_Animation, shrAnimation); + luax_pushvalue(L, argc + 1); return 1; } @@ -825,20 +826,22 @@ namespace JinEngine LUA_IMPLEMENT int l_newAnimator(lua_State* L) { int argc = luax_gettop(L); - Shared* shrAniamtor = new Shared(L, new Animator(), Jin_Lua_Animator); + Shared* shrAniamtor = new Shared(new Animator(), Jin_Lua_Animator); if (argc >= 1) { LuaObject* pxyAnimation = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation); Shared& shrAnimtion = pxyAnimation->getShared(); (*shrAniamtor)->setAnimation(shrAnimtion.getObject()); - (*shrAniamtor).setDependency((int)AnimatorDependency::DEP_ANIMATION, &shrAnimtion); + LuaObject* pxyAnimator = luax_newinstance(L, Jin_Lua_Animator, shrAniamtor); + pxyAnimator->setDependency((int)AnimatorDependency::DEP_ANIMATION, &shrAnimtion); + return 1; } LuaObject* pxyAnimator = luax_newinstance(L, Jin_Lua_Animator, shrAniamtor); return 1; } /* newTextureFont(bitmap, text, color | cellw, cellh) */ - LUA_IMPLEMENT int l_newTextureFont(lua_State* L) + LUA_IMPLEMENT int l_newTextureFont(lua_State* L) { LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Bitmap); Bitmap* bitmap = p->getObject(); @@ -884,7 +887,7 @@ namespace JinEngine // Delete temporary text. delete text; } - LuaObject* luaObj = luax_newinstance(L, Jin_Lua_TextureFont, new Shared(L, textureFont, Jin_Lua_TextureFont)); + LuaObject* luaObj = luax_newinstance(L, Jin_Lua_TextureFont, new Shared(textureFont, Jin_Lua_TextureFont)); return 1; } diff --git a/src/lua/modules/graphics/je_lua_spritesheet.cpp b/src/lua/modules/graphics/je_lua_spritesheet.cpp index a2f3c04..8e336c3 100644 --- a/src/lua/modules/graphics/je_lua_spritesheet.cpp +++ b/src/lua/modules/graphics/je_lua_spritesheet.cpp @@ -48,9 +48,9 @@ namespace JinEngine origin = static_cast(o); spr = sheet->createSprite(quad, origin); } - Shared* shrSprite = new Shared(L, spr, Jin_Lua_Sprite); - shrSprite->setDependency((int)SpriteDependency::DEP_SPRITESHEET, &shrSSheet); + Shared* shrSprite = new Shared(spr, Jin_Lua_Sprite); LuaObject* pxySprite = luax_newinstance(L, Jin_Lua_Sprite, shrSprite); + pxySprite->setDependency((int)SpriteDependency::DEP_SPRITESHEET, &shrSSheet); return 1; } @@ -93,13 +93,13 @@ namespace JinEngine return 1; } luax_newtable(L); - SharedBase* shrGraphic = shrSS.getDependency((int)SpriteSheetDependency::DEP_GRAPHIC); + SharedBase* shrGraphic = pxySS->getDependency((int)SpriteSheetDependency::DEP_GRAPHIC); for (int i = 0; i < sprs.size(); ++i) { Sprite* spr = sprs[i]; - Shared* shrSpr = new Shared(L, spr, Jin_Lua_Sprite); - shrSpr->setDependency((int)SpriteDependency::DEP_GRAPHIC, shrGraphic); - LuaObject* pxys = (LuaObject*)luax_newinstance(L, Jin_Lua_Sprite, shrSpr); + Shared* shrSpr = new Shared(spr, Jin_Lua_Sprite); + LuaObject* luaSpr = (LuaObject*)luax_newinstance(L, Jin_Lua_Sprite, shrSpr); + luaSpr->setDependency((int)SpriteDependency::DEP_GRAPHIC, shrGraphic); luax_rawseti(L, -2, i + 1); } return 1; diff --git a/src/lua/modules/graphics/je_lua_texture_font.cpp b/src/lua/modules/graphics/je_lua_texture_font.cpp index eee134c..afabf18 100644 --- a/src/lua/modules/graphics/je_lua_texture_font.cpp +++ b/src/lua/modules/graphics/je_lua_texture_font.cpp @@ -44,9 +44,9 @@ namespace JinEngine Text* text = p2->getObject(); page = tf->typeset(*text, lineheight, spacing); } - Shared* shrPage = new Shared(L, page, Jin_Lua_Page); - shrPage->setDependency((int)PageDependency::DEP_TEXTURE_FONT, &shrTexFont); - LuaObject* pxyPage = luax_newinstance(L, Jin_Lua_Page, shrPage); + Shared* shrPage = new Shared(page, Jin_Lua_Page); + LuaObject* luaPage = luax_newinstance(L, Jin_Lua_Page, shrPage); + luaPage->setDependency((int)PageDependency::DEP_TEXTURE_FONT, &shrTexFont); return 1; } diff --git a/src/lua/modules/graphics/je_lua_ttf.cpp b/src/lua/modules/graphics/je_lua_ttf.cpp index df0379e..875c132 100644 --- a/src/lua/modules/graphics/je_lua_ttf.cpp +++ b/src/lua/modules/graphics/je_lua_ttf.cpp @@ -44,9 +44,9 @@ namespace JinEngine Text* text = pxyText->getObject(); page = ttf->typeset(*text, lineheight, spacing); } - Shared* refPage = new Shared(L, page, Jin_Lua_Page); - refPage->setDependency((int)PageDependency::DEP_TTF, &shrTTF); - LuaObject* pxyPage = luax_newinstance(L, Jin_Lua_Page, refPage); + Shared* refPage = new Shared(page, Jin_Lua_Page); + LuaObject* luaPage = luax_newinstance(L, Jin_Lua_Page, refPage); + luaPage->setDependency((int)PageDependency::DEP_TTF, &shrTTF); return 1; } diff --git a/src/lua/modules/graphics/je_lua_ttf_data.cpp b/src/lua/modules/graphics/je_lua_ttf_data.cpp index 207dde2..a4e8d2c 100644 --- a/src/lua/modules/graphics/je_lua_ttf_data.cpp +++ b/src/lua/modules/graphics/je_lua_ttf_data.cpp @@ -22,9 +22,9 @@ namespace JinEngine Shared& shrFontData = pxyTTFData->getShared(); TTFData* fontData = shrFontData.getObject(); TTF* font = fontData->createTTF(fontsize); - Shared* shrTTF = new Shared(L, font, Jin_Lua_TTF); - shrTTF->setDependency((int)TTFDependency::DEP_TTFDATA, &shrFontData); - LuaObject* pxyTTF = luax_newinstance(L, Jin_Lua_TTF, shrTTF); + Shared* shrTTF = new Shared(font, Jin_Lua_TTF); + LuaObject* luaTTF = luax_newinstance(L, Jin_Lua_TTF, shrTTF); + luaTTF->setDependency((int)TTFDependency::DEP_TTFDATA, &shrFontData); return 1; } -- cgit v1.1-26-g67d0