aboutsummaryrefslogtreecommitdiff
path: root/src/lua/modules/graphics/je_lua_graphics.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-11-15 08:32:38 +0800
committerchai <chaifix@163.com>2018-11-15 08:32:38 +0800
commita6f2d5fff89b7322009c46a9272668ca4c32ce64 (patch)
treeff81127c3be8bde426e57db544d69b9616ddc25b /src/lua/modules/graphics/je_lua_graphics.cpp
parent611d12bdd245dd43b7434661d3e24f2b435378cb (diff)
*修改代码结构
Diffstat (limited to 'src/lua/modules/graphics/je_lua_graphics.cpp')
-rw-r--r--src/lua/modules/graphics/je_lua_graphics.cpp109
1 files changed, 60 insertions, 49 deletions
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;
}