aboutsummaryrefslogtreecommitdiff
path: root/src/lua/modules/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/modules/graphics')
-rw-r--r--src/lua/modules/graphics/je_lua_animation.cpp122
-rw-r--r--src/lua/modules/graphics/je_lua_animation.h24
-rw-r--r--src/lua/modules/graphics/je_lua_animator.cpp163
-rw-r--r--src/lua/modules/graphics/je_lua_animator.h23
-rw-r--r--src/lua/modules/graphics/je_lua_bitmap.cpp110
-rw-r--r--src/lua/modules/graphics/je_lua_bitmap.h16
-rw-r--r--src/lua/modules/graphics/je_lua_canvas.cpp63
-rw-r--r--src/lua/modules/graphics/je_lua_canvas.h16
-rw-r--r--src/lua/modules/graphics/je_lua_graphics.cpp1048
-rw-r--r--src/lua/modules/graphics/je_lua_graphics.h14
-rw-r--r--src/lua/modules/graphics/je_lua_page.cpp66
-rw-r--r--src/lua/modules/graphics/je_lua_page.h22
-rw-r--r--src/lua/modules/graphics/je_lua_particle_system.cpp422
-rw-r--r--src/lua/modules/graphics/je_lua_particle_system.h21
-rw-r--r--src/lua/modules/graphics/je_lua_shader.cpp132
-rw-r--r--src/lua/modules/graphics/je_lua_shader.h16
-rw-r--r--src/lua/modules/graphics/je_lua_sprite.cpp66
-rw-r--r--src/lua/modules/graphics/je_lua_sprite.h24
-rw-r--r--src/lua/modules/graphics/je_lua_spritesheet.cpp118
-rw-r--r--src/lua/modules/graphics/je_lua_spritesheet.h21
-rw-r--r--src/lua/modules/graphics/je_lua_text.cpp31
-rw-r--r--src/lua/modules/graphics/je_lua_text.h16
-rw-r--r--src/lua/modules/graphics/je_lua_texture.cpp63
-rw-r--r--src/lua/modules/graphics/je_lua_texture.h16
-rw-r--r--src/lua/modules/graphics/je_lua_texture_font.cpp63
-rw-r--r--src/lua/modules/graphics/je_lua_texture_font.h16
-rw-r--r--src/lua/modules/graphics/je_lua_ttf.cpp63
-rw-r--r--src/lua/modules/graphics/je_lua_ttf.h16
-rw-r--r--src/lua/modules/graphics/je_lua_ttf_data.cpp49
-rw-r--r--src/lua/modules/graphics/je_lua_ttf_data.h21
30 files changed, 0 insertions, 2861 deletions
diff --git a/src/lua/modules/graphics/je_lua_animation.cpp b/src/lua/modules/graphics/je_lua_animation.cpp
deleted file mode 100644
index 5cd3b1f..0000000
--- a/src/lua/modules/graphics/je_lua_animation.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-#include "libjin/jin.h"
-
-#include "common/je_lua_object.h"
-#include "common/je_lua_common.h"
-
-#include "je_lua_sprite.h"
-#include "je_lua_canvas.h"
-#include "je_lua_texture.h"
-#include "je_lua_shader.h"
-#include "je_lua_animation.h"
-
-using namespace JinEngine::Math;
-using namespace JinEngine::Graphics;
-using namespace JinEngine::Graphics::Shaders;
-using namespace JinEngine::Graphics::Animations;
-
-namespace JinEngine
-{
- namespace Lua
- {
- const char* Jin_Lua_Animation = "Animation";
-
- LUA_IMPLEMENT inline Animation* checkAnimation(lua_State* L)
- {
- LuaObject* luaObj = luax_checkobject(L, 1, Jin_Lua_Animation);
- return luaObj->getObject<Animation>();
- }
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation);
- p->release();
- return 0;
- }
-
- // addFrame(frame)
- LUA_IMPLEMENT int l_addFrame(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation);
- Animation* animation = luaObj->getObject<Animation>();
- LuaObject* luaSprite = (LuaObject*)luax_checktype(L, 2, Jin_Lua_Sprite);
- Sprite* sprite = luaSprite->getObject<Sprite>();
- animation->addFrame(sprite);
- int i = animation->getFrameCount() - 1;
- luaObj->setDependency((int)AnimationDependency::DEP_SPRITES + i, luaSprite);
- return 0;
- }
-
- // addFrames(frames table)
- LUA_IMPLEMENT int l_addFrames(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation);
- Animation* shrAnimation = luaObj->getObject<Animation>();
- if (!luax_istable(L, 2))
- {
- luax_typerror(L, 2, "sprites table");
- return 1;
- }
- int n = luax_tableidxlen(L, 2);
- for (int i = 1; i <= n; ++i)
- {
- luax_rawgeti(L, 2, i);
- LuaObject* luaSprite = (LuaObject*)luax_checktype(L, -1, Jin_Lua_Sprite);
- Sprite* sprite = luaSprite->getObject<Sprite>();
- shrAnimation->addFrame(sprite);
- int index = shrAnimation->getFrameCount() - 1;
- luaObj->setDependency((int)AnimationDependency::DEP_SPRITES + index, luaSprite);
- }
- return 0;
- }
-
- LUA_IMPLEMENT int l_isLoop(lua_State* L)
- {
- Animation* shrAnimation = checkAnimation(L);
- bool loop = shrAnimation->isLoop();
- luax_pushboolean(L, loop);
- return 1;
- }
-
- LUA_IMPLEMENT int l_getSpeed(lua_State* L)
- {
- Animation* shrAnimation = checkAnimation(L);
- float speed = shrAnimation->getSpeed();
- luax_pushnumber(L, speed);
- return 1;
- }
-
- LUA_IMPLEMENT int l_getFrame(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation);
- Animation* shrAnimation = luaObj->getObject<Animation>();
- int i = luax_checkinteger(L, 2);
- LuaObject* frame = luaObj->getDependency((int)AnimationDependency::DEP_SPRITES + i);
- luax_getobject(L, frame);
- return 1;
- }
-
- LUA_IMPLEMENT int getFrameCount(lua_State* L)
- {
- Animation* shrAnimation = checkAnimation(L);
- int n = shrAnimation->getFrameCount();
- luax_pushinteger(L, n);
- return 1;
- }
-
- LUA_EXPORT void luaopen_Animation(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { "addFrame", l_addFrame },
- { "addFrames", l_addFrames },
- { "isLoop", l_isLoop },
- { "getSpeed", l_getSpeed },
- { "getFrameCount", getFrameCount },
- { "getFrame", l_getFrame },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_Animation, methods);
- }
-
- } // namespace Lua
-} // namespace JinEngine \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_animation.h b/src/lua/modules/graphics/je_lua_animation.h
deleted file mode 100644
index 1b32ec3..0000000
--- a/src/lua/modules/graphics/je_lua_animation.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef __JE_LUA_ANIMATION_H__
-#define __JE_LUA_ANIMATION_H__
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- extern const char* Jin_Lua_Animation;
-
- ///
- ///
- ///
- enum class AnimationDependency
- {
- DEP_SPRITES = 1 ///< Index from 1
- };
-
- void luaopen_Animation(lua_State* L);
-
- }
-}
-
-#endif \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_animator.cpp b/src/lua/modules/graphics/je_lua_animator.cpp
deleted file mode 100644
index 94c61b5..0000000
--- a/src/lua/modules/graphics/je_lua_animator.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-#include "common/je_lua_object.h"
-#include "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"
-#include "je_lua_animator.h"
-#include "je_lua_animation.h"
-
-using namespace JinEngine::Math;
-using namespace JinEngine::Graphics;
-using namespace JinEngine::Graphics::Shaders;
-using namespace JinEngine::Graphics::Animations;
-
-namespace JinEngine
-{
- namespace Lua
- {
- const char* Jin_Lua_Animator = "Animator";
-
- LUA_IMPLEMENT inline Animator* checkAnimator(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animator);
- return luaObj->getObject<Animator>();
- }
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* obj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation);
- obj->release();
- return 0;
- }
-
- LUA_IMPLEMENT int l_update(lua_State* L)
- {
- Animator* animator = checkAnimator(L);
- float dt = luax_checknumber(L, 2);
- animator->update(dt);
- return 0;
- }
-
- LUA_IMPLEMENT int l_play(lua_State* L)
- {
- Animator* animator = checkAnimator(L);
- animator->play();
- return 0;
- }
-
- LUA_IMPLEMENT int l_pause(lua_State* L)
- {
- Animator* animator = checkAnimator(L);
- animator->pause();
- return 0;
- }
-
- LUA_IMPLEMENT int l_resume(lua_State* L)
- {
- Animator* animator = checkAnimator(L);
- animator->resume();
- return 0;
- }
-
- LUA_IMPLEMENT int l_rewind(lua_State* L)
- {
- Animator* animator = checkAnimator(L);
- animator->rewind();
- return 0;
- }
-
- LUA_IMPLEMENT int l_render(lua_State* L)
- {
- Animator* animator = checkAnimator(L);
- float x = luax_checknumber(L, 2);
- float y = luax_checknumber(L, 3);
- float sx = luax_checknumber(L, 4);
- float sy = luax_checknumber(L, 5);
- float r = luax_checknumber(L, 6);
- animator->render(x, y, sx, sy, r);
- return 0;
- }
-
- LUA_IMPLEMENT int l_setAnimation(lua_State* L)
- {
- LuaObject* luaAnimator = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animator);
- Animator* animator = luaAnimator->getObject<Animator>();
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation);
- luaAnimator->setDependency((int)AnimatorDependency::DEP_ANIMATION, luaObj);
- animator->setAnimation(luaObj->getObject<Animation>());
- return 0;
- }
-
- LUA_IMPLEMENT int l_forceToFrame(lua_State* L)
- {
- Animator* shrAnimator = checkAnimator(L);
- int index = luax_checkinteger(L, 2);
- shrAnimator->forceToFrame(index);
- return 0;
- }
-
- LUA_IMPLEMENT int l_setSpeed(lua_State* L)
- {
- Animator* shrAnimator = checkAnimator(L);
- float fps = luax_checknumber(L, 2);
- shrAnimator->setSpeed(fps);
- return 0;
- }
-
- LUA_IMPLEMENT int l_setDefaultSpeed(lua_State* L)
- {
- Animator* shrAnimator = checkAnimator(L);
- shrAnimator->setDefaultSpeed();
- return 0;
- }
-
- LUA_IMPLEMENT int l_setLoop(lua_State* L)
- {
- Animator* shrAnimator = checkAnimator(L);
- bool loop = luax_checkbool(L, 2);
- shrAnimator->setLoop(loop);
- return 0;
- }
-
- LUA_IMPLEMENT int l_setDefaultLoop(lua_State* L)
- {
- Animator* shrAnimator = checkAnimator(L);
- shrAnimator->setDefaultLoop();
- return 0;
- }
-
- LUA_IMPLEMENT int l_getSpeed(lua_State* L)
- {
- Animator* shrAnimator = checkAnimator(L);
- float speed = shrAnimator->getSpeed();
- luax_pushnumber(L, speed);
- return 1;
- }
-
- LUA_EXPORT void luaopen_Animator(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { "update", l_update },
- { "play", l_play },
- { "pause", l_pause },
- { "resume", l_resume },
- { "rewind", l_rewind },
- { "render", l_render },
- { "setAnimation", l_setAnimation },
- { "forceToFrame", l_forceToFrame },
- { "setSpeed", l_setSpeed },
- { "setDefaultSpeed", l_setDefaultSpeed },
- { "setLoop", l_setLoop },
- { "setDefaultLoop", l_setDefaultLoop },
- { "getSpeed", l_getSpeed },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_Animator, methods);
- }
-
- } // namespace Lua
-} // namespace JinEngine \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_animator.h b/src/lua/modules/graphics/je_lua_animator.h
deleted file mode 100644
index 0292a77..0000000
--- a/src/lua/modules/graphics/je_lua_animator.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef __JE_LUA_ANIMATOR_H__
-#define __JE_LUA_ANIMATOR_H__
-
-#include "libjin/jin.h"
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- extern const char* Jin_Lua_Animator;
-
- enum class AnimatorDependency
- {
- DEP_ANIMATION = 1
- };
-
- void luaopen_Animator(lua_State* L);
-
- }
-}
-
-#endif \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_bitmap.cpp b/src/lua/modules/graphics/je_lua_bitmap.cpp
deleted file mode 100644
index 553c786..0000000
--- a/src/lua/modules/graphics/je_lua_bitmap.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-#include "common/je_lua_common.h"
-#include "common/je_lua_object.h"
-
-#include "libjin/jin.h"
-#include "je_lua_bitmap.h"
-
-using namespace JinEngine::Graphics;
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- const char* Jin_Lua_Bitmap = "Bitmap";
-
- LUA_IMPLEMENT inline Bitmap* checkBitmap(lua_State* L)
- {
- LuaObject* luaObj = luax_checkobject(L, 1, Jin_Lua_Bitmap);
- return luaObj->getObject<Bitmap>();
- }
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Bitmap);
- luaObj->release();
- return 0;
- }
-
- LUA_IMPLEMENT int l_getWidth(lua_State* L)
- {
- Bitmap* bitmap = checkBitmap(L);
- int w = bitmap->getWidth();
- luax_pushinteger(L, w);
- return 1;
- }
-
- LUA_IMPLEMENT int l_getHeight(lua_State* L)
- {
- Bitmap* bitmap = checkBitmap(L);
- int h = bitmap->getHeight();
- luax_pushinteger(L, h);
- return 1;
- }
-
- LUA_IMPLEMENT int l_getSize(lua_State* L)
- {
- Bitmap* bitmap = checkBitmap(L);
- int w = bitmap->getWidth();
- int h = bitmap->getHeight();
- luax_pushinteger(L, w);
- luax_pushinteger(L, h);
- return 2;
- }
-
- LUA_IMPLEMENT int l_getPixel(lua_State* L)
- {
- Bitmap* bitmap = checkBitmap(L);
- int x = luax_checkinteger(L, 2);
- int y = luax_checkinteger(L, 3);
- Color col = bitmap->getPixel(x, y);
- luax_pushinteger(L, col.r);
- luax_pushinteger(L, col.g);
- luax_pushinteger(L, col.b);
- luax_pushinteger(L, col.a);
- return 4;
- }
-
- LUA_IMPLEMENT int l_setPixel(lua_State* L)
- {
- Bitmap* bitmap = checkBitmap(L);
- int x = luax_checkinteger(L, 2);
- int y = luax_checkinteger(L, 3);
- if (!luax_istable(L, 4))
- {
- luax_typerror(L, 4, "table");
- return 1;
- }
- unsigned int r = luax_rawgetnumber(L, 4, 1);
- unsigned int g = luax_rawgetnumber(L, 4, 2);
- unsigned int b = luax_rawgetnumber(L, 4, 3);
- unsigned int a = luax_rawgetnumber(L, 4, 4);
- bitmap->setPixel(Color(r, g, b, a), x, y);
- return 0;
- }
-
- LUA_IMPLEMENT int l_clone(lua_State* L)
- {
- Bitmap* bitmap = checkBitmap(L);
- Bitmap* b = bitmap->clone();
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Bitmap, new Shared(b));
- return 1;
- }
-
- LUA_EXPORT void luaopen_Bitmap(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { "getWidth", l_getWidth },
- { "getHeight", l_getHeight },
- { "getSize", l_getSize },
- { "getPixel", l_getPixel },
- { "setPixel", l_setPixel },
- { "clone", l_clone },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_Bitmap, methods);
- }
-
- } // 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
deleted file mode 100644
index b463d83..0000000
--- a/src/lua/modules/graphics/je_lua_bitmap.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __JE_LUA_BITMAP_H__
-#define __JE_LUA_BITMAP_H__
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- extern const char* Jin_Lua_Bitmap;
-
- void luaopen_Bitmap(lua_State* L);
-
- }
-}
-
-#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
deleted file mode 100644
index 97b3c96..0000000
--- a/src/lua/modules/graphics/je_lua_canvas.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#include "common/je_lua_object.h"
-#include "common/je_lua_common.h"
-#include "libjin/jin.h"
-#include "je_lua_canvas.h"
-
-using namespace JinEngine::Graphics;
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- const char* Jin_Lua_Canvas = "Canvas";
-
- LUA_IMPLEMENT inline Canvas* checkCanvas(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Canvas);
- return luaObj->getObject<Canvas>();
- }
-
- LUA_IMPLEMENT int l_getWidth(lua_State* L)
- {
- Canvas* canvas = checkCanvas(L);
- luax_pushnumber(L, canvas->getWidth());
- return 1;
- }
-
- LUA_IMPLEMENT int l_getHeight(lua_State* L)
- {
- Canvas* canvas = checkCanvas(L);
- luax_pushnumber(L, canvas->getHeight());
- return 1;
- }
-
- LUA_IMPLEMENT int l_getSize(lua_State* L)
- {
- Canvas* canvas = checkCanvas(L);
- luax_pushnumber(L, canvas->getWidth());
- luax_pushnumber(L, canvas->getHeight());
- return 2;
- }
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Canvas);
- luaObj->release();
- return 0;
- }
-
- LUA_EXPORT void luaopen_Canvas(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { "getWidth", l_getWidth },
- { "getHeight", l_getHeight },
- { "getSize", l_getSize },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_Canvas, methods);
- }
-
- } // namespace Lua
-} // namespace JinEngine \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_canvas.h b/src/lua/modules/graphics/je_lua_canvas.h
deleted file mode 100644
index d1fa885..0000000
--- a/src/lua/modules/graphics/je_lua_canvas.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __JE_LUA_CANVAS_H__
-#define __JE_LUA_CANVAS_H__
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- extern const char* Jin_Lua_Canvas;
-
- void luaopen_Canvas(lua_State* L);
-
- }
-}
-
-#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
deleted file mode 100644
index fba77d7..0000000
--- a/src/lua/modules/graphics/je_lua_graphics.cpp
+++ /dev/null
@@ -1,1048 +0,0 @@
-#include <iostream>
-#include <fstream>
-
-#include "libjin/jin.h"
-#include "common/je_lua_object.h"
-#include "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"
-#include "je_lua_sprite.h"
-#include "je_lua_animation.h"
-#include "je_lua_animator.h"
-#include "je_lua_particle_system.h"
-
-using namespace std;
-using namespace JinEngine;
-using namespace JinEngine::Math;
-using namespace JinEngine::Graphics;
-using namespace JinEngine::Graphics::Fonts;
-using namespace JinEngine::Graphics::Shaders;
-using namespace JinEngine::Graphics::Animations;
-using namespace JinEngine::Graphics::Particles;
-using namespace JinEngine::Filesystem;
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- #include "../../resources/font.ttf.h"
-
- static struct
- {
- Color curRenderColor;
- Color curClearColor;
- Font* defaultFont = nullptr;
- bool initialized = false;
- } context;
-
- LUA_IMPLEMENT int l_init(lua_State* L)
- {
- if (context.initialized)
- {
- luax_pushboolean(L, true);
- return 1;
- }
-
- Window* wnd = Window::get();
- Window::Setting setting;
- setting.width = luax_getfieldinteger(L, 1, "width");
- setting.height = luax_getfieldinteger(L, 1, "height");
- setting.title = luax_getfieldstring(L, 1, "title");
- setting.icon = luax_getfieldstring(L, 1, "icon");
- setting.vsync = luax_getfieldbool(L, 1, "vsync");
- setting.fullscreen = luax_getfieldbool(L, 1, "fullscreen");
- setting.resizable = luax_getfieldbool(L, 1, "resizable");
- context.initialized = wnd->start(&setting);
- if (!context.initialized)
- {
- luax_pushboolean(L, context.initialized);
- return 1;
- }
-
- /* load default font */
- Bitmap* bitmap = new Bitmap(default_font_bitmap, sizeof(default_font_bitmap));
- TextureFont* tf = new TextureFont(bitmap, Text(Encode::UTF8, default_charset), default_font_split, bitmap->getHeight());
- delete bitmap;
- context.defaultFont = tf;
- gl.setFont(tf);
-
- luax_pushboolean(L, context.initialized);
- return 1;
- }
-
- LUA_IMPLEMENT int l_setTitle(lua_State* L)
- {
- Window* wnd = Window::get();
- const char* title = luax_checkstring(L, 1);
- wnd->setTitle(title);
- return 0;
- }
-
- LUA_IMPLEMENT int l_destroy(lua_State* L)
- {
- Window* wnd = Window::get();
- wnd->quit();
- return 0;
- }
-
- LUA_IMPLEMENT int l_showWindow(lua_State* L)
- {
- Window* wnd = Window::get();
- wnd->show();
- return 0;
- }
-
- LUA_IMPLEMENT int l_hideWindow(lua_State* L)
- {
- Window* wnd = Window::get();
- wnd->hide();
- return 0;
- }
-
- LUA_IMPLEMENT int l_getSize(lua_State* L)
- {
- Window* wnd = Window::get();
- luax_pushnumber(L, wnd->getW());
- luax_pushnumber(L, wnd->getH());
- return 2;
- }
-
- LUA_IMPLEMENT int l_getWidth(lua_State* L)
- {
- Window* wnd = Window::get();
- luax_pushnumber(L, wnd->getW());
- return 1;
- }
-
- LUA_IMPLEMENT int l_getHeight(lua_State* L)
- {
- Window* wnd = Window::get();
- luax_pushnumber(L, wnd->getH());
- return 1;
- }
-
- LUA_IMPLEMENT int l_newBitmap(lua_State* L)
- {
- Bitmap* bitmap = nullptr;
- if (luax_gettop(L) == 2)
- {
- int w = luax_checkinteger(L, 1);
- int h = luax_checkinteger(L, 2);
- bitmap = new Bitmap(w, h);
- }
- else if (luax_gettop(L) == 3)
- {
- int w = luax_checkinteger(L, 1);
- int h = luax_checkinteger(L, 2);
- if (luax_istable(L, 3))
- {
- unsigned int r = luax_rawgetnumber(L, 3, 1);
- unsigned int g = luax_rawgetnumber(L, 3, 2);
- unsigned int b = luax_rawgetnumber(L, 3, 3);
- unsigned int a = luax_rawgetnumber(L, 3, 4);
- bitmap = new Bitmap(w, h, Color(r, g, b, a));
- }
- else if (luax_isfunction(L, 3))
- {
- std::function<Color(int, int, int, int)> drawer = [=](int w, int h, int x, int y)->Color{
- luax_pushvalue(L, 3);
- luax_pushnumber(L, w);
- luax_pushnumber(L, h);
- luax_pushnumber(L, x);
- luax_pushnumber(L, y);
- // Call drawer function.
- luax_call(L, 4, 1);
- // Get result color.
- if (!luax_istable(L, -1))
- luax_error(L, "Return value of bitmap drawer is wrong, should be a color table.");
- Color c;
- c.r = luax_rawgetnumberthenpop(L, -1, 1);
- c.g = luax_rawgetnumberthenpop(L, -1, 2);
- c.b = luax_rawgetnumberthenpop(L, -1, 3);
- c.a = luax_rawgetnumberthenpop(L, -1, 4);
- // Pop return value.
- luax_pop(L, 1);
- return c;
- };
- bitmap = new Bitmap(w, h, drawer);
- }
- else
- {
- luax_typerror(L, 3, "color table or color setter");
- return 1;
- }
- }
- else
- {
- const char* f = luax_checkstring(L, 1);
- AssetDatabase* fs = AssetDatabase::get();
- Buffer b;
- try
- {
- if (!fs->exists(f))
- throw Exception("No such image file %s.", f);
- fs->read(f, b);
- }
- catch (Exception& e)
- {
- error(L, "Failed to read image %s", f);
- luax_pushnil(L);
- return 1;
- }
- bitmap = new Bitmap(&b, b.size());
- if (bitmap == nullptr)
- {
- error(L, "Failed to decode image file %s", f);
- luax_pushnil(L);
- return 1;
- }
- }
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Bitmap, new Shared(bitmap));
- return 1;
- }
-
- /* jin.graphics.newTexture(bitmap) */
- LUA_IMPLEMENT int l_newTexture(lua_State* L)
- {
- Texture* texture = nullptr;
- if (luax_istype(L, 1, Jin_Lua_Bitmap))
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Bitmap);
- Bitmap* bitmap = luaObj->getObject<Bitmap>();
- texture = new Texture(bitmap);
- }
- else if (luax_isstring(L, 1))
- {
- const char* path = luax_checkstring(L, 1);
- texture = new Texture(path);
- }
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Texture, new Shared(texture));
- return 1;
- }
-
- LUA_IMPLEMENT int l_newShader(lua_State* L)
- {
- const char* program = luax_checkstring(L, 1);
- Shader* jsl = new Shader(program);
- if (jsl == nullptr)
- {
- error(L, "Failed to compile shader");
- luax_pushnil(L);
- return 1;
- }
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Shader, new Shared(jsl));
- return 1;
- }
-
- LUA_IMPLEMENT int l_newShaderf(lua_State* L)
- {
- const char* path = luax_checkstring(L, 1);
- AssetDatabase* fs = AssetDatabase::get();
- if (!fs->exists(path))
- {
- error(L, "No such shader file \"%s\"", path);
- luax_pushnil(L);
- return 1;
- }
- Buffer b;
- fs->read(path, b);
- Shader* jsl = new Shader((char*)&b);
- if (jsl == nullptr)
- {
- error(L, "Failed to compile shader");
- luax_pushnil(L);
- return 1;
- }
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Shader, new Shared(jsl));
- return 1;
- }
-
- LUA_IMPLEMENT int l_newCanvas(lua_State* L)
- {
- int w = luax_checknumber(L, 1);
- int h = luax_checknumber(L, 2);
- Canvas* cvs = new Canvas(w, h);
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Canvas, new Shared(cvs));
- return 1;
- }
-
- LUA_IMPLEMENT int l_clear(lua_State* L)
- {
- glClear(GL_COLOR_BUFFER_BIT);
- return 0;
- }
-
- LUA_IMPLEMENT int l_setClearColor(lua_State* L)
- {
- if (luax_gettop(L) == 0)
- {
- glClearColor(0, 0, 0, 1);
- return 0;
- }
-
- context.curClearColor.r = luax_checknumber(L, 1);
- context.curClearColor.g = luax_checknumber(L, 2);
- context.curClearColor.b = luax_checknumber(L, 3);
- context.curClearColor.a = luax_checknumber(L, 4);
-
- gl.setClearColor(context.curClearColor.r,
- context.curClearColor.g,
- context.curClearColor.b,
- context.curClearColor.a);
- return 0;
- }
-
- LUA_IMPLEMENT int l_present(lua_State* L)
- {
- Window::get()->swapBuffers();
- return 0;
- }
-
- LUA_IMPLEMENT void l_draw_texture(lua_State* L)
- {
- if (!luax_istype(L, 1, Jin_Lua_Texture))
- return;
- int x = luax_optnumber(L, 2, 0);
- int y = luax_optnumber(L, 3, 0);
- float sx = luax_optnumber(L, 4, 1);
- float sy = luax_optnumber(L, 5, 1);
- float r = luax_optnumber(L, 6, 0);
- float ox = luax_optnumber(L, 7, 0);
- float oy = luax_optnumber(L, 8, 0);
- LuaObject* luaObj = (LuaObject*)luax_toudata(L, 1);
- Texture* tex = luaObj->getObject<Texture>();
- tex->render(x, y, sx, sy, r, ox, oy);
- }
-
- LUA_IMPLEMENT void l_draw_canvas(lua_State* L)
- {
- if (!luax_istype(L, 1, Jin_Lua_Canvas))
- return;
- int x = luax_optnumber(L, 2, 0);
- int y = luax_optnumber(L, 3, 0);
- float sx = luax_optnumber(L, 4, 1);
- float sy = luax_optnumber(L, 5, 1);
- float r = luax_optnumber(L, 6, 0);
- float ox = luax_optnumber(L, 7, 0);
- float oy = luax_optnumber(L, 8, 0);
- LuaObject* luaObj = (LuaObject*)luax_toudata(L, 1);
- Canvas* canvas = luaObj->getObject<Canvas>();
- canvas->render(x, y, sx, sy, r, ox, oy);
- }
-
- /* jin.graphics.draw(text, font, x, y) */
- LUA_IMPLEMENT void l_draw_text(lua_State* L)
- {
- if (!luax_istype(L, 1, Jin_Lua_Text))
- return;
- LuaObject* p = (LuaObject*)luax_toudata(L, 1);
- Text* text = p->getObject<Text>();
- int x = luax_optnumber(L, 3, 0);
- int y = luax_optnumber(L, 4, 0);
- int spacing = luax_optnumber(L, 6, 0);
- Font* font = nullptr;
- LuaObject* p2 = (LuaObject*)luax_toudata(L, 2);
- if (luax_istype(L, 2, Jin_Lua_TextureFont))
- {
- TextureFont* tf = p2->getObject<TextureFont>();
- font = tf;
- }
- else if (luax_istype(L, 2, Jin_Lua_TTF))
- {
- TTF* ttf = p2->getObject<TTF>();
- font = ttf;
- }
- else
- {
- font = context.defaultFont;
- }
- int lineheight = luax_optnumber(L, 5, font->getFontSize());
- font->render(*text, x, y, lineheight, spacing);
- }
-
- /* jin.graphics.draw(page, x, y) */
- LUA_IMPLEMENT void l_draw_page(lua_State* L)
- {
- if (!luax_istype(L, 1, Jin_Lua_Page))
- return;
- int x = luax_optnumber(L, 2, 0);
- int y = luax_optnumber(L, 3, 0);
- LuaObject* p = (LuaObject*)luax_toudata(L, 1);
- Page* page = p->getObject<Page>();
- Font* font = page->font;
- font->render(page, x, y);
- }
-
- LUA_IMPLEMENT void l_draw_sprite(lua_State* L)
- {
- if (!luax_istype(L, 1, Jin_Lua_Sprite))
- return;
- LuaObject* luaSprite = (LuaObject*)luax_toudata(L, 1);
- Sprite* sprite = luaSprite->getObject<Sprite>();
- float x = luax_checknumber(L, 2);
- float y = luax_checknumber(L, 3);
- float sx = luax_checknumber(L, 4);
- float sy = luax_checknumber(L, 5);
- float r = luax_checknumber(L, 6);
- sprite->render(x, y, sx, sy, r);
- }
-
- LUA_IMPLEMENT int l_draw(lua_State* L)
- {
- if (luax_istype(L, 1, Jin_Lua_Texture))
- l_draw_texture(L);
- else if (luax_istype(L, 1, Jin_Lua_Canvas))
- l_draw_canvas(L);
- else if (luax_istype(L, 1, Jin_Lua_Text))
- l_draw_text(L);
- else if (luax_istype(L, 1, Jin_Lua_Page))
- l_draw_page(L);
- else if (luax_istype(L, 1, Jin_Lua_Sprite))
- l_draw_sprite(L);
- else
- {
- luax_typerror(L, 1, "texture or canvas");
- return 1;
- }
- return 0;
- }
-
- // draw(tex, quad, x, y, sx, sy, r, ax, ay)
- LUA_IMPLEMENT int l_drawq(lua_State* L)
- {
- if (!luax_istable(L, 2))
- {
- luax_typerror(L, 2, "table");
- return 1;
- }
- Math::Quad q;
- q.x = luax_rawgetnumber(L, 2, 1);
- q.y = luax_rawgetnumber(L, 2, 2);
- q.w = luax_rawgetnumber(L, 2, 3);
- q.h = luax_rawgetnumber(L, 2, 4);
- luax_pop(L, 4);
- int x = luax_optnumber(L, 3, 0);
- int y = luax_optnumber(L, 4, 0);
- float sx = luax_optnumber(L, 5, 1);
- float sy = luax_optnumber(L, 6, 1);
- float r = luax_optnumber(L, 7, 0);
- float ox = luax_optnumber(L, 8, 0);
- float oy = luax_optnumber(L, 9, 0);
-
- if (luax_istype(L, 1, Jin_Lua_Texture))
- {
- LuaObject* luaObj = (LuaObject*)luax_toudata(L, 1);
- Texture* tex = luaObj->getObject<Texture>();
- tex->render(q, x, y, sx, sy, r, ox, oy);
- }
- else if (luax_istype(L, 1, Jin_Lua_Canvas))
- {
- LuaObject* luaObj = (LuaObject*)luax_toudata(L, 1);
- Canvas* canvas = luaObj->getObject<Canvas>();
- canvas->render(q, x, y, sx, sy, r, ox, oy);
- }
- else
- {
- luax_typerror(L, 1, "texture or canvas");
- }
- }
-
- /* print(string, x, y, lineheight, spacing) */
- /* need set font */
- LUA_IMPLEMENT int l_print(lua_State* L)
- {
- Font* font = gl.getFont();
- if (font == nullptr)
- return 0;
- unsigned length;
- const char* str = luax_checklstring(L, 1, &length);
- Text text(Encode::UTF8, str, length);
- int x = luax_optnumber(L, 2, 0);
- int y = luax_optnumber(L, 3, 0);
- int lineheight = luax_optnumber(L, 4, font->getFontSize());
- int spacing = luax_optnumber(L, 5, 0);
- font->render(text, x, y, lineheight, spacing);
- return 0;
- }
-
- LUA_IMPLEMENT int l_setColor(lua_State* L)
- {
- if (luax_gettop(L) == 0)
- {
- gl.setColor(Color(255, 255, 255, 255));
- return 0;
- }
-
- context.curRenderColor.r = luax_checknumber(L, 1);
- context.curRenderColor.g = luax_checknumber(L, 2);
- context.curRenderColor.b = luax_checknumber(L, 3);
- if (luax_gettop(L) == 4)
- context.curRenderColor.a = luax_checknumber(L, 4);
- else
- context.curRenderColor.a = 255;
- gl.setColor(context.curRenderColor);
- return 0;
- }
-
- LUA_IMPLEMENT int l_getColor(lua_State * L)
- {
- luax_pushnumber(L, context.curRenderColor.r);
- luax_pushnumber(L, context.curRenderColor.g);
- luax_pushnumber(L, context.curRenderColor.b);
- luax_pushnumber(L, context.curRenderColor.a);
- return 4;
- }
-
- LUA_IMPLEMENT int l_bindCanvas(lua_State* L)
- {
- if (luax_gettop(L) == 0)
- {
- // bind to default canvas
- gl.unbindCanvas();
- return 0;
- }
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Canvas);
- Canvas* canvas = luaObj->getObject<Canvas>();
- gl.bindCanvas(canvas);
- return 0;
- }
-
- LUA_IMPLEMENT int l_unbindCanvas(lua_State* L)
- {
- gl.unbindCanvas();
- return 0;
- }
-
- LUA_IMPLEMENT int l_useShader(lua_State* L)
- {
- if (luax_gettop(L) == 0)
- {
- gl.unuseShader();
- return 0;
- }
- if (luax_istype(L, 1, Jin_Lua_Shader))
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Shader);
- Shader* shader = luaObj->getObject<Shader>();
- gl.useShader(shader);
- }
- else
- {
- luax_typerror(L, 1, "JSL shader");
- }
- return 0;
- }
-
- LUA_IMPLEMENT int l_setBlend(lua_State* L)
- {
-
- return 0;
- }
-
- LUA_IMPLEMENT int l_point(lua_State* L)
- {
- int x = luax_checknumber(L, 1);
- int y = luax_checknumber(L, 2);
- JinEngine::Graphics::point(x, y);
-
- return 0;
- }
-
- LUA_IMPLEMENT int l_line(lua_State* L)
- {
- int x1 = luax_checknumber(L, 1);
- int y1 = luax_checknumber(L, 2);
- int x2 = luax_checknumber(L, 3);
- int y2 = luax_checknumber(L, 4);
- JinEngine::Graphics::line(x1, y1, x2, y2);
-
- return 0;
- }
-
- LUA_IMPLEMENT int l_rect(lua_State* L)
- {
- RenderMode mode = static_cast<RenderMode>(luax_checkinteger(L, 1));
- if (mode != RenderMode::NONE)
- {
- int x = luax_checknumber(L, 2);
- int y = luax_checknumber(L, 3);
- int w = luax_checknumber(L, 4);
- int h = luax_checknumber(L, 5);
- rect(mode, x, y, w, h);
- }
- else
- {
- luax_typerror(L, 1, "'fill' or 'line'");
- return 1;
- }
-
- return 0;
- }
-
- LUA_IMPLEMENT int l_circle(lua_State* L)
- {
- RenderMode mode = static_cast<RenderMode>(luax_checkinteger(L, 1));
- if (mode != RenderMode::NONE)
- {
- int x = luax_checknumber(L, 2);
- int y = luax_checknumber(L, 3);
- float r = luax_checknumber(L, 4);
- circle(mode, x, y, r);
- }
- else
- {
- luax_typerror(L, 1, "'fill' or 'line'");
- return 1;
- }
-
- return 0;
- }
-
- LUA_IMPLEMENT int l_triangle(lua_State* L)
- {
- RenderMode mode = static_cast<RenderMode>(luax_checkinteger(L, 1));
- if (mode != RenderMode::NONE)
- {
- int x = luax_checknumber(L, 2);
- int y = luax_checknumber(L, 3);
-
- int x2 = luax_checknumber(L, 3);
- int y2 = luax_checknumber(L, 4);
-
- int x3 = luax_checknumber(L, 5);
- int y3 = luax_checknumber(L, 6);
-
- triangle(mode, x, y, x2, y2, x3, y3);
- }
- else
- {
- luax_typerror(L, 1, "'fill' or 'line'");
- return 1;
- }
-
- return 0;
- }
-
- LUA_IMPLEMENT int l_polygon(lua_State* L)
- {
- RenderMode mode = static_cast<RenderMode>(luax_checkinteger(L, 1));
- int n = luax_checknumber(L, 2);
- if (mode != RenderMode::NONE)
- {
- if (!luax_istable(L, 3))
- {
- luax_typerror(L, 3, "table");
- return 1;
- }
- int tn = luax_tableidxlen(L, 3);
- if (tn != n * 2)
- {
- LUA_IMPLEMENT char* emsg = \
- "number of polygon vertices doesn't match " \
- "provided n, expect %d numbers but get %d";
- luax_error(L, emsg, n * 2, tn);
- return 1;
- }
- float* p = (float*)alloca(2 * n * sizeof(float));
- for (int i = 1; i <= 2 * n; ++i)
- p[i - 1] = luax_rawgetnumber(L, 3, i);
- polygon(mode, p, n);
- }
- else
- {
- luax_typerror(L, 1, "'fill' or 'line'");
- return 1;
- }
-
- return 0;
- }
-
- LUA_IMPLEMENT int l_newTTFData(lua_State* L)
- {
- TTFData* fd = nullptr;
- {
- const char* path = luax_checkstring(L, 1);
- AssetDatabase* fs = AssetDatabase::get();
- if (!fs->exists(path))
- {
- error(L, "No such font \"%s\"", path);
- luax_pushnil(L);
- return 1;
- }
- Buffer b;
- fs->read(path, b);
- fd = new TTFData(&b, b.size());
- }
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_TTFData, new Shared(fd));
- return 1;
- }
-
- /* newText(str[, encode]) */
- LUA_IMPLEMENT int l_newText(lua_State* L)
- {
- Encode encode = Encode::UTF8;
- if (luax_gettop(L) == 2)
- {
- const char* e = luax_checkstring(L, 2);
- if (strcmp(e, "UTF8") == 0) encode = Encode::UTF8;
- //else if (strcmp(e, "UTF16") == 0) encode = Encode::UTF16;
- else if (strcmp(e, "ASCII") == 0) encode = Encode::ASCII;
- else
- {
- luax_error(L, "wrong text encode %s", e);
- return 0;
- }
- }
- 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(text));
- return 1;
- }
-
- // newSprite(Texture tex, Quad quad, Origin origin)
- // newSprite(Texture tex, Quad quad, Number ox, Number oy)
- // newSprite(Texture tex, Origin origin)
- // newSprite(Texture tex, Number ox, Number oy)
- LUA_IMPLEMENT int l_newSprite(lua_State* L)
- {
- int n = luax_gettop(L);
- LuaObject* objGraphic = nullptr;
- if (luax_istype(L, 1, Jin_Lua_Texture))
- objGraphic = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Texture);
- else if (luax_istype(L, 1, Jin_Lua_Canvas))
- objGraphic = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Canvas);
- Graphic* graphic = objGraphic->getObject<Graphic>();
- if (objGraphic != nullptr)
- {
- if (n == 3 && luax_istable(L, 2))
- {
- Quad quad;
- quad.x = luax_rawgetnumberthenpop(L, 2, 1);
- quad.y = luax_rawgetnumberthenpop(L, 2, 2);
- quad.w = luax_rawgetnumberthenpop(L, 2, 3);
- quad.h = luax_rawgetnumberthenpop(L, 2, 4);
- int o = luax_checkinteger(L, 3);
- Origin origin = static_cast<Origin>(o);
- LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(new Sprite(graphic, quad, origin)));
- p->setDependency((int)SpriteDependency::DEP_GRAPHIC, objGraphic);
- }
- else if (n == 4)
- {
- Quad quad;
- quad.x = luax_rawgetnumberthenpop(L, 2, 1);
- quad.y = luax_rawgetnumberthenpop(L, 2, 2);
- quad.w = luax_rawgetnumberthenpop(L, 2, 3);
- 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(new Sprite(graphic, quad, ox, oy)));
- p->setDependency((int)SpriteDependency::DEP_GRAPHIC, objGraphic);
- }
- else if (n == 2)
- {
- int o = luax_checkinteger(L, 2);
- Origin origin = static_cast<Origin>(o);
- LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(new Sprite(graphic, origin)));
- p->setDependency((int)SpriteDependency::DEP_GRAPHIC, objGraphic);
- }
- 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(new Sprite(graphic, ox, oy)));
- p->setDependency((int)SpriteDependency::DEP_GRAPHIC, objGraphic);
- }
- else
- {
- luax_error(L, "No matched overloaded functions.");
- return 1;
- }
- }
-
- return 1;
- }
-
- LUA_IMPLEMENT int l_newSpriteSheet(lua_State* L)
- {
- LuaObject* objGraphic = nullptr;
- if (luax_istype(L, 1, Jin_Lua_Texture))
- objGraphic = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Texture);
- else if(luax_istype(L, 1, Jin_Lua_Canvas))
- objGraphic = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Canvas);
- if (objGraphic != nullptr)
- {
- Graphic* graphic = objGraphic->getObject<Graphic>();
- Shared* shrSSheet = new Shared(new SpriteSheet(graphic));
- LuaObject* luaSSheet = luax_newinstance(L, Jin_Lua_SpriteSheet, shrSSheet);
- luaSSheet->setDependency((int)SpriteSheetDependency::DEP_GRAPHIC, objGraphic);
- return 1;
- }
- else
- return 0;
- }
-
- // newAnimation([frames table, loop, speed])
- LUA_IMPLEMENT int l_newAnimation(lua_State* L)
- {
- int argc = luax_gettop(L);
- Animation* animation = new Animation();
- Shared* shrAnimation = new Shared(animation);
- LuaObject* luaAnimation = luax_newinstance(L, Jin_Lua_Animation, shrAnimation);
- if (argc >= 3)
- {
- if (!luax_istable(L, 1))
- {
- luax_typerror(L, 1, "frames table");
- return 1;
- }
- bool loop = luax_checkbool(L, 2);
- float speed = luax_checknumber(L, 3);
- int n = luax_tableidxlen(L, 1);
- for (int i = 1; i <= n; ++i)
- {
- luax_rawgeti(L, 1, i);
- LuaObject* luaSprite = (LuaObject*)luax_checktype(L, -1, Jin_Lua_Sprite);
- animation->addFrame(luaSprite->getObject<Sprite>());
- int index = animation->getFrameCount() - 1;
- luaAnimation->setDependency((int)AnimationDependency::DEP_SPRITES + index, luaSprite);
- }
- animation->setLoop(loop);
- animation->setSpeed(speed);
- }
- luax_pushvalue(L, argc + 1);
- return 1;
- }
-
- // newAnimator([animation])
- LUA_IMPLEMENT int l_newAnimator(lua_State* L)
- {
- int argc = luax_gettop(L);
- Animator* animator = new Animator();
- Shared* shrAniamtor = new Shared(animator);
- if (argc >= 1)
- {
- LuaObject* animation = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation);
- animator->setAnimation(animation->getObject<Animation>());
- LuaObject* luaAnimator = luax_newinstance(L, Jin_Lua_Animator, shrAniamtor);
- luaAnimator->setDependency((int)AnimatorDependency::DEP_ANIMATION, animation);
- return 1;
- }
- LuaObject* luaAnimator = luax_newinstance(L, Jin_Lua_Animator, shrAniamtor);
- return 1;
- }
-
- /* newTextureFont(bitmap, text, color | cellw, cellh) */
- LUA_IMPLEMENT int l_newTextureFont(lua_State* L)
- {
- LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Bitmap);
- Bitmap* bitmap = p->getObject<Bitmap>();
- Text* text;
- if (luax_istype(L, 2, Jin_Lua_Text))
- {
- LuaObject* pt = (LuaObject*)luax_checktype(L, 2, Jin_Lua_Text);
- text = pt->getObject<Text>();
- }
- else if (luax_isstring(L, 2))
- {
- unsigned len;
- const char* str = luax_checklstring(L, 2, &len);
- text = new Text(Encode::UTF8, str, len);
- }
- else
- {
- luax_typerror(L, 2, "Text or string");
- return 1;
- }
- float cellh = luax_checknumber(L, 4);
- TextureFont* textureFont = nullptr;
- if (luax_istable(L, 3))
- {
- unsigned int r = luax_rawgetnumber(L, 3, 1);
- unsigned int g = luax_rawgetnumber(L, 3, 2);
- unsigned int b = luax_rawgetnumber(L, 3, 3);
- unsigned int a = luax_rawgetnumber(L, 3, 4);
- textureFont = new TextureFont(bitmap, *text, Color(r, g, b, a), cellh);
- }
- else if (luax_isnumber(L, 3))
- {
- float cellw = luax_checknumber(L, 3);
- textureFont = new TextureFont(bitmap, *text, cellw, cellh);
- }
- else
- {
- luax_error(L, "bad arguments #3 to 'newTextureFont', need to be table or number");
- return 0;
- }
- if (luax_isstring(L, 2))
- {
- // Delete temporary text.
- delete text;
- }
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_TextureFont, new Shared(textureFont));
- return 1;
- }
-
- LUA_IMPLEMENT int l_newParticleSystem(lua_State* L)
- {
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_ParticleSystem, new Shared(new ParticleSystem()));
- return 1;
- }
-
- /* setFont(font) */
- LUA_IMPLEMENT int l_setFont(lua_State* L)
- {
- if (luax_istype(L, 1, Jin_Lua_TTF))
- {
- LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_TTF);
- TTF* ttf = p->getObject<TTF>();
- gl.setFont(ttf);
- }
- else if (luax_istype(L, 1, Jin_Lua_TextureFont))
- {
- LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_TextureFont);
- TextureFont* tf = p->getObject<TextureFont>();
- gl.setFont(tf);
- }
- return 0;
- }
-
- LUA_IMPLEMENT int l_unsetFont(lua_State* L)
- {
- gl.setFont(context.defaultFont);
- return 0;
- }
-
- LUA_IMPLEMENT int l_clearMatrix(lua_State* L)
- {
- gl.clearMatrix();
- return 0;
- }
-
- LUA_IMPLEMENT int l_pushMatrix(lua_State* L)
- {
- gl.pushMatrix();
- return 0;
- }
-
- LUA_IMPLEMENT int l_popMatrix(lua_State* L)
- {
- gl.popMatrix();
- return 0;
- }
-
- LUA_IMPLEMENT int l_scale(lua_State* L)
- {
- float sx = luax_checknumber(L, 1);
- float sy = luax_checknumber(L, 2);
- gl.scale(sx, sy);
- return 0;
- }
-
- LUA_IMPLEMENT int l_translate(lua_State* L)
- {
- float x = luax_checknumber(L, 1);
- float y = luax_checknumber(L, 2);
- gl.translate(x, y);
- return 0;
- }
-
- LUA_IMPLEMENT int l_rotate(lua_State* L)
- {
- float r = luax_checknumber(L, 1);
- gl.rotate(r);
- return 0;
- }
-
- LUA_EXPORT int luaopen_graphics(lua_State* L)
- {
- luaopen_Bitmap(L);
- luaopen_Texture(L);
- luaopen_Canvas(L);
- luaopen_TTFData(L);
- luaopen_TTF(L);
- luaopen_Text(L);
- luaopen_TextureFont(L);
- luaopen_Page(L);
- luaopen_Shader(L);
- luaopen_Sprite(L);
- luaopen_SpriteSheet(L);
- luaopen_Animation(L);
- luaopen_Animator(L);
- luaopen_ParticleSystem(L);
-
- luaL_Reg methods[] = {
- /* window */
- { "init", l_init },
- { "setTitle", l_setTitle },
- { "getSize", l_getSize },
- { "getWidth", l_getWidth },
- { "getHeight", l_getHeight },
- { "destroy", l_destroy },
- { "hideWindow", l_hideWindow },
- { "showWindow", l_showWindow },
- /* creators */
- { "newBitmap", l_newBitmap },
- { "newTexture", l_newTexture },
- { "newShader", l_newShader },
- { "newShaderf", l_newShaderf },
- { "newCanvas", l_newCanvas },
- { "newTTFData", l_newTTFData },
- { "newText", l_newText },
- { "newTextureFont", l_newTextureFont },
- { "newSprite", l_newSprite },
- { "newSpriteSheet", l_newSpriteSheet },
- { "newAnimation", l_newAnimation },
- { "newAnimator", l_newAnimator },
- { "newParticleSystem", l_newParticleSystem },
- /* render */
- { "setClearColor", l_setClearColor },
- { "clear", l_clear },
- { "draw", l_draw },
- { "print", l_print },
- { "drawq", l_drawq },
- { "setColor", l_setColor },
- { "getColor", l_getColor },
- { "present", l_present },
- /* canvas */
- { "bindCanvas", l_bindCanvas },
- { "unbindCanvas", l_unbindCanvas },
- /* shader */
- { "useShader", l_useShader },
- /* shapes */
- { "point", l_point },
- { "line", l_line },
- { "rect", l_rect },
- { "circle", l_circle },
- { "triangle", l_triangle },
- { "polygon", l_polygon },
- /* font */
- { "setFont", l_setFont },
- { "unsetFont", l_unsetFont },
- /* transform */
- { "pushMatrix", l_pushMatrix },
- { "clearMatrix", l_clearMatrix },
- { "popMatrix", l_popMatrix },
- { "translate", l_translate },
- { "rotate", l_rotate },
- { "scale", l_scale },
- { 0, 0 }
- };
- // Load whole lib.
- luax_newlib(L, methods);
- return 1;
- }
-
- } // namespace Lua
-} // namespace JinEngine \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_graphics.h b/src/lua/modules/graphics/je_lua_graphics.h
deleted file mode 100644
index 02a2c63..0000000
--- a/src/lua/modules/graphics/je_lua_graphics.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __JE_LUA_GRAPHICS_H__
-#define __JE_LUA_GRAPHICS_H__
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- int luaopen_graphics(lua_State* L);
-
- }
-}
-
-#endif \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_page.cpp b/src/lua/modules/graphics/je_lua_page.cpp
deleted file mode 100644
index 5a312e2..0000000
--- a/src/lua/modules/graphics/je_lua_page.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-#include <iostream>
-
-#include "common/je_lua_object.h"
-#include "common/je_lua_common.h"
-#include "libjin/jin.h"
-
-using namespace JinEngine::Graphics;
-using namespace JinEngine::Graphics::Fonts;
-using namespace JinEngine::Graphics::Shaders;
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- const char* Jin_Lua_Page = "Page";
-
- Page* getPage(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Page);
- return luaObj->getObject<Page>();
- }
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Page);
- luaObj->release();
- return 0;
- }
-
- LUA_IMPLEMENT int l_getSize(lua_State* L)
- {
- Page* page = getPage(L);
- luax_pushinteger(L, page->size.w);
- luax_pushinteger(L, page->size.h);
- return 2;
- }
-
- LUA_IMPLEMENT int l_getWidth(lua_State* L)
- {
- Page* page = getPage(L);
- luax_pushinteger(L, page->size.w);
- return 1;
- }
-
- LUA_IMPLEMENT int l_getHeight(lua_State* L)
- {
- Page* page = getPage(L);
- luax_pushinteger(L, page->size.h);
- return 1;
- }
-
- LUA_EXPORT void luaopen_Page(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { "getSize", l_getSize },
- { "getWidth", l_getWidth },
- { "getHeight", l_getHeight },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_Page, methods);
- }
-
- } // namespace Lua
-} // namespace JinEngine \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_page.h b/src/lua/modules/graphics/je_lua_page.h
deleted file mode 100644
index e4a21a3..0000000
--- a/src/lua/modules/graphics/je_lua_page.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef __JE_LUA_PAGE_H__
-#define __JE_LUA_PAGE_H__
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- enum class PageDependency
- {
- DEP_TTF = 1,
- DEP_TEXTURE_FONT = 2,
- };
-
- extern const char* Jin_Lua_Page;
-
- void luaopen_Page(lua_State* L);
-
- }
-}
-
-#endif \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_particle_system.cpp b/src/lua/modules/graphics/je_lua_particle_system.cpp
deleted file mode 100644
index 0c42209..0000000
--- a/src/lua/modules/graphics/je_lua_particle_system.cpp
+++ /dev/null
@@ -1,422 +0,0 @@
-#include <vector>
-
-#include "common/je_lua_object.h"
-#include "common/je_lua_common.h"
-#include "libjin/jin.h"
-
-#include "je_lua_sprite.h"
-#include "je_lua_particle_system.h"
-
-using namespace std;
-using namespace JinEngine::Math;
-using namespace JinEngine::Graphics;
-using namespace JinEngine::Graphics::Particles;
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- const char* Jin_Lua_ParticleSystem = "ParticleSystem";
-
- LUA_IMPLEMENT inline ParticleSystem* checkPS(lua_State* L)
- {
- LuaObject* luaObj = luax_checkobject(L, 1, Jin_Lua_ParticleSystem);
- return luaObj->getObject<ParticleSystem>();
- }
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* luaObj = luax_checkobject(L, 1, Jin_Lua_ParticleSystem);
- luaObj->release();
- return 0;
- }
-
- LUA_IMPLEMENT int l_update(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- float dt = luax_checknumber(L, 2);
- ps->update(dt);
- return 0;
- }
-
- LUA_IMPLEMENT int l_render(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- ps->render();
- return 0;
- }
-
- LUA_IMPLEMENT int l_setPosition(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- float x = luax_checknumber(L, 2);
- float y = luax_checknumber(L, 3);
- ps->setPosition(x, y);
- return 0;
- }
-
- LUA_IMPLEMENT int l_setScale(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- float sx = luax_checknumber(L, 2);
- float sy = luax_checknumber(L, 3);
- //ps->setScale(sx, sy);
- return 0;
- }
-
- LUA_IMPLEMENT int l_pause(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- bool b = luax_checkbool(L, 2);
- //ps->pause(b);
- return 0;
- }
-
- LUA_IMPLEMENT int l_clear(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- //ps->clear();
- return 0;
- }
-
- LUA_IMPLEMENT int l_setEmitRate(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- if (luax_gettop(L) >= 3)
- {
- float floor = luax_checknumber(L, 2);
- float ceil = luax_checknumber(L, 3);
- ps->setEmitRate(floor, ceil);
- }
- else if (luax_gettop(L) >= 2)
- {
- float n = luax_checknumber(L, 2);
- ps->setEmitRate(n);
- }
- return 0;
- }
-
- LUA_IMPLEMENT int l_setEmitForce(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- if (luax_gettop(L) >= 3)
- {
- float floor = luax_checknumber(L, 2);
- float ceil = luax_checknumber(L, 3);
- ps->setEmitForce(floor, ceil);
- }
- else if (luax_gettop(L) >= 2)
- {
- float n = luax_checknumber(L, 2);
- ps->setEmitForce(n);
- }
- return 0;
- }
-
- LUA_IMPLEMENT int l_setEmitDirection(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- if (luax_gettop(L) >= 3)
- {
- float floor = luax_checknumber(L, 2);
- float ceil = luax_checknumber(L, 3);
- ps->setEmitDirection(floor, ceil);
- }
- else if (luax_gettop(L) >= 2)
- {
- float n = luax_checknumber(L, 2);
- ps->setEmitDirection(n);
- }
- return 0;
- }
-
- LUA_IMPLEMENT int l_setEmitPosition(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- if (luax_gettop(L) >= 3)
- {
- if (!luax_istable(L, 2))
- {
- luax_typerror(L, 2, "table");
- return 1;
- }
- if (!luax_istable(L, 3))
- {
- luax_typerror(L, 3, "table");
- return 1;
- }
- Vector2<float> floor, ceil;
- floor.x = luax_rawgetnumber(L, 2, 1);
- floor.y = luax_rawgetnumber(L, 2, 2);
- ceil.x = luax_rawgetnumber(L, 3, 1);
- ceil.y = luax_rawgetnumber(L, 3, 2);
- ps->setEmitPosition(floor, ceil);
- }
- else if (luax_gettop(L) >= 2)
- {
- if (!luax_istable(L, 2))
- {
- luax_typerror(L, 2, "table");
- return 1;
- }
- Vector2<float> pos;
- pos.x = luax_rawgetnumber(L, 2, 1);
- pos.y = luax_rawgetnumber(L, 2, 2);
- ps->setEmitPosition(pos);
- }
- return 0;
- }
-
- LUA_IMPLEMENT int l_setParticleLife(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- if (luax_gettop(L) >= 3)
- {
- float floor = luax_checknumber(L, 2);
- float ceil = luax_checknumber(L, 3);
- ps->setParticleLife(floor, ceil);
- }
- else if (luax_gettop(L) >= 2)
- {
- float n = luax_checknumber(L, 2);
- ps->setParticleLife(n);
- }
- return 0;
- }
-
- LUA_IMPLEMENT int l_setParticleLinearAccelaration(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- if (!luax_istable(L, 2))
- {
- luax_typerror(L, 2, "table");
- return 1;
- }
- Vector2<float> ac;
- ac.x = luax_rawgetnumber(L, 2, 1);
- ac.y = luax_rawgetnumber(L, 2, 2);
- ps->setParticleLinearAccelaration(ac);
- return 0;
- }
-
- LUA_IMPLEMENT int l_setParticleRadialAccelaration(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- float ra = luax_checknumber(L, 2);
- ps->setParticleRadialAccelaration(ra);
- return 0;
- }
-
- LUA_IMPLEMENT int l_setParticleAngularSpeed(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- if (luax_gettop(L) >= 3)
- {
- float floor = luax_checknumber(L, 2);
- float ceil = luax_checknumber(L, 3);
- ps->setParticleAngularSpeed(floor, ceil);
- }
- else if (luax_gettop(L) >= 2)
- {
- float n = luax_checknumber(L, 2);
- ps->setParticleAngularSpeed(n);
- }
- return 0;
- }
-
- LUA_IMPLEMENT int l_setParticleSpritesMode(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- int n = luax_checkinteger(L, 2);
- SpriteMode mode = static_cast<SpriteMode>(n);
- ps->setParticleSpritesMode(mode);
- return 0;
- }
-
- LUA_IMPLEMENT int l_addParticleSprite(lua_State* L)
- {
- LuaObject* obj = luax_checkobject(L, 1, Jin_Lua_ParticleSystem);
- ParticleSystem* ps = obj->getObject<ParticleSystem>();
- LuaObject* objSpr = luax_checkobject(L, 2, Jin_Lua_Sprite);
- Sprite* spr = objSpr->getObject<Sprite>();
- ps->addParticleSprite(spr);
- int depn = (*obj).getDependenciesCount();
- (*obj).setDependency((int)ParticleSystemDependency::DEP_SPRITES + depn, objSpr);
- return 0;
- }
-
- LUA_IMPLEMENT int l_addParticleSprites(lua_State* L)
- {
- LuaObject* obj = luax_checkobject(L, 1, Jin_Lua_ParticleSystem);
- ParticleSystem* ps = obj->getObject<ParticleSystem>();
- if (!luax_istable(L, 2))
- {
- luax_typerror(L, 2, "sprites table");
- return 1;
- }
- int n = luax_tableidxlen(L, 2);
- int depn = (*obj).getDependenciesCount();
- for (int i = 1; i <= n; ++i)
- {
- luax_rawgeti(L, 2, i);
- LuaObject* objSpr = luax_checkobject(L, -1, Jin_Lua_Sprite);
- luax_pop(L, 1);
- Sprite* spr = objSpr->getObject<Sprite>();
- ps->addParticleSprite(spr);
- (*obj).setDependency((int)ParticleSystemDependency::DEP_SPRITES + depn + i - 1, objSpr);
- }
- return 0;
- }
-
- // From 0
- LUA_IMPLEMENT int l_removeParticleSprite(lua_State* L)
- {
- LuaObject* obj = luax_checkobject(L, 1, Jin_Lua_ParticleSystem);
- ParticleSystem* ps = obj->getObject<ParticleSystem>();
- int n = luax_checkinteger(L, 2);
- ps->removeParticleSprite(n);
- (*obj).removeDependency((int)ParticleSystemDependency::DEP_SPRITES + n);
- return 0;
- }
-
- LUA_IMPLEMENT int l_enableParticleBlendAdditive(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- bool enable = luax_checkbool(L, 2);
- ps->enableParticleBlendAdditive(enable);
- return 0;
- }
-
- LUA_IMPLEMENT int l_setParticleScale(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- float scale = luax_checknumber(L, 2);
- ps->setParticleScale(scale);
- return 0;
- }
-
- LUA_IMPLEMENT int l_addParticleScalePoint(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- float scale = luax_checknumber(L, 2);
- float t = luax_checknumber(L, 3);
- ps->addParticleScalePoint(scale, t);
- return 0;
- }
-
- LUA_IMPLEMENT int l_removeParticleScalePoint(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- int i = luax_checkinteger(L, 2);
- ps->removeParticleScalePoint(i);
- return 0;
- }
-
- LUA_IMPLEMENT int l_setParticleColor(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- if (!luax_istable(L, 2))
- {
- luax_typerror(L, 2, "color table");
- return 1;
- }
- Color c;
- c.r = luax_rawgetnumber(L, 2, 1);
- c.g = luax_rawgetnumber(L, 2, 2);
- c.b = luax_rawgetnumber(L, 2, 3);
- c.a = luax_rawgetnumber(L, 2, 4);
- ps->setParticleColor(c);
- return 0;
- }
-
- LUA_IMPLEMENT int l_addParticleColorPoint(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- if (!luax_istable(L, 2))
- {
- luax_typerror(L, 2, "color table");
- return 1;
- }
- Color c;
- c.r = luax_rawgetnumber(L, 2, 1);
- c.g = luax_rawgetnumber(L, 2, 2);
- c.b = luax_rawgetnumber(L, 2, 3);
- c.a = luax_rawgetnumber(L, 2, 4);
- float t = luax_checknumber(L, 3);
- ps->addParticleColorPoint(c, t);
- return 0;
- }
-
- LUA_IMPLEMENT int l_removeParticleColorPoint(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- int i = luax_checkinteger(L, 2);
- ps->removeParticleColorPoint(i);
- return 0;
- }
-
- LUA_IMPLEMENT int l_setParticleTransparency(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- float transparency = luax_checknumber(L, 2);
- ps->setParticleTransparency(transparency);
- return 0;
- }
-
- LUA_IMPLEMENT int l_addParticleTransparencyPoint(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- float transparency = luax_checknumber(L, 2);
- float t = luax_checknumber(L, 3);
- ps->addParticleTransparencyPoint(transparency, t);
- return 0;
- }
-
- LUA_IMPLEMENT int l_removeParticleTransparencyPoint(lua_State* L)
- {
- ParticleSystem* ps = checkPS(L);
- int i = luax_checkinteger(L, 2);
- ps->removeParticleTransparencyPoint(i);
- return 0;
- }
-
- LUA_EXPORT void luaopen_ParticleSystem(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { "update", l_update },
- { "render", l_render },
- { "setPosition", l_setPosition },
- { "setScale", l_setScale },
- { "pause", l_pause },
- { "clear", l_clear },
- { "setEmitRate", l_setEmitRate },
- { "setEmitForce", l_setEmitForce },
- { "setEmitDirection", l_setEmitDirection },
- { "setEmitPosition", l_setEmitPosition },
- { "setParticleLife", l_setParticleLife },
- { "setParticleLinearAccelaration", l_setParticleLinearAccelaration },
- { "setParticleRadialAccelaration", l_setParticleRadialAccelaration },
- { "setParticleAngularSpeed", l_setParticleAngularSpeed },
- { "setParticleSpritesMode", l_setParticleSpritesMode },
- { "addParticleSprite", l_addParticleSprite },
- { "addParticleSprites", l_addParticleSprites },
- { "removeParticleSprite", l_removeParticleSprite },
- { "enableParticleBlendAdditive", l_enableParticleBlendAdditive },
- { "setParticleScale", l_setParticleScale },
- { "addParticleScalePoint", l_addParticleScalePoint },
- { "removeParticleScalePoint", l_removeParticleScalePoint },
- { "setParticleColor", l_setParticleColor },
- { "addParticleColorPoint", l_addParticleColorPoint },
- { "removeParticleColorPoint", l_removeParticleColorPoint },
- { "setParticleTransparency", l_setParticleTransparency },
- { "addParticleTransparencyPoint", l_addParticleTransparencyPoint },
- { "removeParticleTransparencyPoint", l_removeParticleTransparencyPoint },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_ParticleSystem, methods);
- }
-
- } // namespace Lua
-} // namespace JinEngine \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_particle_system.h b/src/lua/modules/graphics/je_lua_particle_system.h
deleted file mode 100644
index b75b569..0000000
--- a/src/lua/modules/graphics/je_lua_particle_system.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef __JE_LUA_PARTICLESYSTEM_H__
-#define __JE_LUA_PARTICLESYSTEM_H__
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- enum class ParticleSystemDependency
- {
- DEP_SPRITES = 1,
- };
-
- extern const char* Jin_Lua_ParticleSystem;
-
- void luaopen_ParticleSystem(lua_State* L);
-
- }
-}
-
-#endif \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_shader.cpp b/src/lua/modules/graphics/je_lua_shader.cpp
deleted file mode 100644
index 9505444..0000000
--- a/src/lua/modules/graphics/je_lua_shader.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-#include "common/je_lua_object.h"
-#include "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;
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- const char* Jin_Lua_Shader = "Shader";
-
- static inline Shader* checkShader(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Shader);
- return luaObj->getObject<Shader>();
- }
-
- /**
- * jsl:sendNumber("variable", 0.1)
- */
- LUA_IMPLEMENT int l_sendNumber(lua_State* L)
- {
- Shader* shader = checkShader(L);
- const char* variable = luax_checkstring(L, 2);
- float number = luax_checknumber(L, 3);
- shader->sendFloat(variable, number);
- return 0;
- }
-
- LUA_IMPLEMENT int l_sendTexture(lua_State* L)
- {
- Shader* shader = checkShader(L);
- const char* variable = luax_checkstring(L, 2);
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 3, Jin_Lua_Texture);
- shader->sendTexture(variable, luaObj->getObject<Texture>());
- return 0;
- }
-
- LUA_IMPLEMENT int l_sendCanvas(lua_State* L)
- {
- Shader* shader = checkShader(L);
- const char* variable = luax_checkstring(L, 2);
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 3, Jin_Lua_Canvas);
- shader->sendCanvas(variable, luaObj->getObject<Canvas>());
- return 0;
- }
-
- LUA_IMPLEMENT int l_sendVec2(lua_State* L)
- {
- Shader* shader = checkShader(L);
- const char* variable = luax_checkstring(L, 2);
- if (!luax_istable(L, 3))
- {
- luax_typerror(L, 3, "table");
- return 1;
- }
- float x = luax_rawgetnumber(L, 3, 1);
- float y = luax_rawgetnumber(L, 3, 2);
- shader->sendVec2(variable, x, y);
- return 0;
- }
-
- LUA_IMPLEMENT int l_sendVec3(lua_State* L)
- {
- Shader* shader = checkShader(L);
- const char* variable = luax_checkstring(L, 2);
- if (!luax_istable(L, 3))
- {
- luax_typerror(L, 3, "table");
- return 1;
- }
- float x = luax_rawgetnumber(L, 3, 1);
- float y = luax_rawgetnumber(L, 3, 2);
- float z = luax_rawgetnumber(L, 3, 3);
- shader->sendVec3(variable, x, y, z);
- return 0;
- }
-
- LUA_IMPLEMENT int l_sendVec4(lua_State* L)
- {
- Shader* shader = checkShader(L);
- const char* variable = luax_checkstring(L, 2);
- if (!luax_istable(L, 3))
- {
- luax_typerror(L, 3, "table");
- return 1;
- }
- float x = luax_rawgetnumber(L, 3, 1);
- float y = luax_rawgetnumber(L, 3, 2);
- float z = luax_rawgetnumber(L, 3, 3);
- float w = luax_rawgetnumber(L, 3, 4);
- shader->sendVec4(variable, x, y, z, w);
- return 0;
- }
-
- LUA_IMPLEMENT int l_sendColor(lua_State* L)
- {
- return l_sendVec4(L);
- }
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Shader);
- luaObj->release();
- return 0;
- }
-
- LUA_EXPORT void luaopen_Shader(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { "sendNumber", l_sendNumber },
- { "sendTexture", l_sendTexture },
- { "sendCanvas", l_sendCanvas },
- { "sendVec2", l_sendVec2 },
- { "sendVec3", l_sendVec3 },
- { "sendVec4", l_sendVec4 },
- { "sendColor", l_sendColor },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_Shader, methods);
- }
-
- } // namespace Lua
-} // namespace JinEngine \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_shader.h b/src/lua/modules/graphics/je_lua_shader.h
deleted file mode 100644
index 5a84372..0000000
--- a/src/lua/modules/graphics/je_lua_shader.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __JE_LUA_SHDER_H__
-#define __JE_LUA_SHDER_H__
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- extern const char* Jin_Lua_Shader;
-
- void luaopen_Shader(lua_State* L);
-
- }
-}
-
-#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
deleted file mode 100644
index f1bc6aa..0000000
--- a/src/lua/modules/graphics/je_lua_sprite.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-#include "common/je_lua_object.h"
-#include "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::Math;
-using namespace JinEngine::Graphics;
-using namespace JinEngine::Graphics::Shaders;
-
-namespace JinEngine
-{
- namespace Lua
- {
- const char* Jin_Lua_Sprite = "Sprite";
-
- LUA_IMPLEMENT inline Sprite* checkSprite(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Sprite);
- return luaObj->getObject<Sprite>();
- }
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Sprite);
- p->release();
- return 0;
- }
-
- LUA_IMPLEMENT int l_render(lua_State* L)
- {
- Sprite* sprite = checkSprite(L);
- float x = luax_checknumber(L, 2);
- float y = luax_checknumber(L, 3);
- float sx = luax_checknumber(L, 4);
- float sy = luax_checknumber(L, 5);
- float r = luax_checknumber(L, 6);
- sprite->render(x, y, sx, sy, r);
- return 0;
- }
-
- LUA_IMPLEMENT int l_getSize(lua_State* L)
- {
- Sprite* sprite = checkSprite(L);
- Vector2<int> size = sprite->getSize();
- luax_pushinteger(L, size.x);
- luax_pushinteger(L, size.y);
- return 1;
- }
-
- LUA_EXPORT void luaopen_Sprite(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { "render", l_render },
- { "getSize", l_getSize },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_Sprite, methods);
- }
-
- } // namespace Lua
-} // namespace JinEngine \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_sprite.h b/src/lua/modules/graphics/je_lua_sprite.h
deleted file mode 100644
index 02c44bf..0000000
--- a/src/lua/modules/graphics/je_lua_sprite.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef __JE_LUA_SPRITE_H__
-#define __JE_LUA_SPRITE_H__
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- // Sprite dependency slots.
- enum class SpriteDependency
- {
- DEP_GRAPHIC = 1,
- DEP_SHADER = 2,
- DEP_SPRITESHEET = 3
- };
-
- extern const char* Jin_Lua_Sprite;
-
- void luaopen_Sprite(lua_State* L);
-
- }
-}
-
-#endif \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_spritesheet.cpp b/src/lua/modules/graphics/je_lua_spritesheet.cpp
deleted file mode 100644
index a1a2c59..0000000
--- a/src/lua/modules/graphics/je_lua_spritesheet.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-#include <vector>
-
-#include "common/je_lua_object.h"
-#include "common/je_lua_common.h"
-#include "libjin/jin.h"
-#include "je_lua_sprite.h"
-#include "je_lua_spritesheet.h"
-
-using namespace std;
-using namespace JinEngine::Math;
-using namespace JinEngine::Graphics;
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- const char* Jin_Lua_SpriteSheet = "SpriteSheet";
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* luaSSheet = (LuaObject*)luax_checktype(L, 1, Jin_Lua_SpriteSheet);
- luaSSheet->release();
- return 0;
- }
-
- LUA_IMPLEMENT int l_newSprite(lua_State* L)
- {
- LuaObject* luaSSheet = (LuaObject*)luax_checktype(L, 1, Jin_Lua_SpriteSheet);
- SpriteSheet* sheet = luaSSheet->getObject<SpriteSheet>();
- Quad quad;
- quad.x = luax_rawgetnumberthenpop(L, 2, 1);
- quad.y = luax_rawgetnumberthenpop(L, 2, 2);
- quad.w = luax_rawgetnumberthenpop(L, 2, 3);
- quad.h = luax_rawgetnumberthenpop(L, 2, 4);
- Sprite* spr = nullptr;
- if (luax_gettop(L) >= 4)
- {
- float ox = luax_checknumber(L, 3);
- float oy = luax_checknumber(L, 4);
- spr = sheet->createSprite(quad, ox, oy);
- }
- else if (luax_gettop(L) == 3)
- {
- int o = luax_checkinteger(L, 3);
- Origin origin;
- origin = static_cast<Origin>(o);
- spr = sheet->createSprite(quad, origin);
- }
- Shared* shrSprite = new Shared(spr);
- LuaObject* luaSprite = luax_newinstance(L, Jin_Lua_Sprite, shrSprite);
- luaSprite->setDependency((int)SpriteDependency::DEP_SPRITESHEET, luaSSheet);
- return 1;
- }
-
- // {} = newSprites
- LUA_IMPLEMENT int l_newSprites(lua_State* L)
- {
- LuaObject* luaSS = (LuaObject*)luax_checktype(L, 1, Jin_Lua_SpriteSheet);
- SpriteSheet* ss = luaSS->getObject<SpriteSheet>();
- int count = luax_checkinteger(L, 2);
- int r = luax_checkinteger(L, 3);
- int c = luax_checkinteger(L, 4);
- int w = luax_checkinteger(L, 5);
- int h = luax_checkinteger(L, 6);
- vector<Sprite*> sprs;
- int argc = luax_gettop(L);
- if (argc == 6)
- {
- sprs = ss->createSprites(count, r, c, w, h, Origin::TOPLEFT);
- }
- else if (argc >= 8)
- {
- int ox = luax_checkinteger(L, 7);
- int oy = luax_checkinteger(L, 8);
- int offx = luax_optinteger(L, 9, 0);
- int offy = luax_optinteger(L, 10, 0);
- sprs = ss->createSprites(count, r, c, w, h, ox, oy, offx, offy);
- }
- else if (argc >= 7)
- {
- int o = luax_checkinteger(L, 7);
- Origin origin = static_cast<Origin>(o);
- int offx = luax_optinteger(L, 8, 0);
- int offy = luax_optinteger(L, 9, 0);
- sprs = ss->createSprites(count, r, c, w, h, origin, offx, offy);
- }
- else
- {
- luax_error(L, "No matched override function.");
- return 1;
- }
- luax_newtable(L);
- LuaObject* graphic = luaSS->getDependency((int)SpriteSheetDependency::DEP_GRAPHIC);
- for (int i = 0; i < sprs.size(); ++i)
- {
- Sprite* spr = sprs[i];
- Shared* shrSpr = new Shared(spr);
- LuaObject* luaSpr = (LuaObject*)luax_newinstance(L, Jin_Lua_Sprite, shrSpr);
- luaSpr->setDependency((int)SpriteDependency::DEP_GRAPHIC, graphic);
- luax_rawseti(L, -2, i + 1);
- }
- return 1;
- }
-
- LUA_EXPORT void luaopen_SpriteSheet(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { "newSprite", l_newSprite },
- { "newSprites", l_newSprites },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_SpriteSheet, methods);
- }
-
- }
-} \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_spritesheet.h b/src/lua/modules/graphics/je_lua_spritesheet.h
deleted file mode 100644
index bcae60b..0000000
--- a/src/lua/modules/graphics/je_lua_spritesheet.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef __JE_LUA_SPRITE_SHEET_H__
-#define __JE_LUA_SPRITE_SHEET_H__
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- enum class SpriteSheetDependency
- {
- DEP_GRAPHIC = 1
- };
-
- extern const char* Jin_Lua_SpriteSheet;
-
- void luaopen_SpriteSheet(lua_State* L);
-
- }
-}
-
-#endif \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_text.cpp b/src/lua/modules/graphics/je_lua_text.cpp
deleted file mode 100644
index 0afbceb..0000000
--- a/src/lua/modules/graphics/je_lua_text.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "common/je_lua_object.h"
-#include "common/je_lua_common.h"
-#include "libjin/jin.h"
-
-using namespace JinEngine::Graphics;
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- const char* Jin_Lua_Text = "Text";
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Text);
- p->release();
- return 0;
- }
-
- LUA_EXPORT void luaopen_Text(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_Text, methods);
- }
-
- } // namespace Lua
-} // namespace JinEngine \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_text.h b/src/lua/modules/graphics/je_lua_text.h
deleted file mode 100644
index dfcc9cc..0000000
--- a/src/lua/modules/graphics/je_lua_text.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __JE_LUA_TEXT_H__
-#define __JE_LUA_TEXT_H__
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- extern const char* Jin_Lua_Text;
-
- void luaopen_Text(lua_State* L);
-
- }
-}
-
-#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
deleted file mode 100644
index b03b999..0000000
--- a/src/lua/modules/graphics/je_lua_texture.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#include "common/je_lua_object.h"
-#include "common/je_lua_common.h"
-#include "libjin/jin.h"
-#include "je_lua_texture.h"
-
-using namespace JinEngine::Graphics;
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- const char* Jin_Lua_Texture = "Texture";
-
- LUA_IMPLEMENT inline Texture* checkTexture(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Texture);
- return luaObj->getObject<Texture>();
- }
-
- LUA_IMPLEMENT int l_getWidth(lua_State* L)
- {
- Texture* shared = checkTexture(L);
- luax_pushnumber(L, shared->getWidth());
- return 1;
- }
-
- LUA_IMPLEMENT int l_getHeight(lua_State *L)
- {
- Texture* shared = checkTexture(L);
- luax_pushnumber(L, shared->getHeight());
- return 1;
- }
-
- LUA_IMPLEMENT int l_getSize(lua_State* L)
- {
- Texture* shared = checkTexture(L);
- luax_pushnumber(L, shared->getWidth());
- luax_pushnumber(L, shared->getHeight());
- return 2;
- }
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Texture);
- luaObj->release();
- return 0;
- }
-
- LUA_EXPORT void luaopen_Texture(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { "getWidth", l_getWidth },
- { "getHeight", l_getHeight },
- { "getSize", l_getSize },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_Texture, methods);
- }
-
- }// namespace Lua
-}// namespace JinEngine \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_texture.h b/src/lua/modules/graphics/je_lua_texture.h
deleted file mode 100644
index c8bb71c..0000000
--- a/src/lua/modules/graphics/je_lua_texture.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __JE_LUA_TEXTURE_H__
-#define __JE_LUA_TEXTURE_H__
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- extern const char* Jin_Lua_Texture;
-
- void luaopen_Texture(lua_State* L);
-
- }
-}
-
-#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
deleted file mode 100644
index 6cbf7ca..0000000
--- a/src/lua/modules/graphics/je_lua_texture_font.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#include "common/je_lua_object.h"
-#include "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;
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- const char* Jin_Lua_TextureFont = "TextureFont";
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_TextureFont);
- luaObj->release();
- return 0;
- }
-
- /* typeset(Text | string, lineheight, spacing) */
- LUA_IMPLEMENT int l_typeset(lua_State* L)
- {
- LuaObject* luaTexFont = (LuaObject*)luax_checktype(L, 1, Jin_Lua_TextureFont);
- TextureFont* tf = luaTexFont->getObject<TextureFont>();
- int lineheight = luax_checkinteger(L, 3);
- int spacing = luax_optnumber(L, 4, 0);
- Page* page = nullptr;
- if (luax_isstring(L, 2))
- {
- unsigned length;
- const char* str = luax_checklstring(L, 2, &length);
- Text text(Encode::UTF8, str, length);
- page = tf->typeset(text, lineheight, spacing);
- }
- else if (luax_istype(L, 2, Jin_Lua_Text))
- {
- LuaObject* p2 = (LuaObject*)luax_checktype(L, 2, Jin_Lua_Text);
- Text* text = p2->getObject<Text>();
- page = tf->typeset(*text, lineheight, spacing);
- }
- Shared* shrPage = new Shared(page);
- LuaObject* luaPage = luax_newinstance(L, Jin_Lua_Page, shrPage);
- luaPage->setDependency((int)PageDependency::DEP_TEXTURE_FONT, luaTexFont);
- return 1;
- }
-
- LUA_EXPORT void luaopen_TextureFont(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { "typeset", l_typeset },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_TextureFont, methods);
- }
-
- } // namespace Lua
-} // namespace JinEngine \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_texture_font.h b/src/lua/modules/graphics/je_lua_texture_font.h
deleted file mode 100644
index d1fffe5..0000000
--- a/src/lua/modules/graphics/je_lua_texture_font.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __JE_LUA_TEXTURE_FONT_H__
-#define __JE_LUA_TEXTURE_FONT_H__
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- extern const char* Jin_Lua_TextureFont;
-
- void luaopen_TextureFont(lua_State* L);
-
- }
-}
-
-#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
deleted file mode 100644
index ead46de..0000000
--- a/src/lua/modules/graphics/je_lua_ttf.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#include "common/je_lua_object.h"
-#include "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;
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- const char* Jin_Lua_TTF = "TTF";
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_TTF);
- luaObj->release();
- return 0;
- }
-
- /* typeset(Text | string, lineheight, spacing) */
- LUA_IMPLEMENT int l_typeset(lua_State* L)
- {
- LuaObject* luaTTF = (LuaObject*)luax_checktype(L, 1, Jin_Lua_TTF);
- TTF* ttf = luaTTF->getObject<TTF>();
- int lineheight = luax_optnumber(L, 3, ttf->getFontSize());
- int spacing = luax_optnumber(L, 4, 0);
- Page* page = nullptr;
- if (luax_isstring(L, 2))
- {
- unsigned length;
- const char* str = luax_checklstring(L, 2, &length);
- Text text(Encode::UTF8, str, length);
- page = ttf->typeset(text, lineheight, spacing);
- }
- else if (luax_istype(L, 2, Jin_Lua_Text))
- {
- LuaObject* luaText = (LuaObject*)luax_checktype(L, 2, Jin_Lua_Text);
- Text* text = luaText->getObject<Text>();
- page = ttf->typeset(*text, lineheight, spacing);
- }
- Shared* refPage = new Shared(page);
- LuaObject* luaPage = luax_newinstance(L, Jin_Lua_Page, refPage);
- luaPage->setDependency((int)PageDependency::DEP_TTF, luaTTF);
- return 1;
- }
-
- LUA_EXPORT void luaopen_TTF(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { "typeset", l_typeset },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_TTF, methods);
- }
-
- } // namespace Lua
-} // namespace JinEngine \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_ttf.h b/src/lua/modules/graphics/je_lua_ttf.h
deleted file mode 100644
index bfe503d..0000000
--- a/src/lua/modules/graphics/je_lua_ttf.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __JE_LUA_TTF_H__
-#define __JE_LUA_TTF_H__
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- extern const char* Jin_Lua_TTF;
-
- void luaopen_TTF(lua_State* L);
-
- }
-}
-
-#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
deleted file mode 100644
index e251ac8..0000000
--- a/src/lua/modules/graphics/je_lua_ttf_data.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "common/je_lua_object.h"
-#include "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;
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- const char* Jin_Lua_TTFData = "TTFData";
-
- LUA_IMPLEMENT int l_newTTF(lua_State* L)
- {
- LuaObject* luaTTFData = (LuaObject*)luax_checktype(L, 1, Jin_Lua_TTFData);
- int fontsize = luax_checkinteger(L, 2);
- TTFData* fontData = luaTTFData->getObject<TTFData>();
- TTF* font = fontData->createTTF(fontsize);
- Shared* shrTTF = new Shared(font);
- LuaObject* luaTTF = luax_newinstance(L, Jin_Lua_TTF, shrTTF);
- luaTTF->setDependency((int)TTFDependency::DEP_TTFDATA, luaTTFData);
- return 1;
- }
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_TTFData);
- p->release();
- return 0;
- }
-
- LUA_EXPORT void luaopen_TTFData(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { "newTTF", l_newTTF },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_TTFData, methods);
-
- }
-
- } // namespace Lua
-} // namespace JinEngine \ No newline at end of file
diff --git a/src/lua/modules/graphics/je_lua_ttf_data.h b/src/lua/modules/graphics/je_lua_ttf_data.h
deleted file mode 100644
index 1fd832d..0000000
--- a/src/lua/modules/graphics/je_lua_ttf_data.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#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;
-
- void luaopen_TTFData(lua_State* L);
-
- }
-}
-
-#endif \ No newline at end of file