diff options
author | chai <chaifix@163.com> | 2018-05-18 08:27:45 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-05-18 08:27:45 +0800 |
commit | 91a592da979827b1735901388dba8712e6e3ecf3 (patch) | |
tree | 5b34330fc7ab0027557f4a4dfb1417fbe9acfb44 /src/script/graphics | |
parent | d66b07724d71321545e80a8e12736be0e9a5d24a (diff) |
修改JSL
Diffstat (limited to 'src/script/graphics')
-rw-r--r-- | src/script/graphics/luaopen_JSL.cpp | 65 |
1 files changed, 57 insertions, 8 deletions
diff --git a/src/script/graphics/luaopen_JSL.cpp b/src/script/graphics/luaopen_JSL.cpp index 218a973..b5ba125 100644 --- a/src/script/graphics/luaopen_JSL.cpp +++ b/src/script/graphics/luaopen_JSL.cpp @@ -17,17 +17,26 @@ namespace lua static enum VARIABLE_TYPE { INVALID = 0, - NUMBER , - IMAGE , - TEXEL + + 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 == "Texel") return TEXEL; + 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; } @@ -58,8 +67,48 @@ namespace lua jsl->sendImage(variable, img); break; } - case TEXEL: - break; + case CANVAS: + { + Canvas* canvas = (Canvas*)luax_checktype(L, 4, TYPE_IMAGE); + 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; |