diff options
author | chai <chaifix@163.com> | 2018-05-21 16:02:00 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-05-21 16:02:00 +0800 |
commit | fa234f9663b992cf50bcf865a1cde6845b42193c (patch) | |
tree | 34ecd41b60ef48c960a79a4077e5e0c8536102fd /src/script/graphics/luaopen_JSL.cpp | |
parent | 51ba9cb2a6b0b9395a2912eadeb954c95e4c1d3c (diff) |
修改audio模块
Diffstat (limited to 'src/script/graphics/luaopen_JSL.cpp')
-rw-r--r-- | src/script/graphics/luaopen_JSL.cpp | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/src/script/graphics/luaopen_JSL.cpp b/src/script/graphics/luaopen_JSL.cpp deleted file mode 100644 index d5db363..0000000 --- a/src/script/graphics/luaopen_JSL.cpp +++ /dev/null @@ -1,146 +0,0 @@ -#include "3rdparty/luax/luax.h" -#include "libjin/jin.h" -#include "../luaopen_types.h" - -namespace jin -{ -namespace lua -{ - - using namespace render; - - static inline JSLProgram* checkJSLProgram(lua_State* L) - { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, TYPE_JSL); - if(proxy != nullptr) - return (JSLProgram*)proxy->object; - return nullptr; - } - - static enum VARIABLE_TYPE - { - INVALID = 0, - - NUMBER, - IMAGE, - CANVAS, - VEC2, - VEC3, - VEC4, - COLOR, - }; - - static VARIABLE_TYPE strtotype(const char* str) - { - std::string s = std::string(str); - if (s == "number") return NUMBER; - else if (s == "Image") return IMAGE; - else if (s == "Canvas") return CANVAS; - else if (s == "vec2") return VEC2; - else if (s == "vec3") return VEC3; - else if (s == "vec4") return VEC4; - else if (s == "Color") return COLOR; - else return INVALID; - } - - /** - * Use send function send variables to JSL program. - */ - static int l_send(lua_State* L) - { - JSLProgram* jsl = checkJSLProgram(L); - // number Image Texel - const char* typestr = luax_checkstring(L, 2); - // variable name - const char* variable = luax_checkstring(L, 3); - if (typestr != nullptr) - { - int type = strtotype(typestr); - switch (type) - { - case NUMBER: - { - float number = luax_checknumber(L, 4); - jsl->sendFloat(variable, number); - break; - } - case IMAGE: - { - Proxy* proxy = (Proxy*)luax_checktype(L, 4, TYPE_IMAGE); - Image* img = (Image*)proxy->object; - jsl->sendImage(variable, img); - break; - } - case CANVAS: - { - Proxy* proxy = (Proxy*)luax_checktype(L, 4, TYPE_IMAGE); - Canvas* canvas = (Canvas*)proxy->object; - jsl->sendCanvas(variable, canvas); - break; - } - case VEC2: - { - float x = luax_checknumber(L, 4); - float y = luax_checknumber(L, 5); - jsl->sendVec2(variable, x, y); - break; - } - case VEC3: - { - float x = luax_checknumber(L, 4); - float y = luax_checknumber(L, 5); - float z = luax_checknumber(L, 6); - jsl->sendVec3(variable, x, y, z); - break; - } - case VEC4: - { - float x = luax_checknumber(L, 4); - float y = luax_checknumber(L, 5); - float z = luax_checknumber(L, 6); - float w = luax_checknumber(L, 7); - jsl->sendVec4(variable, x, y, z, w); - break; - } - case COLOR: - { - color col; - col.rgba.r = luax_checkinteger(L, 4); - col.rgba.g = luax_checkinteger(L, 5); - col.rgba.b = luax_checkinteger(L, 6); - col.rgba.a = luax_checkinteger(L, 7); - jsl->sendColor(variable, &col); - break; - } - default: - return 0; - } - } - return 1; - } - - static int l_gc(lua_State* L) - { - Proxy* proxy = (Proxy*)luax_checktype(L, 1, TYPE_JSL); - JSLProgram* jsl = (JSLProgram*)proxy->object; - delete jsl; - return 0; - } - - static const luaL_Reg f[] = { - {"__gc", l_gc }, - {"send", l_send}, - {0, 0} - }; - - /** - * JSL program - */ - int luaopen_JSL(lua_State* L) - { - luax_newtype(L, TYPE_JSL, f); - return 0; - } - -} -}
\ No newline at end of file |