| #ifdef WITH_RIVE_SCRIPTING | |
| #include "rive/lua/rive_lua_libs.hpp" | |
| #include "rive/span.hpp" | |
| using namespace rive; | |
| static int luaB_print(lua_State* L) | |
| { | |
| int n = lua_gettop(L); // number of arguments | |
| if (n == 0) | |
| { | |
| return 0; | |
| } | |
| ScriptingContext* context = | |
| static_cast<ScriptingContext*>(lua_getthreaddata(L)); | |
| context->printBeginLine(L); | |
| for (int i = 1; i <= n; i++) | |
| { | |
| size_t l; | |
| const char* s = | |
| luaL_tolstring(L, | |
| i, | |
| &l); // convert to string using __tostring et al | |
| context->print(Span<const char>(s, l)); | |
| lua_pop(L, 1); // pop result | |
| } | |
| context->printEndLine(); | |
| return 0; | |
| } | |
| static const luaL_Reg base_funcs[] = { | |
| {"print", luaB_print}, | |
| {NULL, NULL}, | |
| }; | |
| int luaopen_rive_base(lua_State* L) | |
| { | |
| // open lib into global table | |
| luaL_register(L, "_G", base_funcs); | |
| return 1; | |
| } | |
| #endif |