LuaEnvironment.h 965 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #pragma once
  2. #include "lua.hpp"
  3. #include "Types.h"
  4. namespace crown
  5. {
  6. struct ModuleEntry
  7. {
  8. const char* module;
  9. luaL_Reg entry[2];
  10. };
  11. class LuaEnvironment
  12. {
  13. public:
  14. /// Constructor
  15. LuaEnvironment(lua_State* L);
  16. /// Load a function to proper module
  17. void load_module_function(const char* module, const char* name, const lua_CFunction func);
  18. /// Create library based on each module which will be opened by luaopen_*
  19. void create_module_library();
  20. private:
  21. lua_State* m_state;
  22. };
  23. extern "C"
  24. {
  25. int luaopen_crownlua(lua_State* L);
  26. }
  27. void load_vec2(LuaEnvironment& env);
  28. void load_vec3(LuaEnvironment& env);
  29. void load_mat4(LuaEnvironment& env);
  30. void load_quat(LuaEnvironment& env);
  31. void load_math(LuaEnvironment& env);
  32. void load_mouse(LuaEnvironment& env);
  33. void load_keyboard(LuaEnvironment& env);
  34. void load_touch(LuaEnvironment& env);
  35. void load_accelerometer(LuaEnvironment& env);
  36. void load_camera(LuaEnvironment& env);
  37. } // namespace crown