diff options
Diffstat (limited to 'src/lua/modules/graphics/ttf.cpp')
-rw-r--r-- | src/lua/modules/graphics/ttf.cpp | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/src/lua/modules/graphics/ttf.cpp b/src/lua/modules/graphics/ttf.cpp deleted file mode 100644 index 414c7eb..0000000 --- a/src/lua/modules/graphics/ttf.cpp +++ /dev/null @@ -1,73 +0,0 @@ -#include "lua/modules/luax.h" -#include "lua/modules/types.h" -#include "lua/common/common.h" -#include "libjin/jin.h" - -namespace JinEngine -{ - namespace Lua - { - - using namespace JinEngine::Graphics; - - static int l_gc(lua_State* L) - { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TTF); - { - /* release ttf data */ - Ref<TTF>* ttf = &proxy->getRef<TTF>(); - RefBase* data = (RefBase*)ttf->getUserdata(); - data->release(); - } - proxy->release(); - return 0; - } - - /* typeset(Text | string, lineheight, spacing) */ - static int l_typeset(lua_State* L) - { - Proxy* p = (Proxy*)luax_checktype(L, 1, JIN_GRAPHICS_TTF); - TTF* ttf = p->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_GRAPHICS_TEXT)) - { - Proxy* p2 = (Proxy*)luax_checktype(L, 2, JIN_GRAPHICS_TEXT); - Text* text = p2->getObject<Text>(); - page = ttf->typeset(*text, lineheight, spacing); - } - Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_GRAPHICS_PAGE, sizeof(Proxy)); - Ref<Page>* refPage = new Ref<Page>(page, JIN_GRAPHICS_PAGE); - { - /* retain related ttf */ - Ref<TTF>& refTTF = p->getRef<TTF>(); - refTTF.retain(); - refPage->setUserdata(&refTTF); - } - proxy->bind(refPage); - return 1; - } - - static const luaL_Reg f[] = { - { "__gc", l_gc }, - { "typeset", l_typeset }, - { 0, 0 } - }; - - int luaopen_TTF(lua_State* L) - { - luax_newtype(L, JIN_GRAPHICS_TTF, f); - - return 0; - } - - } // namespace Lua -} // namespace JinEngine
\ No newline at end of file |