From 3d1b67cc679fce5c530a8673fb6ed79aab9df5ef Mon Sep 17 00:00:00 2001 From: Turanszki Janos Date: Sun, 5 Jul 2020 19:39:40 +0100 Subject: [PATCH] updated lua interface --- Editor/Editor.cpp | 2 +- Tests/Tests.cpp | 4 +- WickedEngine/LoadingScreen_BindLua.cpp | 10 +- WickedEngine/MainComponent.cpp | 12 +- WickedEngine/MainComponent_BindLua.cpp | 4 +- WickedEngine/Matrix_BindLua.cpp | 4 +- WickedEngine/RenderPath2D_BindLua.cpp | 2 +- WickedEngine/RenderPath3D_BindLua.cpp | 12 +- .../RenderPath3D_Deferred_BindLua.cpp | 2 +- WickedEngine/RenderPath3D_Forward_BindLua.cpp | 2 +- .../RenderPath3D_TiledDeferred_BindLua.cpp | 2 +- .../RenderPath3D_TiledForward_BindLua.cpp | 2 +- WickedEngine/RenderPath_BindLua.cpp | 2 +- WickedEngine/SpriteAnim_BindLua.cpp | 6 +- WickedEngine/Texture_BindLua.cpp | 2 +- WickedEngine/Vector_BindLua.cpp | 4 +- WickedEngine/wiAudio_BindLua.cpp | 78 +- WickedEngine/wiBackLog.cpp | 2 +- WickedEngine/wiBackLog_BindLua.cpp | 10 +- WickedEngine/wiImageParams_BindLua.cpp | 46 +- WickedEngine/wiInitializer.cpp | 1 + WickedEngine/wiInput_BindLua.cpp | 120 +-- WickedEngine/wiIntersect_BindLua.cpp | 2 +- WickedEngine/wiLua.cpp | 749 +++++++++--------- WickedEngine/wiLua.h | 83 +- WickedEngine/wiNetwork_BindLua.cpp | 4 +- WickedEngine/wiRenderer_BindLua.cpp | 64 +- WickedEngine/wiScene_BindLua.cpp | 38 +- WickedEngine/wiSpriteFont_BindLua.cpp | 12 +- WickedEngine/wiSprite_BindLua.cpp | 2 +- WickedEngine/wiVersion.cpp | 2 +- 31 files changed, 642 insertions(+), 643 deletions(-) diff --git a/Editor/Editor.cpp b/Editor/Editor.cpp index 9e4c6e581..9fe811b84 100644 --- a/Editor/Editor.cpp +++ b/Editor/Editor.cpp @@ -764,7 +764,7 @@ void EditorComponent::Load() params.description = "Lua script"; params.extensions.push_back("lua"); wiHelper::FileDialog(params, [](std::string fileName) { - wiLua::GetGlobal()->RunFile(fileName); + wiLua::RunFile(fileName); }); }); GetGUI().AddWidget(scriptButton); diff --git a/Tests/Tests.cpp b/Tests/Tests.cpp index 58b9ffd37..83487a840 100644 --- a/Tests/Tests.cpp +++ b/Tests/Tests.cpp @@ -127,7 +127,7 @@ void TestsRenderer::Load() wiScene::GetScene().weather = WeatherComponent(); this->ClearSprites(); this->ClearFonts(); - wiLua::GetGlobal()->KillProcesses(); + wiLua::KillProcesses(); // Reset camera position: TransformComponent transform; @@ -174,7 +174,7 @@ void TestsRenderer::Load() break; case 5: wiRenderer::SetToDrawGridHelper(true); - wiLua::GetGlobal()->RunFile("test_script.lua"); + wiLua::RunFile("test_script.lua"); break; case 6: wiRenderer::SetTemporalAAEnabled(true); diff --git a/WickedEngine/LoadingScreen_BindLua.cpp b/WickedEngine/LoadingScreen_BindLua.cpp index 4253b3f50..d12a377e8 100644 --- a/WickedEngine/LoadingScreen_BindLua.cpp +++ b/WickedEngine/LoadingScreen_BindLua.cpp @@ -39,7 +39,9 @@ int LoadingScreen_BindLua::AddLoadingTask(lua_State* L) LoadingScreen* loading = dynamic_cast(component); if (loading != nullptr) { - loading->addLoadingFunction(bind(&wiLua::RunText,wiLua::GetGlobal(),task)); + loading->addLoadingFunction([=](wiJobArgs args) { + wiLua::RunText(task); + }); } else wiLua::SError(L, "AddLoader(string taskScript) component is not a LoadingScreen!"); @@ -57,7 +59,9 @@ int LoadingScreen_BindLua::OnFinished(lua_State* L) LoadingScreen* loading = dynamic_cast(component); if (loading != nullptr) { - loading->onFinished(bind(&wiLua::RunText, wiLua::GetGlobal(), task)); + loading->onFinished([=] { + wiLua::RunText(task); + }); } else wiLua::SError(L, "OnFinished(string taskScript) component is not a LoadingScreen!"); @@ -73,6 +77,6 @@ void LoadingScreen_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); } } diff --git a/WickedEngine/MainComponent.cpp b/WickedEngine/MainComponent.cpp index 52022c3aa..b9c21b626 100644 --- a/WickedEngine/MainComponent.cpp +++ b/WickedEngine/MainComponent.cpp @@ -122,8 +122,8 @@ void MainComponent::Run() if (!startup_script) { startup_script = true; - wiLua::GetGlobal()->RegisterObject(MainComponent_BindLua::className, "main", new MainComponent_BindLua(this)); - wiLua::GetGlobal()->RunFile("startup.lua"); + wiLua::RegisterObject(MainComponent_BindLua::className, "main", new MainComponent_BindLua(this)); + wiLua::RunFile("startup.lua"); } wiPlatform::PopMessages(); @@ -196,8 +196,8 @@ void MainComponent::Update(float dt) { auto range = wiProfiler::BeginRangeCPU("Update"); - wiLua::GetGlobal()->SetDeltaTime(double(dt)); - wiLua::GetGlobal()->Update(); + wiLua::SetDeltaTime(double(dt)); + wiLua::Update(); if (GetActivePath() != nullptr) { @@ -210,7 +210,7 @@ void MainComponent::Update(float dt) void MainComponent::FixedUpdate() { wiBackLog::Update(); - wiLua::GetGlobal()->FixedUpdate(); + wiLua::FixedUpdate(); if (GetActivePath() != nullptr) { @@ -222,7 +222,7 @@ void MainComponent::Render() { auto range = wiProfiler::BeginRangeCPU("Render"); - wiLua::GetGlobal()->Render(); + wiLua::Render(); if (GetActivePath() != nullptr) { diff --git a/WickedEngine/MainComponent_BindLua.cpp b/WickedEngine/MainComponent_BindLua.cpp index 1ed6ff260..9642592fd 100644 --- a/WickedEngine/MainComponent_BindLua.cpp +++ b/WickedEngine/MainComponent_BindLua.cpp @@ -340,8 +340,8 @@ void MainComponent_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); - wiLua::GetGlobal()->RegisterFunc("SetProfilerEnabled", SetProfilerEnabled); + wiLua::RegisterFunc("SetProfilerEnabled", SetProfilerEnabled); } } diff --git a/WickedEngine/Matrix_BindLua.cpp b/WickedEngine/Matrix_BindLua.cpp index 475d14055..ad480e3ff 100644 --- a/WickedEngine/Matrix_BindLua.cpp +++ b/WickedEngine/Matrix_BindLua.cpp @@ -305,7 +305,7 @@ void Matrix_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); - wiLua::GetGlobal()->RunText("matrix = Matrix()"); + Luna::Register(wiLua::GetLuaState()); + wiLua::RunText("matrix = Matrix()"); } } diff --git a/WickedEngine/RenderPath2D_BindLua.cpp b/WickedEngine/RenderPath2D_BindLua.cpp index ec61822f6..4f26d7cb0 100644 --- a/WickedEngine/RenderPath2D_BindLua.cpp +++ b/WickedEngine/RenderPath2D_BindLua.cpp @@ -420,6 +420,6 @@ void RenderPath2D_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); } } \ No newline at end of file diff --git a/WickedEngine/RenderPath3D_BindLua.cpp b/WickedEngine/RenderPath3D_BindLua.cpp index 8bd71a69a..0cc488c53 100644 --- a/WickedEngine/RenderPath3D_BindLua.cpp +++ b/WickedEngine/RenderPath3D_BindLua.cpp @@ -370,12 +370,12 @@ void RenderPath3D_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); - wiLua::GetGlobal()->RunText("AO_DISABLED = 0"); - wiLua::GetGlobal()->RunText("AO_SSAO = 1"); - wiLua::GetGlobal()->RunText("AO_HBAO = 2"); - wiLua::GetGlobal()->RunText("AO_MSAO = 3"); - wiLua::GetGlobal()->RunText("AO_RTAO = 4"); + wiLua::RunText("AO_DISABLED = 0"); + wiLua::RunText("AO_SSAO = 1"); + wiLua::RunText("AO_HBAO = 2"); + wiLua::RunText("AO_MSAO = 3"); + wiLua::RunText("AO_RTAO = 4"); } } diff --git a/WickedEngine/RenderPath3D_Deferred_BindLua.cpp b/WickedEngine/RenderPath3D_Deferred_BindLua.cpp index 1fa76dec2..a8d208838 100644 --- a/WickedEngine/RenderPath3D_Deferred_BindLua.cpp +++ b/WickedEngine/RenderPath3D_Deferred_BindLua.cpp @@ -54,6 +54,6 @@ void RenderPath3D_Deferred_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); } } diff --git a/WickedEngine/RenderPath3D_Forward_BindLua.cpp b/WickedEngine/RenderPath3D_Forward_BindLua.cpp index 306db65cf..e8ea6e4e1 100644 --- a/WickedEngine/RenderPath3D_Forward_BindLua.cpp +++ b/WickedEngine/RenderPath3D_Forward_BindLua.cpp @@ -54,6 +54,6 @@ void RenderPath3D_Forward_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); } } diff --git a/WickedEngine/RenderPath3D_TiledDeferred_BindLua.cpp b/WickedEngine/RenderPath3D_TiledDeferred_BindLua.cpp index c4ca4a7ba..5e6430c55 100644 --- a/WickedEngine/RenderPath3D_TiledDeferred_BindLua.cpp +++ b/WickedEngine/RenderPath3D_TiledDeferred_BindLua.cpp @@ -54,6 +54,6 @@ void RenderPath3D_TiledDeferred_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); } } diff --git a/WickedEngine/RenderPath3D_TiledForward_BindLua.cpp b/WickedEngine/RenderPath3D_TiledForward_BindLua.cpp index b28644d83..10c852e39 100644 --- a/WickedEngine/RenderPath3D_TiledForward_BindLua.cpp +++ b/WickedEngine/RenderPath3D_TiledForward_BindLua.cpp @@ -55,6 +55,6 @@ void RenderPath3D_TiledForward_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); } } diff --git a/WickedEngine/RenderPath_BindLua.cpp b/WickedEngine/RenderPath_BindLua.cpp index 1e4f0ff3a..de7e5431d 100644 --- a/WickedEngine/RenderPath_BindLua.cpp +++ b/WickedEngine/RenderPath_BindLua.cpp @@ -40,7 +40,7 @@ void RenderPath_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); } } diff --git a/WickedEngine/SpriteAnim_BindLua.cpp b/WickedEngine/SpriteAnim_BindLua.cpp index 99ccd2549..b3536d0ad 100644 --- a/WickedEngine/SpriteAnim_BindLua.cpp +++ b/WickedEngine/SpriteAnim_BindLua.cpp @@ -244,9 +244,9 @@ void SpriteAnim_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); - Luna::Register(wiLua::GetGlobal()->GetLuaState()); - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); + Luna::Register(wiLua::GetLuaState()); + Luna::Register(wiLua::GetLuaState()); } } diff --git a/WickedEngine/Texture_BindLua.cpp b/WickedEngine/Texture_BindLua.cpp index 2b664f183..4444f3e1f 100644 --- a/WickedEngine/Texture_BindLua.cpp +++ b/WickedEngine/Texture_BindLua.cpp @@ -23,7 +23,7 @@ void Texture_BindLua::Bind() static bool initialized = false; if (!initialized) { - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); initialized = true; } } \ No newline at end of file diff --git a/WickedEngine/Vector_BindLua.cpp b/WickedEngine/Vector_BindLua.cpp index a4b5975f1..146b17886 100644 --- a/WickedEngine/Vector_BindLua.cpp +++ b/WickedEngine/Vector_BindLua.cpp @@ -393,8 +393,8 @@ void Vector_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); - wiLua::GetGlobal()->RunText("vector = Vector()"); + Luna::Register(wiLua::GetLuaState()); + wiLua::RunText("vector = Vector()"); } } diff --git a/WickedEngine/wiAudio_BindLua.cpp b/WickedEngine/wiAudio_BindLua.cpp index c6f2caf63..5af676606 100644 --- a/WickedEngine/wiAudio_BindLua.cpp +++ b/WickedEngine/wiAudio_BindLua.cpp @@ -235,45 +235,45 @@ void wiAudio_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); - wiLua::GetGlobal()->RunText("audio = Audio()"); + wiLua::RunText("audio = Audio()"); - wiLua::GetGlobal()->RunText("SUBMIX_TYPE_SOUNDEFFECT = 0"); - wiLua::GetGlobal()->RunText("SUBMIX_TYPE_MUSIC = 1"); - wiLua::GetGlobal()->RunText("SUBMIX_TYPE_USER0 = 2"); - wiLua::GetGlobal()->RunText("SUBMIX_TYPE_USER1 = 3"); + wiLua::RunText("SUBMIX_TYPE_SOUNDEFFECT = 0"); + wiLua::RunText("SUBMIX_TYPE_MUSIC = 1"); + wiLua::RunText("SUBMIX_TYPE_USER0 = 2"); + wiLua::RunText("SUBMIX_TYPE_USER1 = 3"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_DEFAULT = 0"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_GENERIC = 1"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_FOREST = 2"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_PADDEDCELL = 3"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_ROOM = 4"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_BATHROOM = 5"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_LIVINGROOM = 6"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_STONEROOM = 7"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_AUDITORIUM = 8"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_CONCERTHALL = 9"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_CAVE = 10"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_ARENA = 11"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_HANGAR = 12"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_CARPETEDHALLWAY = 13"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_HALLWAY = 14"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_STONECORRIDOR = 15"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_ALLEY = 16"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_CITY = 17"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_MOUNTAINS = 18"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_QUARRY = 19"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_PLAIN = 20"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_PARKINGLOT = 21"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_SEWERPIPE = 22"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_UNDERWATER = 23"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_SMALLROOM = 24"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_MEDIUMROOM = 25"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_LARGEROOM = 26"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_MEDIUMHALL = 27"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_LARGEHALL = 28"); - wiLua::GetGlobal()->RunText("REVERB_PRESET_PLATE = 29"); + wiLua::RunText("REVERB_PRESET_DEFAULT = 0"); + wiLua::RunText("REVERB_PRESET_GENERIC = 1"); + wiLua::RunText("REVERB_PRESET_FOREST = 2"); + wiLua::RunText("REVERB_PRESET_PADDEDCELL = 3"); + wiLua::RunText("REVERB_PRESET_ROOM = 4"); + wiLua::RunText("REVERB_PRESET_BATHROOM = 5"); + wiLua::RunText("REVERB_PRESET_LIVINGROOM = 6"); + wiLua::RunText("REVERB_PRESET_STONEROOM = 7"); + wiLua::RunText("REVERB_PRESET_AUDITORIUM = 8"); + wiLua::RunText("REVERB_PRESET_CONCERTHALL = 9"); + wiLua::RunText("REVERB_PRESET_CAVE = 10"); + wiLua::RunText("REVERB_PRESET_ARENA = 11"); + wiLua::RunText("REVERB_PRESET_HANGAR = 12"); + wiLua::RunText("REVERB_PRESET_CARPETEDHALLWAY = 13"); + wiLua::RunText("REVERB_PRESET_HALLWAY = 14"); + wiLua::RunText("REVERB_PRESET_STONECORRIDOR = 15"); + wiLua::RunText("REVERB_PRESET_ALLEY = 16"); + wiLua::RunText("REVERB_PRESET_CITY = 17"); + wiLua::RunText("REVERB_PRESET_MOUNTAINS = 18"); + wiLua::RunText("REVERB_PRESET_QUARRY = 19"); + wiLua::RunText("REVERB_PRESET_PLAIN = 20"); + wiLua::RunText("REVERB_PRESET_PARKINGLOT = 21"); + wiLua::RunText("REVERB_PRESET_SEWERPIPE = 22"); + wiLua::RunText("REVERB_PRESET_UNDERWATER = 23"); + wiLua::RunText("REVERB_PRESET_SMALLROOM = 24"); + wiLua::RunText("REVERB_PRESET_MEDIUMROOM = 25"); + wiLua::RunText("REVERB_PRESET_LARGEROOM = 26"); + wiLua::RunText("REVERB_PRESET_MEDIUMHALL = 27"); + wiLua::RunText("REVERB_PRESET_LARGEHALL = 28"); + wiLua::RunText("REVERB_PRESET_PLATE = 29"); wiSound_BindLua::Bind(); wiSoundInstance_BindLua::Bind(); @@ -299,7 +299,7 @@ void wiSound_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); } } @@ -335,7 +335,7 @@ void wiSoundInstance_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); } } @@ -499,6 +499,6 @@ void wiSoundInstance3D_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); } } diff --git a/WickedEngine/wiBackLog.cpp b/WickedEngine/wiBackLog.cpp index d825f2475..b04810900 100644 --- a/WickedEngine/wiBackLog.cpp +++ b/WickedEngine/wiBackLog.cpp @@ -180,7 +180,7 @@ namespace wiBackLog if (history.size() > deletefromline) { history.pop_front(); } - wiLua::GetGlobal()->RunText(inputArea.str()); + wiLua::RunText(inputArea.str()); inputArea.str(""); } void deletefromInput() diff --git a/WickedEngine/wiBackLog_BindLua.cpp b/WickedEngine/wiBackLog_BindLua.cpp index 162de8cfc..6da588cb6 100644 --- a/WickedEngine/wiBackLog_BindLua.cpp +++ b/WickedEngine/wiBackLog_BindLua.cpp @@ -65,11 +65,11 @@ namespace wiBackLog_BindLua if (!initialized) { initialized = true; - wiLua::GetGlobal()->RegisterFunc("backlog_clear", backlog_clear); - wiLua::GetGlobal()->RegisterFunc("backlog_post", backlog_post); - wiLua::GetGlobal()->RegisterFunc("backlog_fontsize", backlog_fontsize); - wiLua::GetGlobal()->RegisterFunc("backlog_isactive", backlog_isactive); - wiLua::GetGlobal()->RegisterFunc("backlog_fontrowspacing", backlog_fontrowspacing); + wiLua::RegisterFunc("backlog_clear", backlog_clear); + wiLua::RegisterFunc("backlog_post", backlog_post); + wiLua::RegisterFunc("backlog_fontsize", backlog_fontsize); + wiLua::RegisterFunc("backlog_isactive", backlog_isactive); + wiLua::RegisterFunc("backlog_fontrowspacing", backlog_fontrowspacing); } } } diff --git a/WickedEngine/wiImageParams_BindLua.cpp b/WickedEngine/wiImageParams_BindLua.cpp index ab99766fa..d677d39d1 100644 --- a/WickedEngine/wiImageParams_BindLua.cpp +++ b/WickedEngine/wiImageParams_BindLua.cpp @@ -439,34 +439,34 @@ void wiImageParams_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); - wiLua::GetGlobal()->RunText("STENCILMODE_DISABLED = 0"); - wiLua::GetGlobal()->RunText("STENCILMODE_EQUAL = 1"); - wiLua::GetGlobal()->RunText("STENCILMODE_LESS = 2"); - wiLua::GetGlobal()->RunText("STENCILMODE_LESSEQUAL = 3"); - wiLua::GetGlobal()->RunText("STENCILMODE_GREATER = 4"); - wiLua::GetGlobal()->RunText("STENCILMODE_GREATEREQUAL = 5"); - wiLua::GetGlobal()->RunText("STENCILMODE_NOT = 6"); - wiLua::GetGlobal()->RunText("STENCILMODE_ALWAYS = 7"); + wiLua::RunText("STENCILMODE_DISABLED = 0"); + wiLua::RunText("STENCILMODE_EQUAL = 1"); + wiLua::RunText("STENCILMODE_LESS = 2"); + wiLua::RunText("STENCILMODE_LESSEQUAL = 3"); + wiLua::RunText("STENCILMODE_GREATER = 4"); + wiLua::RunText("STENCILMODE_GREATEREQUAL = 5"); + wiLua::RunText("STENCILMODE_NOT = 6"); + wiLua::RunText("STENCILMODE_ALWAYS = 7"); - wiLua::GetGlobal()->RunText("STENCILREFMODE_ENGINE = 0"); - wiLua::GetGlobal()->RunText("STENCILREFMODE_USER = 1"); - wiLua::GetGlobal()->RunText("STENCILREFMODE_ALL = 2"); + wiLua::RunText("STENCILREFMODE_ENGINE = 0"); + wiLua::RunText("STENCILREFMODE_USER = 1"); + wiLua::RunText("STENCILREFMODE_ALL = 2"); - wiLua::GetGlobal()->RunText("SAMPLEMODE_CLAMP = 0"); - wiLua::GetGlobal()->RunText("SAMPLEMODE_WRAP = 1"); - wiLua::GetGlobal()->RunText("SAMPLEMODE_MIRROR = 2"); + wiLua::RunText("SAMPLEMODE_CLAMP = 0"); + wiLua::RunText("SAMPLEMODE_WRAP = 1"); + wiLua::RunText("SAMPLEMODE_MIRROR = 2"); - wiLua::GetGlobal()->RunText("QUALITY_NEAREST = 0"); - wiLua::GetGlobal()->RunText("QUALITY_LINEAR = 1"); - wiLua::GetGlobal()->RunText("QUALITY_ANISOTROPIC = 2"); - wiLua::GetGlobal()->RunText("QUALITY_BICUBIC = 3"); + wiLua::RunText("QUALITY_NEAREST = 0"); + wiLua::RunText("QUALITY_LINEAR = 1"); + wiLua::RunText("QUALITY_ANISOTROPIC = 2"); + wiLua::RunText("QUALITY_BICUBIC = 3"); - wiLua::GetGlobal()->RunText("BLENDMODE_OPAQUE = 0"); - wiLua::GetGlobal()->RunText("BLENDMODE_ALPHA = 1"); - wiLua::GetGlobal()->RunText("BLENDMODE_PREMULTIPLIED = 2"); - wiLua::GetGlobal()->RunText("BLENDMODE_ADDITIVE = 3"); + wiLua::RunText("BLENDMODE_OPAQUE = 0"); + wiLua::RunText("BLENDMODE_ALPHA = 1"); + wiLua::RunText("BLENDMODE_PREMULTIPLIED = 2"); + wiLua::RunText("BLENDMODE_ADDITIVE = 3"); } } diff --git a/WickedEngine/wiInitializer.cpp b/WickedEngine/wiInitializer.cpp index 6595d653c..78d6410bb 100644 --- a/WickedEngine/wiInitializer.cpp +++ b/WickedEngine/wiInitializer.cpp @@ -37,6 +37,7 @@ namespace wiInitializer wiJobSystem::Execute(ctx, [](wiJobArgs args) { wiGPUSortLib::Initialize(); }); wiJobSystem::Execute(ctx, [](wiJobArgs args) { wiGPUBVH::Initialize(); }); wiJobSystem::Execute(ctx, [](wiJobArgs args) { wiPhysicsEngine::Initialize(); }); + wiJobSystem::Execute(ctx, [](wiJobArgs args) { wiLua::Initialize(); }); } diff --git a/WickedEngine/wiInput_BindLua.cpp b/WickedEngine/wiInput_BindLua.cpp index bd16692ec..e4f27e559 100644 --- a/WickedEngine/wiInput_BindLua.cpp +++ b/WickedEngine/wiInput_BindLua.cpp @@ -186,71 +186,71 @@ void wiInput_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); - wiLua::GetGlobal()->RunText("input = Input()"); + Luna::Register(wiLua::GetLuaState()); + wiLua::RunText("input = Input()"); - wiLua::GetGlobal()->RunText("MOUSE_BUTTON_LEFT = 1"); - wiLua::GetGlobal()->RunText("MOUSE_BUTTON_RIGHT = 2"); - wiLua::GetGlobal()->RunText("MOUSE_BUTTON_MIDDLE = 3"); + wiLua::RunText("MOUSE_BUTTON_LEFT = 1"); + wiLua::RunText("MOUSE_BUTTON_RIGHT = 2"); + wiLua::RunText("MOUSE_BUTTON_MIDDLE = 3"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_UP = 4"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_DOWN = 5"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_LEFT = 6"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_RIGHT = 7"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_SPACE = 8"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_RSHIFT = 9"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_LSHIFT = 10"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_F1 = 11"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_F2 = 12"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_F3 = 13"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_F4 = 14"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_F5 = 15"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_F6 = 16"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_F7 = 17"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_F8 = 18"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_F9 = 19"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_F10 = 20"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_F11 = 21"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_F12 = 22"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_ENTER = 23"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_ESCAPE = 24"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_HOME = 25"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_RCONTROL = 26"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_LCONTROL = 27"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_DELETE = 28"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_BACK = 29"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_PAGEDOWN = 30"); - wiLua::GetGlobal()->RunText("KEYBOARD_BUTTON_PAGEUP = 31"); + wiLua::RunText("KEYBOARD_BUTTON_UP = 4"); + wiLua::RunText("KEYBOARD_BUTTON_DOWN = 5"); + wiLua::RunText("KEYBOARD_BUTTON_LEFT = 6"); + wiLua::RunText("KEYBOARD_BUTTON_RIGHT = 7"); + wiLua::RunText("KEYBOARD_BUTTON_SPACE = 8"); + wiLua::RunText("KEYBOARD_BUTTON_RSHIFT = 9"); + wiLua::RunText("KEYBOARD_BUTTON_LSHIFT = 10"); + wiLua::RunText("KEYBOARD_BUTTON_F1 = 11"); + wiLua::RunText("KEYBOARD_BUTTON_F2 = 12"); + wiLua::RunText("KEYBOARD_BUTTON_F3 = 13"); + wiLua::RunText("KEYBOARD_BUTTON_F4 = 14"); + wiLua::RunText("KEYBOARD_BUTTON_F5 = 15"); + wiLua::RunText("KEYBOARD_BUTTON_F6 = 16"); + wiLua::RunText("KEYBOARD_BUTTON_F7 = 17"); + wiLua::RunText("KEYBOARD_BUTTON_F8 = 18"); + wiLua::RunText("KEYBOARD_BUTTON_F9 = 19"); + wiLua::RunText("KEYBOARD_BUTTON_F10 = 20"); + wiLua::RunText("KEYBOARD_BUTTON_F11 = 21"); + wiLua::RunText("KEYBOARD_BUTTON_F12 = 22"); + wiLua::RunText("KEYBOARD_BUTTON_ENTER = 23"); + wiLua::RunText("KEYBOARD_BUTTON_ESCAPE = 24"); + wiLua::RunText("KEYBOARD_BUTTON_HOME = 25"); + wiLua::RunText("KEYBOARD_BUTTON_RCONTROL = 26"); + wiLua::RunText("KEYBOARD_BUTTON_LCONTROL = 27"); + wiLua::RunText("KEYBOARD_BUTTON_DELETE = 28"); + wiLua::RunText("KEYBOARD_BUTTON_BACK = 29"); + wiLua::RunText("KEYBOARD_BUTTON_PAGEDOWN = 30"); + wiLua::RunText("KEYBOARD_BUTTON_PAGEUP = 31"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_UP = 257"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_LEFT = 258"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_DOWN = 259"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_RIGHT = 260"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_1 = 261"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_2 = 262"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_3 = 263"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_4 = 264"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_5 = 265"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_6 = 266"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_7 = 267"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_8 = 268"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_9 = 269"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_10 = 270"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_11 = 271"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_12 = 272"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_13 = 273"); - wiLua::GetGlobal()->RunText("GAMEPAD_BUTTON_14 = 274"); + wiLua::RunText("GAMEPAD_BUTTON_UP = 257"); + wiLua::RunText("GAMEPAD_BUTTON_LEFT = 258"); + wiLua::RunText("GAMEPAD_BUTTON_DOWN = 259"); + wiLua::RunText("GAMEPAD_BUTTON_RIGHT = 260"); + wiLua::RunText("GAMEPAD_BUTTON_1 = 261"); + wiLua::RunText("GAMEPAD_BUTTON_2 = 262"); + wiLua::RunText("GAMEPAD_BUTTON_3 = 263"); + wiLua::RunText("GAMEPAD_BUTTON_4 = 264"); + wiLua::RunText("GAMEPAD_BUTTON_5 = 265"); + wiLua::RunText("GAMEPAD_BUTTON_6 = 266"); + wiLua::RunText("GAMEPAD_BUTTON_7 = 267"); + wiLua::RunText("GAMEPAD_BUTTON_8 = 268"); + wiLua::RunText("GAMEPAD_BUTTON_9 = 269"); + wiLua::RunText("GAMEPAD_BUTTON_10 = 270"); + wiLua::RunText("GAMEPAD_BUTTON_11 = 271"); + wiLua::RunText("GAMEPAD_BUTTON_12 = 272"); + wiLua::RunText("GAMEPAD_BUTTON_13 = 273"); + wiLua::RunText("GAMEPAD_BUTTON_14 = 274"); //Analog - wiLua::GetGlobal()->RunText("GAMEPAD_ANALOG_THUMBSTICK_L = 0"); - wiLua::GetGlobal()->RunText("GAMEPAD_ANALOG_THUMBSTICK_R = 1"); - wiLua::GetGlobal()->RunText("GAMEPAD_ANALOG_TRIGGER_L = 2"); - wiLua::GetGlobal()->RunText("GAMEPAD_ANALOG_TRIGGER_R = 3"); + wiLua::RunText("GAMEPAD_ANALOG_THUMBSTICK_L = 0"); + wiLua::RunText("GAMEPAD_ANALOG_THUMBSTICK_R = 1"); + wiLua::RunText("GAMEPAD_ANALOG_TRIGGER_L = 2"); + wiLua::RunText("GAMEPAD_ANALOG_TRIGGER_R = 3"); //Touch - wiLua::GetGlobal()->RunText("TOUCHSTATE_PRESSED = 0"); - wiLua::GetGlobal()->RunText("TOUCHSTATE_RELEASED = 1"); - wiLua::GetGlobal()->RunText("TOUCHSTATE_MOVED = 2"); + wiLua::RunText("TOUCHSTATE_PRESSED = 0"); + wiLua::RunText("TOUCHSTATE_RELEASED = 1"); + wiLua::RunText("TOUCHSTATE_MOVED = 2"); } Touch_BindLua::Bind(); @@ -291,7 +291,7 @@ void Touch_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); } } @@ -369,6 +369,6 @@ void ControllerFeedback_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); } } diff --git a/WickedEngine/wiIntersect_BindLua.cpp b/WickedEngine/wiIntersect_BindLua.cpp index 2fcf79642..3282a7409 100644 --- a/WickedEngine/wiIntersect_BindLua.cpp +++ b/WickedEngine/wiIntersect_BindLua.cpp @@ -11,7 +11,7 @@ namespace wiIntersect_BindLua { initialized = true; - lua_State* L = wiLua::GetGlobal()->GetLuaState(); + lua_State* L = wiLua::GetLuaState(); Luna::Register(L); Luna::Register(L); diff --git a/WickedEngine/wiLua.cpp b/WickedEngine/wiLua.cpp index 3f177a08c..ff662d74d 100644 --- a/WickedEngine/wiLua.cpp +++ b/WickedEngine/wiLua.cpp @@ -29,78 +29,81 @@ #include #include #include - -using namespace std; +#include #define WILUA_ERROR_PREFIX "[Lua Error] " -int Internal_DoFile(lua_State* L) +using namespace std; + +namespace wiLua { - int argc = wiLua::SGetArgCount(L); - - if (argc > 0) + struct LuaInternal { - std::string filename = wiLua::SGetString(L, 1); - std::vector filedata; - if (wiHelper::FileRead(filename, filedata)) + lua_State* m_luaState = NULL; + int m_status = 0; //last call status + + ~LuaInternal() { - std::string command = string(filedata.begin(), filedata.end()); - int status = luaL_loadstring(L, command.c_str()); - if (status == 0) + lua_close(m_luaState); + } + }; + LuaInternal luainternal; + std::mutex lock; + + int Internal_DoFile(lua_State* L) + { + int argc = SGetArgCount(L); + + if (argc > 0) + { + std::string filename = SGetString(L, 1); + std::vector filedata; + if (wiHelper::FileRead(filename, filedata)) { - status = lua_pcall(L, 0, LUA_MULTRET, 0); - } + std::string command = string(filedata.begin(), filedata.end()); + int status = luaL_loadstring(L, command.c_str()); + if (status == 0) + { + status = lua_pcall(L, 0, LUA_MULTRET, 0); + } - if (status != 0) - { - const char* str = lua_tostring(L, -1); + if (status != 0) + { + const char* str = lua_tostring(L, -1); - if (str == nullptr) - return 0; + if (str == nullptr) + return 0; - stringstream ss(""); - ss << WILUA_ERROR_PREFIX << str; - wiBackLog::post(ss.str().c_str()); - lua_pop(L, 1); // remove error message + stringstream ss(""); + ss << WILUA_ERROR_PREFIX << str; + wiBackLog::post(ss.str().c_str()); + lua_pop(L, 1); // remove error message + } } } - } - else - { - wiLua::SError(L, "dofile(string filename) not enough arguments!"); + else + { + SError(L, "dofile(string filename) not enough arguments!"); + } + + return 0; } - return 0; -} - -wiLua::wiLua() -{ - m_luaState = NULL; - m_luaState = luaL_newstate(); - luaL_openlibs(m_luaState); - RegisterFunc("dofile", Internal_DoFile); - RunText(wiLua_Globals); -} - -wiLua::~wiLua() -{ - lua_close(m_luaState); -} - -wiLua* wiLua::GetGlobal() -{ - static std::unique_ptr globalLua; - if (globalLua == nullptr) + void Initialize() { - globalLua = std::make_unique(); + luainternal.m_luaState = luaL_newstate(); + luaL_openlibs(luainternal.m_luaState); + RegisterFunc("dofile", Internal_DoFile); + RunText(wiLua_Globals); MainComponent_BindLua::Bind(); RenderPath_BindLua::Bind(); RenderPath2D_BindLua::Bind(); LoadingScreen_BindLua::Bind(); RenderPath3D_BindLua::Bind(); - RenderPath3D_Deferred_BindLua::Bind(); - RenderPath3D_Forward_BindLua::Bind(); + // Note: when all render paths are registered, heap corruptions start happening!!! + //RenderPath3D_Deferred_BindLua::Bind(); + //RenderPath3D_Forward_BindLua::Bind(); RenderPath3D_TiledForward_BindLua::Bind(); RenderPath3D_TiledDeferred_BindLua::Bind(); Texture_BindLua::Bind(); @@ -117,346 +120,350 @@ wiLua* wiLua::GetGlobal() wiBackLog_BindLua::Bind(); wiNetwork_BindLua::Bind(); wiIntersect_BindLua::Bind(); - } - return globalLua.get(); -} -bool wiLua::Success() -{ - return m_status == 0; -} -bool wiLua::Failed() -{ - return m_status != 0; -} -string wiLua::GetErrorMsg() -{ - if (Failed()) { + lua_State* GetLuaState() + { + return luainternal.m_luaState; + } + + bool Success() + { + return luainternal.m_status == 0; + } + bool Failed() + { + return luainternal.m_status != 0; + } + string GetErrorMsg() + { + if (Failed()) { + lock.lock(); + string retVal = lua_tostring(luainternal.m_luaState, -1); + lock.unlock(); + return retVal; + } + return string(""); + } + string PopErrorMsg() + { lock.lock(); - string retVal = lua_tostring(m_luaState, -1); + string retVal = lua_tostring(luainternal.m_luaState, -1); + lua_pop(luainternal.m_luaState, 1); // remove error message lock.unlock(); return retVal; } - return string(""); -} -string wiLua::PopErrorMsg() -{ - lock.lock(); - string retVal = lua_tostring(m_luaState, -1); - lua_pop(m_luaState, 1); // remove error message - lock.unlock(); - return retVal; -} -void wiLua::PostErrorMsg() -{ - if (Failed()) + void PostErrorMsg() + { + if (Failed()) + { + lock.lock(); + const char* str = lua_tostring(luainternal.m_luaState, -1); + lock.unlock(); + if (str == nullptr) + return; + stringstream ss(""); + ss << WILUA_ERROR_PREFIX << str; + wiBackLog::post(ss.str().c_str()); + lock.lock(); + lua_pop(luainternal.m_luaState, 1); // remove error message + lock.unlock(); + } + } + bool RunFile(const std::string& filename) + { + std::vector filedata; + if (wiHelper::FileRead(filename, filedata)) + { + return RunText(string(filedata.begin(), filedata.end())); + } + return false; + + //lock.lock(); + //m_status = luaL_loadfile(m_luaState, filename.c_str()); + //lock.unlock(); + // + //if (Success()) { + // return RunScript(); + //} + + //PostErrorMsg(); + //return false; + } + bool RunScript() { lock.lock(); - const char* str = lua_tostring(m_luaState, -1); + luainternal.m_status = lua_pcall(luainternal.m_luaState, 0, LUA_MULTRET, 0); lock.unlock(); - if (str == nullptr) - return; - stringstream ss(""); - ss << WILUA_ERROR_PREFIX << str; - wiBackLog::post(ss.str().c_str()); + if (Failed()) + { + PostErrorMsg(); + return false; + } + return true; + } + bool RunText(const std::string& script) + { lock.lock(); - lua_pop(m_luaState, 1); // remove error message + luainternal.m_status = luaL_loadstring(luainternal.m_luaState, script.c_str()); lock.unlock(); - } -} -bool wiLua::RunFile(const std::string& filename) -{ - std::vector filedata; - if (wiHelper::FileRead(filename, filedata)) - { - return RunText(string(filedata.begin(), filedata.end())); - } - return false; + if (Success()) + { + return RunScript(); + } - //lock.lock(); - //m_status = luaL_loadfile(m_luaState, filename.c_str()); - //lock.unlock(); - // - //if (Success()) { - // return RunScript(); - //} - - //PostErrorMsg(); - //return false; -} -bool wiLua::RunText(const std::string& script) -{ - lock.lock(); - m_status = luaL_loadstring(m_luaState, script.c_str()); - lock.unlock(); - if (Success()) - { - return RunScript(); - } - - PostErrorMsg(); - return false; -} -bool wiLua::RunScript() -{ - lock.lock(); - m_status = lua_pcall(m_luaState, 0, LUA_MULTRET, 0); - lock.unlock(); - if (Failed()) - { PostErrorMsg(); return false; } - return true; -} -bool wiLua::RegisterFunc(const std::string& name, lua_CFunction function) -{ - lock.lock(); - lua_register(m_luaState, name.c_str(), function); - lock.unlock(); - - PostErrorMsg(); - - return Success(); -} -void wiLua::RegisterLibrary(const std::string& tableName, const luaL_Reg* functions) -{ - lock.lock(); - if (luaL_newmetatable(m_luaState, tableName.c_str()) != 0) - { - //table is not yet present - lua_pushvalue(m_luaState, -1); - lua_setfield(m_luaState, -2, "__index"); // Object.__index = Object - lock.unlock(); - AddFuncArray(functions); - } - else - { - lock.unlock(); - } -} -bool wiLua::RegisterObject(const std::string& tableName, const std::string& name, void* object) -{ - RegisterLibrary(tableName, nullptr); - - lock.lock(); - // does this call need to be checked? eg. userData == nullptr? - void **userData = static_cast(lua_newuserdata(m_luaState, sizeof(void*))); - *(userData) = object; - - luaL_setmetatable(m_luaState, tableName.c_str()); - lua_setglobal(m_luaState, name.c_str()); - - lock.unlock(); - return true; -} -void wiLua::AddFunc(const std::string& name, lua_CFunction function) -{ - lock.lock(); - - lua_pushcfunction(m_luaState, function); - lua_setfield(m_luaState, -2, name.c_str()); - - lock.unlock(); -} -void wiLua::AddFuncArray(const luaL_Reg* functions) -{ - if (functions != nullptr) + bool RegisterFunc(const std::string& name, lua_CFunction function) { lock.lock(); - luaL_setfuncs(m_luaState, functions, 0); + lua_register(luainternal.m_luaState, name.c_str(), function); + lock.unlock(); + + PostErrorMsg(); + + return Success(); + } + void RegisterLibrary(const std::string& tableName, const luaL_Reg* functions) + { + lock.lock(); + if (luaL_newmetatable(luainternal.m_luaState, tableName.c_str()) != 0) + { + //table is not yet present + lua_pushvalue(luainternal.m_luaState, -1); + lua_setfield(luainternal.m_luaState, -2, "__index"); // Object.__index = Object + lock.unlock(); + AddFuncArray(functions); + } + else + { + lock.unlock(); + } + } + bool RegisterObject(const std::string& tableName, const std::string& name, void* object) + { + RegisterLibrary(tableName, nullptr); + + lock.lock(); + // does this call need to be checked? eg. userData == nullptr? + void** userData = static_cast(lua_newuserdata(luainternal.m_luaState, sizeof(void*))); + *(userData) = object; + + luaL_setmetatable(luainternal.m_luaState, tableName.c_str()); + lua_setglobal(luainternal.m_luaState, name.c_str()); + + lock.unlock(); + return true; + } + void AddFunc(const std::string& name, lua_CFunction function) + { + lock.lock(); + + lua_pushcfunction(luainternal.m_luaState, function); + lua_setfield(luainternal.m_luaState, -2, name.c_str()); + lock.unlock(); } -} -void wiLua::AddInt(const std::string& name, int data) -{ - lock.lock(); - lua_pushinteger(m_luaState, data); - lua_setfield(m_luaState, -2, name.c_str()); - lock.unlock(); -} - -void wiLua::SetDeltaTime(double dt) -{ - lock.lock(); - lua_getglobal(m_luaState, "setDeltaTime"); - SSetDouble(m_luaState, dt); - lua_call(m_luaState, 1, 0); - lock.unlock(); -} -void wiLua::FixedUpdate() -{ - TrySignal("wickedengine_fixed_update_tick"); -} -void wiLua::Update() -{ - TrySignal("wickedengine_update_tick"); -} -void wiLua::Render() -{ - TrySignal("wickedengine_render_tick"); -} - -inline void SignalHelper(lua_State* L, const std::string& name) -{ - lua_getglobal(L, "signal"); - wiLua::SSetString(L, name.c_str()); - lua_call(L, 1, 0); -} -void wiLua::Signal(const std::string& name) -{ - lock.lock(); - SignalHelper(m_luaState, name); - lock.unlock(); -} -bool wiLua::TrySignal(const std::string& name) -{ - if (!lock.try_lock()) - return false; - SignalHelper(m_luaState, name); - lock.unlock(); - return true; -} - -void wiLua::KillProcesses() -{ - RunText("killProcesses();"); -} - -string wiLua::SGetString(lua_State* L, int stackpos) -{ - const char* str = lua_tostring(L, stackpos); - if (str != nullptr) - return str; - return string(""); -} -bool wiLua::SIsString(lua_State* L, int stackpos) -{ - return lua_isstring(L, stackpos) != 0; -} -bool wiLua::SIsNumber(lua_State* L, int stackpos) -{ - return lua_isnumber(L, stackpos) != 0; -} -int wiLua::SGetInt(lua_State* L, int stackpos) -{ - return static_cast(SGetLongLong(L,stackpos)); -} -long wiLua::SGetLong(lua_State* L, int stackpos) -{ - return static_cast(SGetLongLong(L, stackpos)); -} -long long wiLua::SGetLongLong(lua_State* L, int stackpos) -{ - return lua_tointeger(L, stackpos); -} -float wiLua::SGetFloat(lua_State* L, int stackpos) -{ - return static_cast(SGetDouble(L, stackpos)); -} -XMFLOAT2 wiLua::SGetFloat2(lua_State* L, int stackpos) -{ - return XMFLOAT2(SGetFloat(L,stackpos),SGetFloat(L,stackpos+1)); -} -XMFLOAT3 wiLua::SGetFloat3(lua_State* L, int stackpos) -{ - return XMFLOAT3(SGetFloat(L, stackpos), SGetFloat(L, stackpos + 1), SGetFloat(L, stackpos + 2)); -} -XMFLOAT4 wiLua::SGetFloat4(lua_State* L, int stackpos) -{ - return XMFLOAT4(SGetFloat(L, stackpos), SGetFloat(L, stackpos + 1), SGetFloat(L, stackpos + 2), SGetFloat(L, stackpos + 3)); -} -double wiLua::SGetDouble(lua_State* L, int stackpos) -{ - return lua_tonumber(L, stackpos); -} -bool wiLua::SGetBool(lua_State* L, int stackpos) -{ - return lua_toboolean(L, stackpos) != 0; -} -int wiLua::SGetArgCount(lua_State* L) -{ - return lua_gettop(L); -} -void* wiLua::SGetUserData(lua_State* L) -{ - return lua_touserdata(L, 1); -} - -void wiLua::SSetInt(lua_State* L, int data) -{ - lua_pushinteger(L, (lua_Integer)data); -} -void wiLua::SSetLong(lua_State* L, long data) -{ - lua_pushinteger(L, (lua_Integer)data); -} -void wiLua::SSetLongLong(lua_State* L, long long data) -{ - lua_pushinteger(L, (lua_Integer)data); -} -void wiLua::SSetFloat(lua_State* L, float data) -{ - lua_pushnumber(L, (lua_Number)data); -} -void wiLua::SSetFloat2(lua_State* L, const XMFLOAT2& data) -{ - SSetFloat(L, data.x); - SSetFloat(L, data.y); -} -void wiLua::SSetFloat3(lua_State* L, const XMFLOAT3& data) -{ - SSetFloat(L, data.x); - SSetFloat(L, data.y); - SSetFloat(L, data.z); -} -void wiLua::SSetFloat4(lua_State* L, const XMFLOAT4& data) -{ - SSetFloat(L, data.x); - SSetFloat(L, data.y); - SSetFloat(L, data.z); - SSetFloat(L, data.w); -} -void wiLua::SSetDouble(lua_State* L, double data) -{ - lua_pushnumber(L, (lua_Number)data); -} -void wiLua::SSetString(lua_State* L, const std::string& data) -{ - lua_pushstring(L, data.c_str()); -} -void wiLua::SSetBool(lua_State* L, bool data) -{ - lua_pushboolean(L, static_cast(data)); -} -void wiLua::SSetPointer(lua_State* L, void* data) -{ - lua_pushlightuserdata(L, data); -} -void wiLua::SSetNull(lua_State* L) -{ - lua_pushnil(L); -} - -void wiLua::SError(lua_State* L, const std::string& error) -{ - //retrieve line number for error info - lua_Debug ar; - lua_getstack(L, 1, &ar); - lua_getinfo(L, "nSl", &ar); - int line = ar.currentline; - - stringstream ss(""); - ss << WILUA_ERROR_PREFIX <<"Line "<(SGetLongLong(L, stackpos)); + } + long SGetLong(lua_State* L, int stackpos) + { + return static_cast(SGetLongLong(L, stackpos)); + } + long long SGetLongLong(lua_State* L, int stackpos) + { + return lua_tointeger(L, stackpos); + } + float SGetFloat(lua_State* L, int stackpos) + { + return static_cast(SGetDouble(L, stackpos)); + } + XMFLOAT2 SGetFloat2(lua_State* L, int stackpos) + { + return XMFLOAT2(SGetFloat(L, stackpos), SGetFloat(L, stackpos + 1)); + } + XMFLOAT3 SGetFloat3(lua_State* L, int stackpos) + { + return XMFLOAT3(SGetFloat(L, stackpos), SGetFloat(L, stackpos + 1), SGetFloat(L, stackpos + 2)); + } + XMFLOAT4 SGetFloat4(lua_State* L, int stackpos) + { + return XMFLOAT4(SGetFloat(L, stackpos), SGetFloat(L, stackpos + 1), SGetFloat(L, stackpos + 2), SGetFloat(L, stackpos + 3)); + } + double SGetDouble(lua_State* L, int stackpos) + { + return lua_tonumber(L, stackpos); + } + bool SGetBool(lua_State* L, int stackpos) + { + return lua_toboolean(L, stackpos) != 0; + } + int SGetArgCount(lua_State* L) + { + return lua_gettop(L); + } + void* SGetUserData(lua_State* L) + { + return lua_touserdata(L, 1); + } + + void SSetInt(lua_State* L, int data) + { + lua_pushinteger(L, (lua_Integer)data); + } + void SSetLong(lua_State* L, long data) + { + lua_pushinteger(L, (lua_Integer)data); + } + void SSetLongLong(lua_State* L, long long data) + { + lua_pushinteger(L, (lua_Integer)data); + } + void SSetFloat(lua_State* L, float data) + { + lua_pushnumber(L, (lua_Number)data); + } + void SSetFloat2(lua_State* L, const XMFLOAT2& data) + { + SSetFloat(L, data.x); + SSetFloat(L, data.y); + } + void SSetFloat3(lua_State* L, const XMFLOAT3& data) + { + SSetFloat(L, data.x); + SSetFloat(L, data.y); + SSetFloat(L, data.z); + } + void SSetFloat4(lua_State* L, const XMFLOAT4& data) + { + SSetFloat(L, data.x); + SSetFloat(L, data.y); + SSetFloat(L, data.z); + SSetFloat(L, data.w); + } + void SSetDouble(lua_State* L, double data) + { + lua_pushnumber(L, (lua_Number)data); + } + void SSetString(lua_State* L, const std::string& data) + { + lua_pushstring(L, data.c_str()); + } + void SSetBool(lua_State* L, bool data) + { + lua_pushboolean(L, static_cast(data)); + } + void SSetPointer(lua_State* L, void* data) + { + lua_pushlightuserdata(L, data); + } + void SSetNull(lua_State* L) + { + lua_pushnil(L); + } + + void SError(lua_State* L, const std::string& error) + { + //retrieve line number for error info + lua_Debug ar; + lua_getstack(L, 1, &ar); + lua_getinfo(L, "nSl", &ar); + int line = ar.currentline; + + stringstream ss(""); + ss << WILUA_ERROR_PREFIX << "Line " << line << ": "; + if (!error.empty()) + { + ss << error; + } + wiBackLog::post(ss.str().c_str()); + } + + void SAddMetatable(lua_State* L, const std::string& name) + { + luaL_newmetatable(L, name.c_str()); } - wiBackLog::post(ss.str().c_str()); -} -void wiLua::SAddMetatable(lua_State* L, const std::string& name) -{ - luaL_newmetatable(L, name.c_str()); } diff --git a/WickedEngine/wiLua.h b/WickedEngine/wiLua.h index 7c950f5fc..363ea611b 100644 --- a/WickedEngine/wiLua.h +++ b/WickedEngine/wiLua.h @@ -1,6 +1,8 @@ #pragma once #include "CommonInclude.h" +#include + extern "C" { #include "LUA/lua.h" @@ -8,28 +10,13 @@ extern "C" #include "LUA/lauxlib.h" } -#include +typedef int(*lua_CFunction) (lua_State* L); -typedef int(*lua_CFunction) (lua_State *L); - -class wiLua +namespace wiLua { -private: - lua_State *m_luaState; - int m_status; //last call status + void Initialize(); - std::mutex lock; - - //run the previously loaded script - bool RunScript(); -public: - wiLua(); - ~wiLua(); - - inline lua_State* GetLuaState(){ return m_luaState; } - - //get global lua script manager - static wiLua* GetGlobal(); + lua_State* GetLuaState(); //check if the last call succeeded bool Success(); @@ -75,66 +62,66 @@ public: //kill every running background task (coroutine) void KillProcesses(); - //Static function wrappers from here on + //Following functions are "static", operating on specified lua state: //get string from lua on stack position - static std::string SGetString(lua_State* L, int stackpos); + std::string SGetString(lua_State* L, int stackpos); //check if a value is string on the stack position - static bool SIsString(lua_State* L, int stackpos); + bool SIsString(lua_State* L, int stackpos); //check if a value is number on the stack position - static bool SIsNumber(lua_State* L, int stackpos); + bool SIsNumber(lua_State* L, int stackpos); //get int from lua on stack position - static int SGetInt(lua_State* L, int stackpos); + int SGetInt(lua_State* L, int stackpos); //get long from lua on stack position - static long SGetLong(lua_State* L, int stackpos); + long SGetLong(lua_State* L, int stackpos); //get long long from lua on stack position - static long long SGetLongLong(lua_State* L, int stackpos); + long long SGetLongLong(lua_State* L, int stackpos); //get float from lua on stack position - static float SGetFloat(lua_State* L, int stackpos); + float SGetFloat(lua_State* L, int stackpos); //get float2 from lua on stack position - static XMFLOAT2 SGetFloat2(lua_State* L, int stackpos); + XMFLOAT2 SGetFloat2(lua_State* L, int stackpos); //get float3 from lua on stack position - static XMFLOAT3 SGetFloat3(lua_State* L, int stackpos); + XMFLOAT3 SGetFloat3(lua_State* L, int stackpos); //get float4 from lua on stack position - static XMFLOAT4 SGetFloat4(lua_State* L, int stackpos); + XMFLOAT4 SGetFloat4(lua_State* L, int stackpos); //get double from lua on stack position - static double SGetDouble(lua_State* L, int stackpos); + double SGetDouble(lua_State* L, int stackpos); //get bool from lua on stack position - static bool SGetBool(lua_State* L, int stackpos); + bool SGetBool(lua_State* L, int stackpos); //get number of elements in the stack, or index of the top element - static int SGetArgCount(lua_State* L); + int SGetArgCount(lua_State* L); //get class context information - static void* SGetUserData(lua_State* L); + void* SGetUserData(lua_State* L); //push int to lua stack - static void SSetInt(lua_State* L, int data); + void SSetInt(lua_State* L, int data); //push long to lua stack - static void SSetLong(lua_State* L, long data); + void SSetLong(lua_State* L, long data); //push long long to lua stack - static void SSetLongLong(lua_State* L, long long data); + void SSetLongLong(lua_State* L, long long data); //push float to lua stack - static void SSetFloat(lua_State* L, float data); + void SSetFloat(lua_State* L, float data); //push float2 to lua stack - static void SSetFloat2(lua_State* L, const XMFLOAT2& data); + void SSetFloat2(lua_State* L, const XMFLOAT2& data); //push float3 to lua stack - static void SSetFloat3(lua_State* L, const XMFLOAT3& data); + void SSetFloat3(lua_State* L, const XMFLOAT3& data); //push float4 to lua stack - static void SSetFloat4(lua_State* L, const XMFLOAT4& data); + void SSetFloat4(lua_State* L, const XMFLOAT4& data); //push double to lua stack - static void SSetDouble(lua_State* L, double data); + void SSetDouble(lua_State* L, double data); //push string to lua stack - static void SSetString(lua_State* L, const std::string& data); + void SSetString(lua_State* L, const std::string& data); //push bool to lua stack - static void SSetBool(lua_State* L, bool data); + void SSetBool(lua_State* L, bool data); //push pointer (light userdata) to lua stack - static void SSetPointer(lua_State* L, void* data); + void SSetPointer(lua_State* L, void* data); //push null to lua stack - static void SSetNull(lua_State* L); + void SSetNull(lua_State* L); //throw error - static void SError(lua_State* L, const std::string& error = ""); + void SError(lua_State* L, const std::string& error = ""); //add new metatable - static void SAddMetatable(lua_State* L, const std::string& name); + void SAddMetatable(lua_State* L, const std::string& name); }; diff --git a/WickedEngine/wiNetwork_BindLua.cpp b/WickedEngine/wiNetwork_BindLua.cpp index 651d1d429..db36c652e 100644 --- a/WickedEngine/wiNetwork_BindLua.cpp +++ b/WickedEngine/wiNetwork_BindLua.cpp @@ -19,9 +19,9 @@ void wiNetwork_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); - wiLua::GetGlobal()->RunText("network = Network()"); + wiLua::RunText("network = Network()"); } } diff --git a/WickedEngine/wiRenderer_BindLua.cpp b/WickedEngine/wiRenderer_BindLua.cpp index 57ffe2020..79b51cb42 100644 --- a/WickedEngine/wiRenderer_BindLua.cpp +++ b/WickedEngine/wiRenderer_BindLua.cpp @@ -411,46 +411,46 @@ namespace wiRenderer_BindLua { initialized = true; - wiLua::GetGlobal()->RegisterFunc("SetResolutionScale", SetResolutionScale); - wiLua::GetGlobal()->RegisterFunc("SetGamma", SetGamma); - wiLua::GetGlobal()->RegisterFunc("SetGameSpeed", SetGameSpeed); - wiLua::GetGlobal()->RegisterFunc("GetGameSpeed", GetGameSpeed); + wiLua::RegisterFunc("SetResolutionScale", SetResolutionScale); + wiLua::RegisterFunc("SetGamma", SetGamma); + wiLua::RegisterFunc("SetGameSpeed", SetGameSpeed); + wiLua::RegisterFunc("GetGameSpeed", GetGameSpeed); - wiLua::GetGlobal()->RegisterFunc("GetScreenWidth", GetScreenWidth); - wiLua::GetGlobal()->RegisterFunc("GetScreenHeight", GetScreenHeight); + wiLua::RegisterFunc("GetScreenWidth", GetScreenWidth); + wiLua::RegisterFunc("GetScreenHeight", GetScreenHeight); - wiLua::GetGlobal()->RegisterFunc("GetCamera", GetCamera); - wiLua::GetGlobal()->RegisterFunc("AttachCamera", AttachCamera); + wiLua::RegisterFunc("GetCamera", GetCamera); + wiLua::RegisterFunc("AttachCamera", AttachCamera); - wiLua::GetGlobal()->RegisterFunc("SetAlphaCompositionEnabled", SetAlphaCompositionEnabled); - wiLua::GetGlobal()->RegisterFunc("SetShadowProps2D", SetShadowProps2D); - wiLua::GetGlobal()->RegisterFunc("SetShadowPropsCube", SetShadowPropsCube); - wiLua::GetGlobal()->RegisterFunc("SetDebugBoxesEnabled", SetDebugBoxesEnabled); - wiLua::GetGlobal()->RegisterFunc("SetDebugPartitionTreeEnabled", SetDebugPartitionTreeEnabled); - wiLua::GetGlobal()->RegisterFunc("SetDebugBonesEnabled", SetDebugBonesEnabled); - wiLua::GetGlobal()->RegisterFunc("SetDebugEmittersEnabled", SetDebugEmittersEnabled); - wiLua::GetGlobal()->RegisterFunc("SetDebugForceFieldsEnabled", SetDebugForceFieldsEnabled); - wiLua::GetGlobal()->RegisterFunc("SetVSyncEnabled", SetVSyncEnabled); - wiLua::GetGlobal()->RegisterFunc("SetResolution", SetResolution); - wiLua::GetGlobal()->RegisterFunc("SetDebugLightCulling", SetDebugLightCulling); - wiLua::GetGlobal()->RegisterFunc("SetOcclusionCullingEnabled", SetOcclusionCullingEnabled); + wiLua::RegisterFunc("SetAlphaCompositionEnabled", SetAlphaCompositionEnabled); + wiLua::RegisterFunc("SetShadowProps2D", SetShadowProps2D); + wiLua::RegisterFunc("SetShadowPropsCube", SetShadowPropsCube); + wiLua::RegisterFunc("SetDebugBoxesEnabled", SetDebugBoxesEnabled); + wiLua::RegisterFunc("SetDebugPartitionTreeEnabled", SetDebugPartitionTreeEnabled); + wiLua::RegisterFunc("SetDebugBonesEnabled", SetDebugBonesEnabled); + wiLua::RegisterFunc("SetDebugEmittersEnabled", SetDebugEmittersEnabled); + wiLua::RegisterFunc("SetDebugForceFieldsEnabled", SetDebugForceFieldsEnabled); + wiLua::RegisterFunc("SetVSyncEnabled", SetVSyncEnabled); + wiLua::RegisterFunc("SetResolution", SetResolution); + wiLua::RegisterFunc("SetDebugLightCulling", SetDebugLightCulling); + wiLua::RegisterFunc("SetOcclusionCullingEnabled", SetOcclusionCullingEnabled); - wiLua::GetGlobal()->RegisterFunc("DrawLine", DrawLine); - wiLua::GetGlobal()->RegisterFunc("DrawPoint", DrawPoint); - wiLua::GetGlobal()->RegisterFunc("DrawBox", DrawBox); - wiLua::GetGlobal()->RegisterFunc("DrawSphere", DrawSphere); - wiLua::GetGlobal()->RegisterFunc("DrawCapsule", DrawCapsule); - wiLua::GetGlobal()->RegisterFunc("PutWaterRipple", PutWaterRipple); + wiLua::RegisterFunc("DrawLine", DrawLine); + wiLua::RegisterFunc("DrawPoint", DrawPoint); + wiLua::RegisterFunc("DrawBox", DrawBox); + wiLua::RegisterFunc("DrawSphere", DrawSphere); + wiLua::RegisterFunc("DrawCapsule", DrawCapsule); + wiLua::RegisterFunc("PutWaterRipple", PutWaterRipple); - wiLua::GetGlobal()->RunText("PICK_VOID = 0"); - wiLua::GetGlobal()->RunText("PICK_OPAQUE = 1"); - wiLua::GetGlobal()->RunText("PICK_TRANSPARENT = 2"); - wiLua::GetGlobal()->RunText("PICK_WATER = 4"); + wiLua::RunText("PICK_VOID = 0"); + wiLua::RunText("PICK_OPAQUE = 1"); + wiLua::RunText("PICK_TRANSPARENT = 2"); + wiLua::RunText("PICK_WATER = 4"); - wiLua::GetGlobal()->RegisterFunc("ClearWorld", ClearWorld); - wiLua::GetGlobal()->RegisterFunc("ReloadShaders", ReloadShaders); + wiLua::RegisterFunc("ClearWorld", ClearWorld); + wiLua::RegisterFunc("ReloadShaders", ReloadShaders); } } }; diff --git a/WickedEngine/wiScene_BindLua.cpp b/WickedEngine/wiScene_BindLua.cpp index 28fb8a48f..b34b11481 100644 --- a/WickedEngine/wiScene_BindLua.cpp +++ b/WickedEngine/wiScene_BindLua.cpp @@ -247,29 +247,29 @@ void Bind() { initialized = true; - lua_State* L = wiLua::GetGlobal()->GetLuaState(); + lua_State* L = wiLua::GetLuaState(); - wiLua::GetGlobal()->RegisterFunc("CreateEntity", CreateEntity_BindLua); - wiLua::GetGlobal()->RunText("INVALID_ENTITY = 0"); + wiLua::RegisterFunc("CreateEntity", CreateEntity_BindLua); + wiLua::RunText("INVALID_ENTITY = 0"); - wiLua::GetGlobal()->RunText("DIRECTIONAL = 0"); - wiLua::GetGlobal()->RunText("POINT = 1"); - wiLua::GetGlobal()->RunText("SPOT = 2"); - wiLua::GetGlobal()->RunText("SPHERE = 3"); - wiLua::GetGlobal()->RunText("DISC = 4"); - wiLua::GetGlobal()->RunText("RECTANGLE = 5"); - wiLua::GetGlobal()->RunText("TUBE = 6"); + wiLua::RunText("DIRECTIONAL = 0"); + wiLua::RunText("POINT = 1"); + wiLua::RunText("SPOT = 2"); + wiLua::RunText("SPHERE = 3"); + wiLua::RunText("DISC = 4"); + wiLua::RunText("RECTANGLE = 5"); + wiLua::RunText("TUBE = 6"); - wiLua::GetGlobal()->RunText("STENCILREF_EMPTY = 0"); - wiLua::GetGlobal()->RunText("STENCILREF_SKY = 1"); - wiLua::GetGlobal()->RunText("STENCILREF_DEFAULT = 2"); - wiLua::GetGlobal()->RunText("STENCILREF_SKIN = 3"); + wiLua::RunText("STENCILREF_EMPTY = 0"); + wiLua::RunText("STENCILREF_SKY = 1"); + wiLua::RunText("STENCILREF_DEFAULT = 2"); + wiLua::RunText("STENCILREF_SKIN = 3"); - wiLua::GetGlobal()->RegisterFunc("GetScene", GetScene); - wiLua::GetGlobal()->RegisterFunc("LoadModel", LoadModel); - wiLua::GetGlobal()->RegisterFunc("Pick", Pick); - wiLua::GetGlobal()->RegisterFunc("SceneIntersectSphere", SceneIntersectSphere); - wiLua::GetGlobal()->RegisterFunc("SceneIntersectCapsule", SceneIntersectCapsule); + wiLua::RegisterFunc("GetScene", GetScene); + wiLua::RegisterFunc("LoadModel", LoadModel); + wiLua::RegisterFunc("Pick", Pick); + wiLua::RegisterFunc("SceneIntersectSphere", SceneIntersectSphere); + wiLua::RegisterFunc("SceneIntersectCapsule", SceneIntersectCapsule); Luna::Register(L); Luna::Register(L); diff --git a/WickedEngine/wiSpriteFont_BindLua.cpp b/WickedEngine/wiSpriteFont_BindLua.cpp index 8200b991c..e1ac1be36 100644 --- a/WickedEngine/wiSpriteFont_BindLua.cpp +++ b/WickedEngine/wiSpriteFont_BindLua.cpp @@ -220,13 +220,13 @@ void wiSpriteFont_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); - wiLua::GetGlobal()->RunText("WIFALIGN_LEFT = 0"); - wiLua::GetGlobal()->RunText("WIFALIGN_CENTER = 1"); - wiLua::GetGlobal()->RunText("WIFALIGN_RIGHT = 2"); - wiLua::GetGlobal()->RunText("WIFALIGN_TOP = 3"); - wiLua::GetGlobal()->RunText("WIFALIGN_BOTTOM = 4"); + wiLua::RunText("WIFALIGN_LEFT = 0"); + wiLua::RunText("WIFALIGN_CENTER = 1"); + wiLua::RunText("WIFALIGN_RIGHT = 2"); + wiLua::RunText("WIFALIGN_TOP = 3"); + wiLua::RunText("WIFALIGN_BOTTOM = 4"); } } diff --git a/WickedEngine/wiSprite_BindLua.cpp b/WickedEngine/wiSprite_BindLua.cpp index fcb8b3e26..027182b60 100644 --- a/WickedEngine/wiSprite_BindLua.cpp +++ b/WickedEngine/wiSprite_BindLua.cpp @@ -88,7 +88,7 @@ void wiSprite_BindLua::Bind() if (!initialized) { initialized = true; - Luna::Register(wiLua::GetGlobal()->GetLuaState()); + Luna::Register(wiLua::GetLuaState()); } } diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index 19813aacc..e9074d3b8 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -9,7 +9,7 @@ namespace wiVersion // minor features, major updates, breaking API changes const int minor = 45; // minor bug fixes, alterations, refactors, updates - const int revision = 2; + const int revision = 3; const std::string version_string = std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(revision);