From e92caa97329016d012b46b9d37e1b2c3b613a8f2 Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 10 Nov 2018 20:13:55 +0800 Subject: =?UTF-8?q?*=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lua/modules/graphics/je_lua_graphics.cpp | 60 +++++++++++----------------- 1 file changed, 24 insertions(+), 36 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 3befdde..639a542 100644 --- a/src/lua/modules/graphics/je_lua_graphics.cpp +++ b/src/lua/modules/graphics/je_lua_graphics.cpp @@ -165,7 +165,7 @@ namespace JinEngine } } Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_BITMAP, sizeof(Proxy)); - proxy->bind(new Ref(bitmap, JIN_GRAPHICS_BITMAP)); + proxy->bind(new Shared(bitmap, JIN_GRAPHICS_BITMAP)); return 1; } @@ -176,7 +176,7 @@ namespace JinEngine if (luax_istype(L, 1, JIN_GRAPHICS_BITMAP)) { Proxy* p = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_BITMAP); - Ref& refBitmap = p->getRef(); + Shared& refBitmap = p->getShared(); Bitmap* bitmap = refBitmap.getObject(); texture = Texture::createTexture(bitmap); } @@ -186,7 +186,7 @@ namespace JinEngine texture = Texture::createTexture(path); } Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_TEXTURE, sizeof(Proxy)); - proxy->bind(new Ref(texture, JIN_GRAPHICS_TEXTURE)); + proxy->bind(new Shared(texture, JIN_GRAPHICS_TEXTURE)); return 1; } @@ -201,7 +201,7 @@ namespace JinEngine return 1; } Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_SHADER, sizeof(Proxy)); - proxy->bind(new Ref(jsl, JIN_GRAPHICS_SHADER)); + proxy->bind(new Shared(jsl, JIN_GRAPHICS_SHADER)); return 1; } @@ -225,7 +225,7 @@ namespace JinEngine return 1; } Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_SHADER, sizeof(Proxy)); - proxy->bind(new Ref(jsl, JIN_GRAPHICS_SHADER)); + proxy->bind(new Shared(jsl, JIN_GRAPHICS_SHADER)); return 1; } @@ -235,7 +235,7 @@ namespace JinEngine int h = luax_checknumber(L, 2); Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_CANVAS, sizeof(Proxy)); Canvas* cvs = Canvas::createCanvas(w, h); - proxy->bind(new Ref(cvs, JIN_GRAPHICS_CANVAS)); + proxy->bind(new Shared(cvs, JIN_GRAPHICS_CANVAS)); return 1; } @@ -283,7 +283,7 @@ namespace JinEngine float ox = luax_optnumber(L, 7, 0); float oy = luax_optnumber(L, 8, 0); Proxy* proxy = (Proxy*)luax_toudata(L, 1); - Ref& tex = proxy->getRef(); + Shared& tex = proxy->getShared(); tex->render(x, y, sx, sy, r, ox, oy); } @@ -299,7 +299,7 @@ namespace JinEngine float ox = luax_optnumber(L, 7, 0); float oy = luax_optnumber(L, 8, 0); Proxy* proxy = (Proxy*)luax_toudata(L, 1); - Ref& p = proxy->getRef(); + Shared& p = proxy->getShared(); p->render(x, y, sx, sy, r, ox, oy); } @@ -389,13 +389,13 @@ namespace JinEngine if (luax_istype(L, 1, JIN_GRAPHICS_TEXTURE)) { Proxy* proxy = (Proxy*)luax_toudata(L, 1); - Ref& tex = proxy->getRef(); + Shared& tex = proxy->getShared(); tex->render(q, x, y, sx, sy, r, ox, oy); } else if (luax_istype(L, 1, JIN_GRAPHICS_CANVAS)) { Proxy* proxy = (Proxy*)luax_toudata(L, 1); - Ref& p = proxy->getRef(); + Shared& p = proxy->getShared(); p->render(q, x, y, sx, sy, r, ox, oy); } else @@ -462,7 +462,7 @@ namespace JinEngine return 0; } Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_CANVAS); - Ref& ref = proxy->getRef(); + Shared& ref = proxy->getShared(); Canvas::bind(ref.getObject()); return 0; } @@ -483,7 +483,7 @@ namespace JinEngine if (luax_istype(L, 1, JIN_GRAPHICS_SHADER)) { Proxy* proxy = (Proxy*)luax_toudata(L, 1); - Ref& jsl = proxy->getRef(); + Shared& jsl = proxy->getShared(); jsl->use(); } else @@ -496,18 +496,10 @@ namespace JinEngine LUA_IMPLEMENT int l_setBlend(lua_State* L) { - return 0; + return 0; } - LUA_IMPLEMENT RenderMode strtomode(const char* str) - { - std::string s = std::string(str); - if (s == "fill") - return RenderMode::FILL; - else if (s == "line") - return RenderMode::LINE; - else return RenderMode::NONE; - } +#define IntToRenderMode(I) static_cast(I) LUA_IMPLEMENT int l_point(lua_State* L) { @@ -531,8 +523,7 @@ namespace JinEngine LUA_IMPLEMENT int l_rect(lua_State* L) { - const char* modestr = luax_checkstring(L, 1); - RenderMode mode = strtomode(modestr); + RenderMode mode = IntToRenderMode(luax_checkinteger(L, 1)); if (mode != RenderMode::NONE) { int x = luax_checknumber(L, 2); @@ -552,8 +543,7 @@ namespace JinEngine LUA_IMPLEMENT int l_circle(lua_State* L) { - const char* modestr = luax_checkstring(L, 1); - RenderMode mode = strtomode(modestr); + RenderMode mode = IntToRenderMode(luax_checkinteger(L, 1)); if (mode != RenderMode::NONE) { int x = luax_checknumber(L, 2); @@ -572,8 +562,7 @@ namespace JinEngine LUA_IMPLEMENT int l_triangle(lua_State* L) { - const char* modestr = luax_checkstring(L, 1); - RenderMode mode = strtomode(modestr); + RenderMode mode = IntToRenderMode(luax_checkinteger(L, 1)); if (mode != RenderMode::NONE) { int x = luax_checknumber(L, 2); @@ -598,9 +587,8 @@ namespace JinEngine LUA_IMPLEMENT int l_polygon(lua_State* L) { - const char* modestr = luax_checkstring(L, 1); - int n = luax_checknumber(L, 2); - RenderMode mode = strtomode(modestr); + RenderMode mode = IntToRenderMode(luax_checkinteger(L, 1)); + int n = luax_checknumber(L, 2); if (mode != RenderMode::NONE) { if (!luax_istable(L, 3)) @@ -648,7 +636,7 @@ namespace JinEngine fs->read(path, b); fd = TTFData::createTTFData(&b, b.size()); } - proxy->bind(new Ref(fd, JIN_GRAPHICS_TTFDATA)); + proxy->bind(new Shared(fd, JIN_GRAPHICS_TTFDATA)); return 1; } @@ -672,7 +660,7 @@ namespace JinEngine const char* data = luax_checklstring(L, 1, &length); Text* text = new Text(encode, data, length); Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_TEXT, sizeof(Proxy)); - proxy->bind(new Ref(text, JIN_GRAPHICS_TEXT)); + proxy->bind(new Shared(text, JIN_GRAPHICS_TEXT)); return 1; } @@ -724,7 +712,7 @@ namespace JinEngine delete text; } Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_TEXTUREFONT, sizeof(Proxy)); - proxy->bind(new Ref(textureFont, JIN_GRAPHICS_TEXTUREFONT)); + proxy->bind(new Shared(textureFont, JIN_GRAPHICS_TEXTUREFONT)); return 1; } @@ -810,7 +798,7 @@ namespace JinEngine LUA_EXPORT int luaopen_graphics(lua_State* L) { - // register types + // Register types. luaopen_Bitmap(L); luaopen_Texture(L); luaopen_Canvas(L); @@ -821,7 +809,7 @@ namespace JinEngine luaopen_Page(L); luaopen_JSL(L); - // load whole lib + // Load whole lib. luax_newlib(L, f); return 1; -- cgit v1.1-26-g67d0