ScriptManager.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // Copyright (C) 2009-2017, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #include <anki/script/ScriptManager.h>
  6. #include <anki/util/Logger.h>
  7. namespace anki
  8. {
  9. ScriptManager::ScriptManager()
  10. {
  11. }
  12. ScriptManager::~ScriptManager()
  13. {
  14. ANKI_SCRIPT_LOGI("Destroying scripting engine...");
  15. }
  16. Error ScriptManager::init(AllocAlignedCallback allocCb, void* allocCbData, SceneGraph* scene, MainRenderer* renderer)
  17. {
  18. ANKI_SCRIPT_LOGI("Initializing scripting engine...");
  19. m_scene = scene;
  20. m_r = renderer;
  21. m_alloc = ChainAllocator<U8>(allocCb, allocCbData, 1024, 1.0, 0);
  22. ANKI_CHECK(m_lua.create(m_alloc, this));
  23. // Wrap stuff
  24. lua_State* l = m_lua.getLuaState();
  25. #define ANKI_SCRIPT_CALL_WRAP(x_) \
  26. extern void wrapModule##x_(lua_State*); \
  27. wrapModule##x_(l);
  28. ANKI_SCRIPT_CALL_WRAP(Math);
  29. ANKI_SCRIPT_CALL_WRAP(Renderer);
  30. ANKI_SCRIPT_CALL_WRAP(Scene);
  31. ANKI_SCRIPT_CALL_WRAP(Event);
  32. #undef ANKI_SCRIPT_CALL_WRAP
  33. return ErrorCode::NONE;
  34. }
  35. } // end namespace anki