diff options
Diffstat (limited to 'src/lua/modules/graphics')
25 files changed, 285 insertions, 118 deletions
diff --git a/src/lua/modules/graphics/je_lua_bitmap.cpp b/src/lua/modules/graphics/je_lua_bitmap.cpp index 1491bee..4b7c492 100644 --- a/src/lua/modules/graphics/je_lua_bitmap.cpp +++ b/src/lua/modules/graphics/je_lua_bitmap.cpp @@ -1,7 +1,8 @@ #include "lua/common/je_lua_common.h" #include "lua/modules/luax.h" -#include "lua/modules/types.h" + #include "libjin/jin.h" +#include "je_lua_bitmap.h" using namespace JinEngine::Graphics; @@ -10,11 +11,13 @@ namespace JinEngine namespace Lua { + const char* Jin_Lua_Bitmap = "Bitmap"; + typedef Shared<Bitmap>& SharedBitmap; LUA_IMPLEMENT inline SharedBitmap checkBitmap(lua_State* L) { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_BITMAP); + Proxy* proxy = (Proxy*)luax_checktype(L, 1, Jin_Lua_Bitmap); return proxy->getShared<Bitmap>(); } @@ -87,8 +90,8 @@ namespace JinEngine SharedBitmap shared = checkBitmap(L); Bitmap* bitmap = shared.getObject(); Bitmap* b = Bitmap::clone(bitmap); - Proxy* proxy = luax_newinstance(L, JIN_GRAPHICS_BITMAP); - proxy->bind(new Shared<Bitmap>(b, JIN_GRAPHICS_BITMAP)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_Bitmap); + proxy->bind(new Shared<Bitmap>(b, Jin_Lua_Bitmap)); return 1; } @@ -104,9 +107,9 @@ namespace JinEngine { "clone", l_clone }, { 0, 0 } }; - luax_newtype(L, JIN_GRAPHICS_BITMAP, f); + luax_newtype(L, Jin_Lua_Bitmap, f); return 0; } - } // graphics + } // namespace Graphics } // namespace JinEngine
\ No newline at end of file diff --git a/src/lua/modules/graphics/je_lua_bitmap.h b/src/lua/modules/graphics/je_lua_bitmap.h new file mode 100644 index 0000000..047766e --- /dev/null +++ b/src/lua/modules/graphics/je_lua_bitmap.h @@ -0,0 +1,14 @@ +#ifndef __JE_LUA_BITMAP_H__ +#define __JE_LUA_BITMAP_H__ + +namespace JinEngine +{ + namespace Lua + { + + extern const char* Jin_Lua_Bitmap; + + } +} + +#endif
\ No newline at end of file diff --git a/src/lua/modules/graphics/je_lua_canvas.cpp b/src/lua/modules/graphics/je_lua_canvas.cpp index 70edfd1..be6bb84 100644 --- a/src/lua/modules/graphics/je_lua_canvas.cpp +++ b/src/lua/modules/graphics/je_lua_canvas.cpp @@ -1,7 +1,8 @@ #include "lua/modules/luax.h" -#include "lua/modules/types.h" + #include "lua/common/je_lua_common.h" #include "libjin/jin.h" +#include "je_lua_canvas.h" using namespace JinEngine::Graphics; @@ -10,11 +11,13 @@ namespace JinEngine namespace Lua { + const char* Jin_Lua_Canvas = "Canvas"; + typedef Shared<Canvas>& SharedCanvas; LUA_IMPLEMENT inline SharedCanvas checkCanvas(lua_State* L) { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_CANVAS); + Proxy* proxy = (Proxy*)luax_checktype(L, 1, Jin_Lua_Canvas); return proxy->getShared<Canvas>(); } @@ -42,7 +45,7 @@ namespace JinEngine LUA_IMPLEMENT int l_gc(lua_State* L) { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_CANVAS); + Proxy* proxy = (Proxy*)luax_checktype(L, 1, Jin_Lua_Canvas); proxy->release(); return 0; } @@ -56,7 +59,7 @@ namespace JinEngine { "getSize", l_getSize }, { 0, 0 } }; - luax_newtype(L, JIN_GRAPHICS_CANVAS, f); + luax_newtype(L, Jin_Lua_Canvas, f); return 0; } diff --git a/src/lua/modules/graphics/je_lua_canvas.h b/src/lua/modules/graphics/je_lua_canvas.h new file mode 100644 index 0000000..c7b8504 --- /dev/null +++ b/src/lua/modules/graphics/je_lua_canvas.h @@ -0,0 +1,14 @@ +#ifndef __JE_LUA_CANVAS_H__ +#define __JE_LUA_CANVAS_H__ + +namespace JinEngine +{ + namespace Lua + { + + extern const char* Jin_Lua_Canvas; + + } +} + +#endif
\ No newline at end of file diff --git a/src/lua/modules/graphics/je_lua_graphics.cpp b/src/lua/modules/graphics/je_lua_graphics.cpp index 6b84651..c535216 100644 --- a/src/lua/modules/graphics/je_lua_graphics.cpp +++ b/src/lua/modules/graphics/je_lua_graphics.cpp @@ -3,9 +3,20 @@ #include "libjin/jin.h" #include "lua/modules/luax.h" -#include "lua/modules/types.h" + #include "lua/common/je_lua_common.h" + +#include "je_lua_canvas.h" +#include "je_lua_sprite.h" #include "je_lua_spritesheet.h" +#include "je_lua_bitmap.h" +#include "je_lua_ttf.h" +#include "je_lua_ttf_data.h" +#include "je_lua_texture.h" +#include "je_lua_shader.h" +#include "je_lua_text.h" +#include "je_lua_texture_font.h" +#include "je_lua_page.h" using namespace std; using namespace JinEngine; @@ -165,8 +176,8 @@ namespace JinEngine return 1; } } - Proxy* proxy = luax_newinstance(L, JIN_GRAPHICS_BITMAP); - proxy->bind(new Shared<Bitmap>(bitmap, JIN_GRAPHICS_BITMAP)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_Bitmap); + proxy->bind(new Shared<Bitmap>(bitmap, Jin_Lua_Bitmap)); return 1; } @@ -174,9 +185,9 @@ namespace JinEngine LUA_IMPLEMENT int l_newTexture(lua_State* L) { Texture* texture = nullptr; - if (luax_istype(L, 1, JIN_GRAPHICS_BITMAP)) + if (luax_istype(L, 1, Jin_Lua_Bitmap)) { - Proxy* p = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_BITMAP); + Proxy* p = (Proxy*)luax_checktype(L, 1, Jin_Lua_Bitmap); Shared<Bitmap>& refBitmap = p->getShared<Bitmap>(); Bitmap* bitmap = refBitmap.getObject(); texture = Texture::createTexture(bitmap); @@ -186,8 +197,8 @@ namespace JinEngine const char* path = luax_checkstring(L, 1); texture = Texture::createTexture(path); } - Proxy* proxy = luax_newinstance(L, JIN_GRAPHICS_TEXTURE); - proxy->bind(new Shared<Texture>(texture, JIN_GRAPHICS_TEXTURE)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_Texture); + proxy->bind(new Shared<Texture>(texture, Jin_Lua_Texture)); return 1; } @@ -201,8 +212,8 @@ namespace JinEngine luax_pushnil(L); return 1; } - Proxy* proxy = luax_newinstance(L, JIN_GRAPHICS_SHADER); - proxy->bind(new Shared<Shader>(jsl, JIN_GRAPHICS_SHADER)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_Shader); + proxy->bind(new Shared<Shader>(jsl, Jin_Lua_Shader)); return 1; } @@ -225,8 +236,8 @@ namespace JinEngine luax_pushnil(L); return 1; } - Proxy* proxy = luax_newinstance(L, JIN_GRAPHICS_SHADER); - proxy->bind(new Shared<Shader>(jsl, JIN_GRAPHICS_SHADER)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_Shader); + proxy->bind(new Shared<Shader>(jsl, Jin_Lua_Shader)); return 1; } @@ -234,9 +245,9 @@ namespace JinEngine { int w = luax_checknumber(L, 1); int h = luax_checknumber(L, 2); - Proxy* proxy = luax_newinstance(L, JIN_GRAPHICS_CANVAS); + Proxy* proxy = luax_newinstance(L, Jin_Lua_Canvas); Canvas* cvs = Canvas::createCanvas(w, h); - proxy->bind(new Shared<Canvas>(cvs, JIN_GRAPHICS_CANVAS)); + proxy->bind(new Shared<Canvas>(cvs, Jin_Lua_Canvas)); return 1; } @@ -274,7 +285,7 @@ namespace JinEngine LUA_IMPLEMENT void l_draw_texture(lua_State* L) { - if (!luax_istype(L, 1, JIN_GRAPHICS_TEXTURE)) + if (!luax_istype(L, 1, Jin_Lua_Texture)) return; int x = luax_optnumber(L, 2, 0); int y = luax_optnumber(L, 3, 0); @@ -290,7 +301,7 @@ namespace JinEngine LUA_IMPLEMENT void l_draw_canvas(lua_State* L) { - if (!luax_istype(L, 1, JIN_GRAPHICS_CANVAS)) + if (!luax_istype(L, 1, Jin_Lua_Canvas)) return; int x = luax_optnumber(L, 2, 0); int y = luax_optnumber(L, 3, 0); @@ -307,7 +318,7 @@ namespace JinEngine /* jin.graphics.draw(text, font, x, y) */ LUA_IMPLEMENT void l_draw_text(lua_State* L) { - if (!luax_istype(L, 1, JIN_GRAPHICS_TEXT)) + if (!luax_istype(L, 1, Jin_Lua_Text)) return; Proxy* p = (Proxy*)luax_toudata(L, 1); Text* text = p->getObject<Text>(); @@ -316,12 +327,12 @@ namespace JinEngine int spacing = luax_optnumber(L, 6, 0); Font* font = nullptr; Proxy* p2 = (Proxy*)luax_toudata(L, 2); - if (luax_istype(L, 2, JIN_GRAPHICS_TEXTUREFONT)) + if (luax_istype(L, 2, Jin_Lua_TextureFont)) { TextureFont* tf = p2->getObject<TextureFont>(); font = tf; } - else if (luax_istype(L, 2, JIN_GRAPHICS_TTF)) + else if (luax_istype(L, 2, Jin_Lua_TTF)) { TTF* ttf = p2->getObject<TTF>(); font = ttf; @@ -337,7 +348,7 @@ namespace JinEngine /* jin.graphics.draw(page, x, y) */ LUA_IMPLEMENT void l_draw_page(lua_State* L) { - if (!luax_istype(L, 1, JIN_GRAPHICS_PAGE)) + if (!luax_istype(L, 1, Jin_Lua_Page)) return; int x = luax_optnumber(L, 2, 0); int y = luax_optnumber(L, 3, 0); @@ -349,13 +360,13 @@ namespace JinEngine LUA_IMPLEMENT int l_draw(lua_State* L) { - if (luax_istype(L, 1, JIN_GRAPHICS_TEXTURE)) + if (luax_istype(L, 1, Jin_Lua_Texture)) l_draw_texture(L); - else if (luax_istype(L, 1, JIN_GRAPHICS_CANVAS)) + else if (luax_istype(L, 1, Jin_Lua_Canvas)) l_draw_canvas(L); - else if (luax_istype(L, 1, JIN_GRAPHICS_TEXT)) + else if (luax_istype(L, 1, Jin_Lua_Text)) l_draw_text(L); - else if (luax_istype(L, 1, JIN_GRAPHICS_PAGE)) + else if (luax_istype(L, 1, Jin_Lua_Page)) l_draw_page(L); else { @@ -387,13 +398,13 @@ namespace JinEngine float ox = luax_optnumber(L, 8, 0); float oy = luax_optnumber(L, 9, 0); - if (luax_istype(L, 1, JIN_GRAPHICS_TEXTURE)) + if (luax_istype(L, 1, Jin_Lua_Texture)) { Proxy* proxy = (Proxy*)luax_toudata(L, 1); Shared<Texture>& tex = proxy->getShared<Texture>(); tex->render(q, x, y, sx, sy, r, ox, oy); } - else if (luax_istype(L, 1, JIN_GRAPHICS_CANVAS)) + else if (luax_istype(L, 1, Jin_Lua_Canvas)) { Proxy* proxy = (Proxy*)luax_toudata(L, 1); Shared<Canvas>& p = proxy->getShared<Canvas>(); @@ -459,7 +470,7 @@ namespace JinEngine Canvas::unbind(); return 0; } - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_CANVAS); + Proxy* proxy = (Proxy*)luax_checktype(L, 1, Jin_Lua_Canvas); Shared<Canvas>& shared = proxy->getShared<Canvas>(); Canvas::bind(shared.getObject()); return 0; @@ -478,9 +489,9 @@ namespace JinEngine Shader::unuse(); return 0; } - if (luax_istype(L, 1, JIN_GRAPHICS_SHADER)) + if (luax_istype(L, 1, Jin_Lua_Shader)) { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_SHADER); + Proxy* proxy = (Proxy*)luax_checktype(L, 1, Jin_Lua_Shader); Shared<Shader>& jsl = proxy->getShared<Shader>(); jsl->use(); } @@ -617,7 +628,7 @@ namespace JinEngine LUA_IMPLEMENT int l_newTTFData(lua_State* L) { - Proxy* proxy = luax_newinstance(L, JIN_GRAPHICS_TTFDATA); + Proxy* proxy = luax_newinstance(L, Jin_Lua_TTFData); TTFData* fd = nullptr; { const char* path = luax_checkstring(L, 1); @@ -632,7 +643,7 @@ namespace JinEngine fs->read(path, b); fd = TTFData::createTTFData(&b, b.size()); } - proxy->bind(new Shared<TTFData>(fd, JIN_GRAPHICS_TTFDATA)); + proxy->bind(new Shared<TTFData>(fd, Jin_Lua_TTFData)); return 1; } @@ -655,30 +666,30 @@ 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_GRAPHICS_TEXT); - proxy->bind(new Shared<Text>(text, JIN_GRAPHICS_TEXT)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_Text); + proxy->bind(new Shared<Text>(text, Jin_Lua_Text)); return 1; } LUA_IMPLEMENT int l_newSprite(lua_State* L) { - Proxy* p = luax_newinstance(L, JIN_GRAPHICS_SPRITE); - p->bind(new Shared<Sprite>(new Sprite(), JIN_GRAPHICS_SPRITE)); + Proxy* p = luax_newinstance(L, Jin_Lua_Sprite); + p->bind(new Shared<Sprite>(new Sprite(), Jin_Lua_Sprite)); return 1; } LUA_IMPLEMENT int l_newSpriteSheet(lua_State* L) { Proxy* pxyGraphic = nullptr; - if (luax_istype(L, 1, JIN_GRAPHICS_TEXTURE)) - pxyGraphic = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TEXTURE); - else if(luax_istype(L, 1, JIN_GRAPHICS_CANVAS)) - pxyGraphic = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_CANVAS); + if (luax_istype(L, 1, Jin_Lua_Texture)) + pxyGraphic = (Proxy*)luax_checktype(L, 1, Jin_Lua_Texture); + else if(luax_istype(L, 1, Jin_Lua_Canvas)) + pxyGraphic = (Proxy*)luax_checktype(L, 1, Jin_Lua_Canvas); if (pxyGraphic != nullptr) { - Proxy* pxySSheet = luax_newinstance(L, JIN_GRAPHICS_SPRITESHEET); + Proxy* pxySSheet = luax_newinstance(L, Jin_Lua_SpriteSheet); Graphic* graphic = pxyGraphic->getObject<Graphic>(); - Shared<SpriteSheet>* shrSSheet = new Shared<SpriteSheet>(new SpriteSheet(graphic), JIN_GRAPHICS_SPRITESHEET); + Shared<SpriteSheet>* shrSSheet = new Shared<SpriteSheet>(new SpriteSheet(graphic), Jin_Lua_SpriteSheet); Shared<Graphic>& shrGraphic = pxyGraphic->getShared<Graphic>(); shrSSheet->setDependency((int)SpriteSheetDependency::DEP_GRAPHIC, &shrGraphic); pxySSheet->bind(shrSSheet); @@ -691,12 +702,12 @@ namespace JinEngine /* newTextureFont(bitmap, text, color | cellw, cellh) */ LUA_IMPLEMENT int l_newTextureFont(lua_State* L) { - Proxy* p = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_BITMAP); + Proxy* p = (Proxy*)luax_checktype(L, 1, Jin_Lua_Bitmap); Bitmap* bitmap = p->getObject<Bitmap>(); Text* text; - if (luax_istype(L, 2, JIN_GRAPHICS_TEXT)) + if (luax_istype(L, 2, Jin_Lua_Text)) { - Proxy* pt = (Proxy*)luax_checktype(L, 2, JIN_GRAPHICS_TEXT); + Proxy* pt = (Proxy*)luax_checktype(L, 2, Jin_Lua_Text); text = pt->getObject<Text>(); } else if (luax_isstring(L, 2)) @@ -735,23 +746,23 @@ namespace JinEngine // Delete temporary text. delete text; } - Proxy* proxy = luax_newinstance(L, JIN_GRAPHICS_TEXTUREFONT); - proxy->bind(new Shared<TextureFont>(textureFont, JIN_GRAPHICS_TEXTUREFONT)); + Proxy* proxy = luax_newinstance(L, Jin_Lua_TextureFont); + proxy->bind(new Shared<TextureFont>(textureFont, Jin_Lua_TextureFont)); return 1; } /* setFont(font) */ LUA_IMPLEMENT int l_setFont(lua_State* L) { - if (luax_istype(L, 1, JIN_GRAPHICS_TTF)) + if (luax_istype(L, 1, Jin_Lua_TTF)) { - Proxy* p = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TTF); + Proxy* p = (Proxy*)luax_checktype(L, 1, Jin_Lua_TTF); TTF* ttf = p->getObject<TTF>(); context.curFont = ttf; } - else if (luax_istype(L, 1, JIN_GRAPHICS_TEXTUREFONT)) + else if (luax_istype(L, 1, Jin_Lua_TextureFont)) { - Proxy* p = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TEXTUREFONT); + Proxy* p = (Proxy*)luax_checktype(L, 1, Jin_Lua_TextureFont); TextureFont* tf = p->getObject<TextureFont>(); context.curFont = tf; } diff --git a/src/lua/modules/graphics/je_lua_graphics.h b/src/lua/modules/graphics/je_lua_graphics.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/lua/modules/graphics/je_lua_graphics.h diff --git a/src/lua/modules/graphics/je_lua_page.cpp b/src/lua/modules/graphics/je_lua_page.cpp index 3ebd557..526c2ec 100644 --- a/src/lua/modules/graphics/je_lua_page.cpp +++ b/src/lua/modules/graphics/je_lua_page.cpp @@ -1,5 +1,5 @@ #include "lua/modules/luax.h" -#include "lua/modules/types.h" + #include "lua/common/je_lua_common.h" #include "libjin/jin.h" @@ -14,17 +14,19 @@ namespace JinEngine namespace Lua { + const char* Jin_Lua_Page = "Page"; + typedef Shared<Font>& SharedFont; Page* getPage(lua_State* L) { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_PAGE); + Proxy* proxy = (Proxy*)luax_checktype(L, 1, Jin_Lua_Page); return proxy->getObject<Page>(); } LUA_IMPLEMENT int l_gc(lua_State* L) { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_PAGE); + Proxy* proxy = (Proxy*)luax_checktype(L, 1, Jin_Lua_Page); proxy->release(); return 0; } @@ -60,7 +62,7 @@ namespace JinEngine { "getHeight", l_getHeight }, { 0, 0 } }; - luax_newtype(L, JIN_GRAPHICS_PAGE, f); + luax_newtype(L, Jin_Lua_Page, f); return 0; } diff --git a/src/lua/modules/graphics/je_lua_page.h b/src/lua/modules/graphics/je_lua_page.h index c9775e9..6ebf718 100644 --- a/src/lua/modules/graphics/je_lua_page.h +++ b/src/lua/modules/graphics/je_lua_page.h @@ -12,6 +12,8 @@ namespace JinEngine DEP_TEXTURE_FONT = 2, }; + extern const char* Jin_Lua_Page; + } } diff --git a/src/lua/modules/graphics/je_lua_particle_system.h b/src/lua/modules/graphics/je_lua_particle_system.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/lua/modules/graphics/je_lua_particle_system.h diff --git a/src/lua/modules/graphics/je_lua_shader.cpp b/src/lua/modules/graphics/je_lua_shader.cpp index 8c1c2e4..61c8eef 100644 --- a/src/lua/modules/graphics/je_lua_shader.cpp +++ b/src/lua/modules/graphics/je_lua_shader.cpp @@ -1,8 +1,12 @@ #include "lua/modules/luax.h" -#include "lua/modules/types.h" + #include "lua/common/je_lua_common.h" #include "libjin/jin.h" +#include "je_lua_shader.h" +#include "je_lua_canvas.h" +#include "je_lua_texture.h" + using namespace JinEngine::Graphics; using namespace JinEngine::Graphics::Shaders; @@ -11,11 +15,13 @@ namespace JinEngine namespace Lua { + const char* Jin_Lua_Shader = "Shader"; + typedef Shared<Shader>& ShaderRef; static inline ShaderRef checkShader(lua_State* L) { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_SHADER); + Proxy* proxy = (Proxy*)luax_checktype(L, 1, Jin_Lua_Shader); return proxy->getShared<Shader>(); } @@ -35,7 +41,7 @@ namespace JinEngine { ShaderRef shared = checkShader(L); const char* variable = luax_checkstring(L, 2); - Proxy* proxy = (Proxy*)luax_checktype(L, 3, JIN_GRAPHICS_TEXTURE); + Proxy* proxy = (Proxy*)luax_checktype(L, 3, Jin_Lua_Texture); Shared<Texture>& tex = proxy->getShared<Texture>(); shared->sendTexture(variable, tex.getObject()); return 0; @@ -45,7 +51,7 @@ namespace JinEngine { ShaderRef shared = checkShader(L); const char* variable = luax_checkstring(L, 2); - Proxy* proxy = (Proxy*)luax_checktype(L, 3, JIN_GRAPHICS_CANVAS); + Proxy* proxy = (Proxy*)luax_checktype(L, 3, Jin_Lua_Canvas); Shared<Canvas>& canvas = proxy->getShared<Canvas>(); shared->sendCanvas(variable, canvas.getObject()); return 0; @@ -106,7 +112,7 @@ namespace JinEngine LUA_IMPLEMENT int l_gc(lua_State* L) { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_SHADER); + Proxy* proxy = (Proxy*)luax_checktype(L, 1, Jin_Lua_Shader); proxy->release(); return 0; } @@ -124,7 +130,7 @@ namespace JinEngine { "sendColor", l_sendColor }, { 0, 0 } }; - luax_newtype(L, JIN_GRAPHICS_SHADER, f); + luax_newtype(L, Jin_Lua_Shader, f); return 0; } diff --git a/src/lua/modules/graphics/je_lua_shader.h b/src/lua/modules/graphics/je_lua_shader.h new file mode 100644 index 0000000..57ad570 --- /dev/null +++ b/src/lua/modules/graphics/je_lua_shader.h @@ -0,0 +1,14 @@ +#ifndef __JE_LUA_SHDER_H__ +#define __JE_LUA_SHDER_H__ + +namespace JinEngine +{ + namespace Lua + { + + extern const char* Jin_Lua_Shader; + + } +} + +#endif
\ No newline at end of file diff --git a/src/lua/modules/graphics/je_lua_sprite.cpp b/src/lua/modules/graphics/je_lua_sprite.cpp index 511f877..ec5887c 100644 --- a/src/lua/modules/graphics/je_lua_sprite.cpp +++ b/src/lua/modules/graphics/je_lua_sprite.cpp @@ -1,8 +1,12 @@ #include "lua/modules/luax.h" -#include "lua/modules/types.h" + #include "lua/common/je_lua_common.h" #include "libjin/jin.h" + #include "je_lua_sprite.h" +#include "je_lua_canvas.h" +#include "je_lua_texture.h" +#include "je_lua_shader.h" using namespace JinEngine::Graphics; using namespace JinEngine::Graphics::Shaders; @@ -11,18 +15,19 @@ namespace JinEngine { namespace Lua { + const char* Jin_Lua_Sprite = "Sprite"; typedef Shared<Sprite>& SharedSprite; LUA_IMPLEMENT inline SharedSprite checkSprite(lua_State* L) { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_SPRITE); + Proxy* proxy = (Proxy*)luax_checktype(L, 1, Jin_Lua_Sprite); return proxy->getShared<Sprite>(); } LUA_IMPLEMENT int l_gc(lua_State* L) { - Proxy* p = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_SPRITE); + Proxy* p = (Proxy*)luax_checktype(L, 1, Jin_Lua_Sprite); p->release(); return 0; } @@ -89,7 +94,7 @@ namespace JinEngine LUA_IMPLEMENT int l_setShader(lua_State* L) { SharedSprite sprite = checkSprite(L); - Proxy* proxy = (Proxy*)luax_checktype(L, 2, JIN_GRAPHICS_SHADER); + Proxy* proxy = (Proxy*)luax_checktype(L, 2, Jin_Lua_Shader); Shader* shader = proxy->getObject<Shader>(); sprite->setShader(shader); sprite.setDependency((int)SpriteDependency::DEP_SHADER, &proxy->getShared<Shader>()); @@ -101,10 +106,10 @@ namespace JinEngine SharedSprite sprite = checkSprite(L); Graphic* graphic = nullptr; Proxy* p = nullptr; - if (luax_istype(L, 2, JIN_GRAPHICS_TEXTURE)) - p = (Proxy*)luax_checktype(L, 2, JIN_GRAPHICS_TEXTURE); - else if (luax_istype(L, 2, JIN_GRAPHICS_CANVAS)) - p = (Proxy*)luax_checktype(L, 2, JIN_GRAPHICS_CANVAS); + if (luax_istype(L, 2, Jin_Lua_Texture)) + p = (Proxy*)luax_checktype(L, 2, Jin_Lua_Texture); + else if (luax_istype(L, 2, Jin_Lua_Canvas)) + p = (Proxy*)luax_checktype(L, 2, Jin_Lua_Canvas); if (p != nullptr) { sprite->setGraphic(p->getObject<Graphic>()); @@ -214,7 +219,7 @@ namespace JinEngine { "getColor", l_getColor }, { 0, 0 } }; - luax_newtype(L, JIN_GRAPHICS_SPRITE, methods); + luax_newtype(L, Jin_Lua_Sprite, methods); return 0; } diff --git a/src/lua/modules/graphics/je_lua_sprite.h b/src/lua/modules/graphics/je_lua_sprite.h index cdd3a50..cbadc34 100644 --- a/src/lua/modules/graphics/je_lua_sprite.h +++ b/src/lua/modules/graphics/je_lua_sprite.h @@ -14,6 +14,8 @@ namespace JinEngine DEP_SPRITESHEET = 3 }; + extern const char* Jin_Lua_Sprite; + } } diff --git a/src/lua/modules/graphics/je_lua_spritesheet.cpp b/src/lua/modules/graphics/je_lua_spritesheet.cpp index 7994237..ef1bd85 100644 --- a/src/lua/modules/graphics/je_lua_spritesheet.cpp +++ b/src/lua/modules/graphics/je_lua_spritesheet.cpp @@ -1,5 +1,5 @@ #include "lua/modules/luax.h" -#include "lua/modules/types.h" + #include "lua/common/je_lua_common.h" #include "libjin/jin.h" #include "je_lua_sprite.h" @@ -13,16 +13,18 @@ namespace JinEngine namespace Lua { + const char* Jin_Lua_SpriteSheet = "SpriteSheet"; + LUA_IMPLEMENT int l_gc(lua_State* L) { - Proxy* pxySSheet = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_SPRITESHEET); + Proxy* pxySSheet = (Proxy*)luax_checktype(L, 1, Jin_Lua_SpriteSheet); pxySSheet->release(); return 0; } LUA_IMPLEMENT int l_newSprite(lua_State* L) { - Proxy* pxySSheet = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_SPRITESHEET); + Proxy* pxySSheet = (Proxy*)luax_checktype(L, 1, Jin_Lua_SpriteSheet); Shared<SpriteSheet>& shrSSheet = pxySSheet->getShared<SpriteSheet>(); SpriteSheet* sheet = pxySSheet->getObject<SpriteSheet>(); Quad quad; @@ -31,8 +33,8 @@ namespace JinEngine quad.w = luax_checkinteger(L, 4); quad.h = luax_checkinteger(L, 5); Sprite* spr = sheet->createSprite(quad); - Proxy* pxySprite = luax_newinstance(L, JIN_GRAPHICS_SPRITE); - Shared<Sprite>* shrSprite = new Shared<Sprite>(spr, JIN_GRAPHICS_SPRITE); + Proxy* pxySprite = luax_newinstance(L, Jin_Lua_Sprite); + Shared<Sprite>* shrSprite = new Shared<Sprite>(spr, Jin_Lua_Sprite); shrSprite->setDependency((int)SpriteDependency::DEP_SPRITESHEET, &shrSSheet); pxySprite->bind(shrSprite); return 1; @@ -45,7 +47,7 @@ namespace JinEngine { "newSprite", l_newSprite }, { 0, 0 } }; - luax_newtype(L, JIN_GRAPHICS_SPRITESHEET, methods); + luax_newtype(L, Jin_Lua_SpriteSheet, methods); return 0; } diff --git a/src/lua/modules/graphics/je_lua_spritesheet.h b/src/lua/modules/graphics/je_lua_spritesheet.h index bedf945..ec94de8 100644 --- a/src/lua/modules/graphics/je_lua_spritesheet.h +++ b/src/lua/modules/graphics/je_lua_spritesheet.h @@ -11,6 +11,8 @@ namespace JinEngine DEP_GRAPHIC = 1 }; + extern const char* Jin_Lua_SpriteSheet; + } } diff --git a/src/lua/modules/graphics/je_lua_text.cpp b/src/lua/modules/graphics/je_lua_text.cpp index 3316a4c..5e12ff8 100644 --- a/src/lua/modules/graphics/je_lua_text.cpp +++ b/src/lua/modules/graphics/je_lua_text.cpp @@ -1,5 +1,5 @@ #include "lua/modules/luax.h" -#include "lua/modules/types.h" + #include "lua/common/je_lua_common.h" #include "libjin/jin.h" @@ -10,9 +10,11 @@ namespace JinEngine namespace Lua { + const char* Jin_Lua_Text = "Text"; + LUA_IMPLEMENT int l_gc(lua_State* L) { - Proxy* p = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TEXT); + Proxy* p = (Proxy*)luax_checktype(L, 1, Jin_Lua_Text); p->release(); return 0; } @@ -23,7 +25,7 @@ namespace JinEngine { "__gc", l_gc }, { 0, 0 } }; - luax_newtype(L, JIN_GRAPHICS_TEXT, f); + luax_newtype(L, Jin_Lua_Text, f); return 0; } diff --git a/src/lua/modules/graphics/je_lua_text.h b/src/lua/modules/graphics/je_lua_text.h new file mode 100644 index 0000000..bae5913 --- /dev/null +++ b/src/lua/modules/graphics/je_lua_text.h @@ -0,0 +1,14 @@ +#ifndef __JE_LUA_TEXT_H__ +#define __JE_LUA_TEXT_H__ + +namespace JinEngine +{ + namespace Lua + { + + extern const char* Jin_Lua_Text; + + } +} + +#endif
\ No newline at end of file diff --git a/src/lua/modules/graphics/je_lua_texture.cpp b/src/lua/modules/graphics/je_lua_texture.cpp index d7571b6..08a98eb 100644 --- a/src/lua/modules/graphics/je_lua_texture.cpp +++ b/src/lua/modules/graphics/je_lua_texture.cpp @@ -1,5 +1,5 @@ #include "lua/modules/luax.h" -#include "lua/modules/types.h" + #include "lua/common/je_lua_common.h" #include "libjin/jin.h" @@ -9,12 +9,14 @@ namespace JinEngine { namespace Lua { + + const char* Jin_Lua_Texture = "Texture"; typedef Shared<Texture>& SharedTexture; LUA_IMPLEMENT inline SharedTexture checkTexture(lua_State* L) { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TEXTURE); + Proxy* proxy = (Proxy*)luax_checktype(L, 1, Jin_Lua_Texture); return proxy->getShared<Texture>(); } @@ -42,7 +44,7 @@ namespace JinEngine LUA_IMPLEMENT int l_gc(lua_State* L) { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TEXTURE); + Proxy* proxy = (Proxy*)luax_checktype(L, 1, Jin_Lua_Texture); proxy->release(); return 0; } @@ -56,7 +58,7 @@ namespace JinEngine { "getSize", l_getSize }, { 0, 0 } }; - luax_newtype(L, JIN_GRAPHICS_TEXTURE, f); + luax_newtype(L, Jin_Lua_Texture, f); return 0; } diff --git a/src/lua/modules/graphics/je_lua_texture.h b/src/lua/modules/graphics/je_lua_texture.h new file mode 100644 index 0000000..48f22ab --- /dev/null +++ b/src/lua/modules/graphics/je_lua_texture.h @@ -0,0 +1,14 @@ +#ifndef __JE_LUA_TEXTURE_H__ +#define __JE_LUA_TEXTURE_H__ + +namespace JinEngine +{ + namespace Lua + { + + extern const char* Jin_Lua_Texture; + + } +} + +#endif
\ No newline at end of file diff --git a/src/lua/modules/graphics/je_lua_texture_font.cpp b/src/lua/modules/graphics/je_lua_texture_font.cpp index 8be9a9d..0c3c4d9 100644 --- a/src/lua/modules/graphics/je_lua_texture_font.cpp +++ b/src/lua/modules/graphics/je_lua_texture_font.cpp @@ -1,8 +1,10 @@ #include "lua/modules/luax.h" -#include "lua/modules/types.h" + #include "lua/common/je_lua_common.h" #include "libjin/jin.h" + #include "je_lua_page.h" +#include "je_lua_text.h" using namespace JinEngine::Graphics; using namespace JinEngine::Graphics::Fonts; @@ -12,9 +14,11 @@ namespace JinEngine namespace Lua { + const char* Jin_Lua_TextureFont = "TextureFont"; + LUA_IMPLEMENT int l_gc(lua_State* L) { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TEXTUREFONT); + Proxy* proxy = (Proxy*)luax_checktype(L, 1, Jin_Lua_TextureFont); proxy->release(); return 0; } @@ -22,7 +26,7 @@ namespace JinEngine /* typeset(Text | string, lineheight, spacing) */ LUA_IMPLEMENT int l_typeset(lua_State* L) { - Proxy* pxyTexFont = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TEXTUREFONT); + Proxy* pxyTexFont = (Proxy*)luax_checktype(L, 1, Jin_Lua_TextureFont); Shared<TextureFont>& shrTexFont = pxyTexFont->getShared<TextureFont>(); TextureFont* tf = pxyTexFont->getObject<TextureFont>(); int lineheight = luax_checkinteger(L, 3); @@ -35,14 +39,14 @@ namespace JinEngine Text text(Encode::UTF8, str, length); page = tf->typeset(text, lineheight, spacing); } - else if (luax_istype(L, 2, JIN_GRAPHICS_TEXT)) + else if (luax_istype(L, 2, Jin_Lua_Text)) { - Proxy* p2 = (Proxy*)luax_checktype(L, 2, JIN_GRAPHICS_TEXT); + Proxy* p2 = (Proxy*)luax_checktype(L, 2, Jin_Lua_Text); Text* text = p2->getObject<Text>(); page = tf->typeset(*text, lineheight, spacing); } - Proxy* pxyPage = luax_newinstance(L, JIN_GRAPHICS_PAGE); - Shared<Page>* shrPage = new Shared<Page>(page, JIN_GRAPHICS_PAGE); + Proxy* pxyPage = luax_newinstance(L, Jin_Lua_Page); + Shared<Page>* shrPage = new Shared<Page>(page, Jin_Lua_Page); shrPage->setDependency((int)PageDependency::DEP_TEXTURE_FONT, &shrTexFont); pxyPage->bind(shrPage); return 1; @@ -55,7 +59,7 @@ namespace JinEngine { "typeset", l_typeset }, { 0, 0 } }; - luax_newtype(L, JIN_GRAPHICS_TEXTUREFONT, f); + luax_newtype(L, Jin_Lua_TextureFont, f); return 0; } diff --git a/src/lua/modules/graphics/je_lua_texture_font.h b/src/lua/modules/graphics/je_lua_texture_font.h new file mode 100644 index 0000000..1339221 --- /dev/null +++ b/src/lua/modules/graphics/je_lua_texture_font.h @@ -0,0 +1,14 @@ +#ifndef __JE_LUA_TEXTURE_FONT_H__ +#define __JE_LUA_TEXTURE_FONT_H__ + +namespace JinEngine +{ + namespace Lua + { + + extern const char* Jin_Lua_TextureFont; + + } +} + +#endif
\ No newline at end of file diff --git a/src/lua/modules/graphics/je_lua_ttf.cpp b/src/lua/modules/graphics/je_lua_ttf.cpp index 0216a9a..1f5be50 100644 --- a/src/lua/modules/graphics/je_lua_ttf.cpp +++ b/src/lua/modules/graphics/je_lua_ttf.cpp @@ -1,8 +1,10 @@ #include "lua/modules/luax.h" -#include "lua/modules/types.h" + #include "lua/common/je_lua_common.h" #include "libjin/jin.h" + #include "je_lua_page.h" +#include "je_lua_text.h" using namespace JinEngine::Graphics; using namespace JinEngine::Graphics::Fonts; @@ -12,9 +14,11 @@ namespace JinEngine namespace Lua { + const char* Jin_Lua_TTF = "TTF"; + LUA_IMPLEMENT int l_gc(lua_State* L) { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TTF); + Proxy* proxy = (Proxy*)luax_checktype(L, 1, Jin_Lua_TTF); proxy->release(); return 0; } @@ -22,7 +26,7 @@ namespace JinEngine /* typeset(Text | string, lineheight, spacing) */ LUA_IMPLEMENT int l_typeset(lua_State* L) { - Proxy* pxyTTF = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TTF); + Proxy* pxyTTF = (Proxy*)luax_checktype(L, 1, Jin_Lua_TTF); Shared<TTF>& shrTTF = pxyTTF->getShared<TTF>(); TTF* ttf = pxyTTF->getObject<TTF>(); int lineheight = luax_optnumber(L, 3, ttf->getFontSize()); @@ -35,14 +39,14 @@ namespace JinEngine Text text(Encode::UTF8, str, length); page = ttf->typeset(text, lineheight, spacing); } - else if (luax_istype(L, 2, JIN_GRAPHICS_TEXT)) + else if (luax_istype(L, 2, Jin_Lua_Text)) { - Proxy* pxyText = (Proxy*)luax_checktype(L, 2, JIN_GRAPHICS_TEXT); + Proxy* pxyText = (Proxy*)luax_checktype(L, 2, Jin_Lua_Text); Text* text = pxyText->getObject<Text>(); page = ttf->typeset(*text, lineheight, spacing); } - Proxy* pxyPage = luax_newinstance(L, JIN_GRAPHICS_PAGE); - Shared<Page>* refPage = new Shared<Page>(page, JIN_GRAPHICS_PAGE); + Proxy* pxyPage = luax_newinstance(L, Jin_Lua_Page); + Shared<Page>* refPage = new Shared<Page>(page, Jin_Lua_Page); refPage->setDependency((int)PageDependency::DEP_TTF, &shrTTF); pxyPage->bind(refPage); return 1; @@ -55,7 +59,7 @@ namespace JinEngine { "typeset", l_typeset }, { 0, 0 } }; - luax_newtype(L, JIN_GRAPHICS_TTF, f); + luax_newtype(L, Jin_Lua_TTF, f); return 0; } diff --git a/src/lua/modules/graphics/je_lua_ttf.h b/src/lua/modules/graphics/je_lua_ttf.h new file mode 100644 index 0000000..01f99e6 --- /dev/null +++ b/src/lua/modules/graphics/je_lua_ttf.h @@ -0,0 +1,14 @@ +#ifndef __JE_LUA_TTF_H__ +#define __JE_LUA_TTF_H__ + +namespace JinEngine +{ + namespace Lua + { + + extern const char* Jin_Lua_TTF; + + } +} + +#endif
\ No newline at end of file diff --git a/src/lua/modules/graphics/je_lua_ttf_data.cpp b/src/lua/modules/graphics/je_lua_ttf_data.cpp index 4df2f6e..fb43ae4 100644 --- a/src/lua/modules/graphics/je_lua_ttf_data.cpp +++ b/src/lua/modules/graphics/je_lua_ttf_data.cpp @@ -1,8 +1,11 @@ #include "lua/modules/luax.h" -#include "lua/modules/types.h" + #include "lua/common/je_lua_common.h" #include "libjin/jin.h" +#include "je_lua_ttf.h" +#include "je_lua_ttf_data.h" + using namespace JinEngine::Graphics; using namespace JinEngine::Graphics::Fonts; @@ -11,28 +14,25 @@ namespace JinEngine namespace Lua { - enum TTFDependency - { - DEP_TTFDATA = 1, - }; + const char* Jin_Lua_TTFData = "TTFData"; LUA_IMPLEMENT int l_newTTF(lua_State* L) { - Proxy* pxyTTFData = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TTFDATA); + Proxy* pxyTTFData = (Proxy*)luax_checktype(L, 1, Jin_Lua_TTFData); int fontsize = luax_checkinteger(L, 2); Shared<TTFData>& shrFontData = pxyTTFData->getShared<TTFData>(); TTFData* fontData = shrFontData.getObject(); - Proxy* pxyTTF = luax_newinstance(L, JIN_GRAPHICS_TTF); + Proxy* pxyTTF = luax_newinstance(L, Jin_Lua_TTF); TTF* font = fontData->createTTF(fontsize); - Shared<TTF>* shrTTF = new Shared<TTF>(font, JIN_GRAPHICS_TTF); - shrTTF->setDependency(DEP_TTFDATA, &shrFontData); + Shared<TTF>* shrTTF = new Shared<TTF>(font, Jin_Lua_TTF); + shrTTF->setDependency((int)TTFDependency::DEP_TTFDATA, &shrFontData); pxyTTF->bind(shrTTF); return 1; } LUA_IMPLEMENT int l_gc(lua_State* L) { - Proxy* p = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TTFDATA); + Proxy* p = (Proxy*)luax_checktype(L, 1, Jin_Lua_TTFData); p->release(); return 0; } @@ -44,7 +44,7 @@ namespace JinEngine { "newTTF", l_newTTF }, { 0, 0 } }; - luax_newtype(L, JIN_GRAPHICS_TTFDATA, f); + luax_newtype(L, Jin_Lua_TTFData, f); return 0; } diff --git a/src/lua/modules/graphics/je_lua_ttf_data.h b/src/lua/modules/graphics/je_lua_ttf_data.h new file mode 100644 index 0000000..f858f1a --- /dev/null +++ b/src/lua/modules/graphics/je_lua_ttf_data.h @@ -0,0 +1,19 @@ +#ifndef __JE_LUA_TTFDATA_H__ +#define __JE_LUA_TTFDATA_H__ + +namespace JinEngine +{ + namespace Lua + { + + enum class TTFDependency + { + DEP_TTFDATA = 1, + }; + + extern const char* Jin_Lua_TTFData; + + } +} + +#endif
\ No newline at end of file |