diff options
27 files changed, 131 insertions, 74 deletions
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/GUI/IMGUI.lua b/Data/DefaultContent/Libraries/GameLab/Engine/GUI/IMGUI.lua new file mode 100644 index 0000000..f8cc33b --- /dev/null +++ b/Data/DefaultContent/Libraries/GameLab/Engine/GUI/IMGUI.lua @@ -0,0 +1,39 @@ +local Debug = GameLab.Debug
+
+local GUI = GameLab.Engine.GUI or {}
+GameLab.Engine.GUI = GUI
+
+local Event = GameLab.Events.Event
+
+local imgui = {
+ currentId = 0, -- 当前可分配的controlID
+}
+
+GUI.GetControlID = function()
+ imgui.currentId = imgui.currentId + 1
+ return imgui.currentId
+end
+
+-- 每次调用OnGUI(无论是哪个事件)都要重新调用BeginOnGUI方法进行重置
+GUI.BeginOnGUI = function()
+ imgui.currentId = 0
+end
+
+GUI.EndOnGUI = function()
+ imgui.currentId = 0
+end
+
+GUI.BeginFrame = function()
+
+end
+
+GUI.EndFrame = function()
+
+end
+
+GUI.Button = function()
+ local id = GUI.GetControlID()
+
+end
+
+return GUI
\ No newline at end of file diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/GUI/init.lua b/Data/DefaultContent/Libraries/GameLab/Engine/GUI/init.lua new file mode 100644 index 0000000..4b83ddc --- /dev/null +++ b/Data/DefaultContent/Libraries/GameLab/Engine/GUI/init.lua @@ -0,0 +1,3 @@ +local import = GameLab.import(...)
+
+import("IMGUI")
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua index f603ed5..75b550d 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua @@ -14,4 +14,8 @@ Rect.Set = function(self, rect) self.w = rect.w or rect[4]
end
+Rect.Contains = function(self, point)
+
+end
+
return Rect
\ No newline at end of file diff --git a/Data/Libraries/GameLab/Editor/GUI/IMGUI.lua b/Data/Libraries/GameLab/Editor/GUI/IMGUI.lua deleted file mode 100644 index 334b569..0000000 --- a/Data/Libraries/GameLab/Editor/GUI/IMGUI.lua +++ /dev/null @@ -1,10 +0,0 @@ -local imgui = GameLab.Editor.GUI or {}
-GameLab.Editor.GUI = imgui
-
-local Event = GameLab.Events.Event
-
-imgui.Button = function()
-
-end
-
-return imgui
\ No newline at end of file diff --git a/Data/Libraries/GameLab/Editor/GUI/init.lua b/Data/Libraries/GameLab/Editor/GUI/init.lua deleted file mode 100644 index 5507a16..0000000 --- a/Data/Libraries/GameLab/Editor/GUI/init.lua +++ /dev/null @@ -1,9 +0,0 @@ -GameLab.Editor.GUI = GameLab.Editor.GUI or {}
-local m = GameLab.Editor.GUI
-
-local import = GameLab.import(...)
-
-import("ContainerWindow")
-import("GUIWindow")
-
-return m
\ No newline at end of file diff --git a/Data/Libraries/GameLab/Editor/GUI/ContainerWindow.lua b/Data/Libraries/GameLab/Editor/Window/ContainerWindow.lua index b270110..2936101 100644 --- a/Data/Libraries/GameLab/Editor/GUI/ContainerWindow.lua +++ b/Data/Libraries/GameLab/Editor/Window/ContainerWindow.lua @@ -1,5 +1,5 @@ -local NativeContainWidow = GameLab.Editor.GUI.Internal.ContainerWindow -local ContainerWindow = GameLab.GlobalClass("GameLab.Editor.GUI.ContainerWindow") +local NativeContainWidow = GameLab.Editor.Window.Internal.ContainerWindow +local ContainerWindow = GameLab.GlobalClass("GameLab.Editor.Window.ContainerWindow") ContainerWindow.Ctor = function(self, position, showMode, min, max) self.m_Native = NativeContainWidow.New(position, showMode, min, max) diff --git a/Data/Libraries/GameLab/Editor/GUI/FontManager.lua b/Data/Libraries/GameLab/Editor/Window/FontManager.lua index e69de29..e69de29 100644 --- a/Data/Libraries/GameLab/Editor/GUI/FontManager.lua +++ b/Data/Libraries/GameLab/Editor/Window/FontManager.lua diff --git a/Data/Libraries/GameLab/Editor/GUI/GUIWindow.lua b/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua index 8165faa..cb05518 100644 --- a/Data/Libraries/GameLab/Editor/GUI/GUIWindow.lua +++ b/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua @@ -1,5 +1,5 @@ -local GUIWindow = GameLab.GlobalClass("GameLab.Editor.GUI.GUIWindow")
-local NativeGUIWindow = GameLab.Editor.GUI.Internal.GUIWindow
+local GUIWindow = GameLab.GlobalClass("GameLab.Editor.Window.GUIWindow")
+local NativeGUIWindow = GameLab.Editor.Window.Internal.GUIWindow
local inspect = require("inspect")
@@ -8,7 +8,8 @@ local GL = GameLab.Engine.GL local Math = GameLab.Engine.Math
local Rendering = GameLab.Engine.Rendering
-local Rect = Math.Rect
+local Rect = Math.Rect
+local Event = GameLab.Events.Event
local i = 0
local col = {
@@ -45,8 +46,12 @@ end GUIWindow.OnGUI = function(self)
self:ClearBackground()
-
-end
+ local event = Event.current
+
+ if self.m_SplitWindow then
+ self.m_SplitWindow:DoSplit(event)
+ end
+end
GUIWindow.GetContainerWindow = function(self)
return self.m_ContainerWindow
diff --git a/Data/Libraries/GameLab/Editor/GUI/SplitWindow.lua b/Data/Libraries/GameLab/Editor/Window/SplitWindow.lua index 214eed6..f5d410c 100644 --- a/Data/Libraries/GameLab/Editor/GUI/SplitWindow.lua +++ b/Data/Libraries/GameLab/Editor/Window/SplitWindow.lua @@ -1,13 +1,13 @@ -local Splitter = GameLab.Class("GameLab.Editor.GUI.Internal.Splitter") +local Splitter = GameLab.Class("GameLab.Editor.Window.Internal.Splitter") Splitter.Ctor = function(self) self.width = 10 end -- 抽象的窗口,用来处理布局 -local SplitWindow = GameLab.GlobalClass("GameLab.Editor.GUI.SplitWindow") +local SplitWindow = GameLab.GlobalClass("GameLab.Editor.Window.SplitWindow") -local ESplitMode = GameLab.GlobalEnum("GameLab.Editor.GUI.ESplitMode", { +local ESplitMode = GameLab.GlobalEnum("GameLab.Editor.Window.ESplitMode", { "Vertical", "Horizontal" }) @@ -20,8 +20,8 @@ SplitWindow.Ctor = function(self) self.m_SubSplit = {} -- 子节点也是split windows end -SplitWindow.DoSplit = function(self) - +SplitWindow.DoSplit = function(self, event) + end -- 返回guiWnd diff --git a/Data/Libraries/GameLab/Editor/Window/init.lua b/Data/Libraries/GameLab/Editor/Window/init.lua new file mode 100644 index 0000000..07f2a92 --- /dev/null +++ b/Data/Libraries/GameLab/Editor/Window/init.lua @@ -0,0 +1,9 @@ +GameLab.Editor.Window = GameLab.Editor.Window or {}
+local m = GameLab.Editor.Window
+
+local import = GameLab.import(...)
+
+import("ContainerWindow")
+import("GUIWindow")
+
+return m
\ No newline at end of file diff --git a/Data/Scripts/EditorApplication.lua b/Data/Scripts/EditorApplication.lua index 9e2b632..4c4a708 100644 --- a/Data/Scripts/EditorApplication.lua +++ b/Data/Scripts/EditorApplication.lua @@ -8,7 +8,7 @@ local Engine = GameLab.Engine local Resource = GameLab.Engine.Resource local Rendering = GameLab.Engine.Rendering local Debug = GameLab.Debug -local GUI = GameLab.Editor.GUI +local GUI = GameLab.Editor.Window local GL = GameLab.Engine.GL local app = GameLab.Editor.EditorApplication.New() diff --git a/Data/Scripts/EditorGUI/EditorWindowManager.lua b/Data/Scripts/EditorGUI/EditorWindowManager.lua index 693cb9e..27dd16d 100644 --- a/Data/Scripts/EditorGUI/EditorWindowManager.lua +++ b/Data/Scripts/EditorGUI/EditorWindowManager.lua @@ -1,6 +1,6 @@ -local ContainerWindow = require("GameLab.Editor.GUI.ContainerWindow")
-local GUIWindow = require("GameLab.Editor.GUI.GUIWindow")
-local SplitWindow = require("GameLab.Editor.GUI.SplitWindow")
+local ContainerWindow = require("GameLab.Editor.Window.ContainerWindow")
+local GUIWindow = require("GameLab.Editor.Window.GUIWindow")
+local SplitWindow = require("GameLab.Editor.Window.SplitWindow")
local EditorWindowManager = {}
diff --git a/Data/boot.lua b/Data/boot.lua index 6f583bc..bb95b16 100644 --- a/Data/boot.lua +++ b/Data/boot.lua @@ -26,12 +26,13 @@ end require "GameLab"
require "GameLab.Events"
require "GameLab.Engine"
+require "GameLab.Engine.GUI"
require "GameLab.Engine.Math"
require "GameLab.Engine.Rendering"
require "GameLab.Engine.Resource"
require "GameLab.Engine.GL"
require "GameLab.Editor"
-require "GameLab.Editor.GUI"
+require "GameLab.Editor.Window"
-- debugging
require("LuaPanda").start("127.0.0.1",8818)
diff --git a/Editor/EditorGlobals.h b/Editor/EditorGlobals.h new file mode 100644 index 0000000..96786d7 --- /dev/null +++ b/Editor/EditorGlobals.h @@ -0,0 +1,3 @@ +#pragma once
+
+
diff --git a/Editor/GUI/GUIWindow.cpp b/Editor/GUI/GUIWindow.cpp index a4049c8..aaab6a8 100644 --- a/Editor/GUI/GUIWindow.cpp +++ b/Editor/GUI/GUIWindow.cpp @@ -267,11 +267,15 @@ void GUIWindow::ProcessEventMessages(UINT message, WPARAM wParam, LPARAM lParam) SCRIPT_GLOBAL.setCurrentEvent.AddTable(state, ie); SCRIPT_GLOBAL.setCurrentEvent.Invoke(state, 0); + SCRIPT_GLOBAL.guiBeginOnGUI.Invoke(state, 0); + LuaBind::MemberInvoker invoker = LuaBind::MemberInvoker(state, this); invoker.member = m_Script; invoker.method = "OnGUI"; invoker.AddMember(m_Script); invoker.Invoke(0); + + SCRIPT_GLOBAL.guiEndOnGUI.Invoke(state, 0); } bool GUIWindow::SetRenderContext() diff --git a/Editor/GUI/IMGUI/GUIButton.cpp b/Editor/GUI/IMGUI/GUIButton.cpp deleted file mode 100644 index e69de29..0000000 --- a/Editor/GUI/IMGUI/GUIButton.cpp +++ /dev/null diff --git a/Editor/Scripting/EditorScripting.cpp b/Editor/Scripting/EditorScripting.cpp index c8cfbbb..244dd78 100644 --- a/Editor/Scripting/EditorScripting.cpp +++ b/Editor/Scripting/EditorScripting.cpp @@ -17,9 +17,7 @@ extern int luaopen_GameLab_Engine_Resource(lua_State* L); // GameLab.Engine.Reso extern int luaopen_GameLab_Engine_GUI(lua_State* L); extern int luaopen_GameLab_Editor(lua_State* L); // GameLab.Editor -extern int luaopen_GameLab_Editor_GUI(lua_State* L); // GameLab.Editor.GUI -extern int luaopen_GameLab_Editor_GUILayout(lua_State* L); // GameLab.Editor.GUILayout -extern int luaopen_GameLab_Editor_IMGUI(lua_State* L); // GameLab.Editor.IMGUI +extern int luaopen_GameLab_Editor_Window(lua_State* L); // GameLab.Editor.Window extern int luaopen_GameLab_Editor_Resource(lua_State* L); // GameLab.Editor.Resource extern int luaopen_GameLab_Editor_Profiling(lua_State* L); // GameLab.Editor.Profiling extern int luaopen_GameLab_Editor_Animation(lua_State* L); // GameLab.Editor.Animation @@ -49,7 +47,7 @@ bool SetupGameLabEditorScripting(lua_State* L) openlib(luaopen_GameLab_Engine_GUI); openlib(luaopen_GameLab_Editor); - openlib(luaopen_GameLab_Editor_GUI); + openlib(luaopen_GameLab_Editor_Window); return true; } diff --git a/Editor/Scripting/EditorGUI/ContainerWindow.bind.cpp b/Editor/Scripting/Window/ContainerWindow.bind.cpp index 6c73116..6c73116 100644 --- a/Editor/Scripting/EditorGUI/ContainerWindow.bind.cpp +++ b/Editor/Scripting/Window/ContainerWindow.bind.cpp diff --git a/Editor/Scripting/EditorGUI/EditorGUI.bind.cpp b/Editor/Scripting/Window/EditorGUI.bind.cpp index ed26604..838e752 100644 --- a/Editor/Scripting/EditorGUI/EditorGUI.bind.cpp +++ b/Editor/Scripting/Window/EditorGUI.bind.cpp @@ -86,17 +86,17 @@ static luaL_Reg guiFuncs[] = { {0, 0} }; -// GameLab.Editor.GUI -int luaopen_GameLab_Editor_GUI(lua_State* L) +// GameLab.Editor.Window +int luaopen_GameLab_Editor_Window(lua_State* L) { - log_info_tag("Scripting", "luaopen_GameLab_Editor_GUI()"); + log_info_tag("Scripting", "luaopen_GameLab_Editor_Window()"); LUA_BIND_STATE(L); state.PushGlobalNamespace(); state.PushNamespace("GameLab"); state.PushNamespace("Editor"); - state.PushNamespace("GUI"); + state.PushNamespace("Window"); state.PushNamespace("Internal"); state.RegisterNativeClass<ContainerWindow>(); diff --git a/Editor/Scripting/EditorGUI/GUIWindow.bind.cpp b/Editor/Scripting/Window/GUIWindow.bind.cpp index 212cb50..604c26a 100644 --- a/Editor/Scripting/EditorGUI/GUIWindow.bind.cpp +++ b/Editor/Scripting/Window/GUIWindow.bind.cpp @@ -24,7 +24,7 @@ LUA_BIND_IMPL_METHOD(GUIWindow, _New) GUIWindow* wnd = new GUIWindow(state.GetVM()); - if (LuaHelper::IsType(state, "GameLab.Editor.GUI.GUIWindow", -1)) + if (LuaHelper::IsType(state, "GameLab.Editor.Window.GUIWindow", -1)) wnd->SetMemberRef(state, wnd->m_Script, -1); wnd->PushUserdata(state); diff --git a/Editor/Scripting/EditorGUI/SplitWindow.bind.cpp b/Editor/Scripting/Window/SplitWindow.bind.cpp index e69de29..e69de29 100644 --- a/Editor/Scripting/EditorGUI/SplitWindow.bind.cpp +++ b/Editor/Scripting/Window/SplitWindow.bind.cpp diff --git a/Projects/VisualStudio/Editor/Editor.vcxproj b/Projects/VisualStudio/Editor/Editor.vcxproj index aaaf748..7fab991 100644 --- a/Projects/VisualStudio/Editor/Editor.vcxproj +++ b/Projects/VisualStudio/Editor/Editor.vcxproj @@ -153,7 +153,6 @@ <ClCompile Include="..\..\..\Editor\Graphics\Graphics.cpp" />
<ClCompile Include="..\..\..\Editor\GUI\ContainerWindow.cpp" />
<ClCompile Include="..\..\..\Editor\GUI\Dock.cpp" />
- <ClCompile Include="..\..\..\Editor\GUI\IMGUI\GUIButton.cpp" />
<ClCompile Include="..\..\..\Editor\GUI\MainWindow.cpp" />
<ClCompile Include="..\..\..\Editor\GUI\WindowManager.cpp" />
<ClCompile Include="..\..\..\Editor\GUI\GUIWindow.cpp" />
@@ -162,15 +161,15 @@ <ClCompile Include="..\..\..\Editor\GUI\WindowUtil.cpp" />
<ClCompile Include="..\..\..\Editor\GUI\WinUtils.cpp" />
<ClCompile Include="..\..\..\Editor\Resource\ResourceManager.cpp" />
- <ClCompile Include="..\..\..\Editor\Scripting\EditorGUI\ContainerWindow.bind.cpp" />
- <ClCompile Include="..\..\..\Editor\Scripting\EditorGUI\EditorGUI.bind.cpp" />
- <ClCompile Include="..\..\..\Editor\Scripting\EditorGUI\GUIWindow.bind.cpp" />
- <ClCompile Include="..\..\..\Editor\Scripting\EditorGUI\SplitWindow.bind.cpp" />
<ClCompile Include="..\..\..\Editor\Scripting\EditorScripting.cpp" />
<ClCompile Include="..\..\..\Editor\Scripting\Editor\Editor.bind.cpp" />
<ClCompile Include="..\..\..\Editor\Scripting\Editor\EditorApplication.bind.cpp" />
<ClCompile Include="..\..\..\Editor\Scripting\IMGUI\GUIButton.bind.cpp" />
<ClCompile Include="..\..\..\Editor\Scripting\EditorScriptingManager.cpp" />
+ <ClCompile Include="..\..\..\Editor\Scripting\Window\ContainerWindow.bind.cpp" />
+ <ClCompile Include="..\..\..\Editor\Scripting\Window\EditorGUI.bind.cpp" />
+ <ClCompile Include="..\..\..\Editor\Scripting\Window\GUIWindow.bind.cpp" />
+ <ClCompile Include="..\..\..\Editor\Scripting\Window\SplitWindow.bind.cpp" />
<ClCompile Include="..\..\..\Editor\Shaders\BuiltinShaders.cpp" />
<ClCompile Include="..\..\..\Editor\Utils\EditorUtils.cpp" />
<ClCompile Include="..\..\..\Editor\Utils\HelperFuncs.cpp" />
@@ -251,6 +250,7 @@ </ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\Editor\EditorApplication.h" />
+ <ClInclude Include="..\..\..\Editor\EditorGlobals.h" />
<ClInclude Include="..\..\..\Editor\EditorManager.h" />
<ClInclude Include="..\..\..\Editor\FileSystem\FileWatcher.h" />
<ClInclude Include="..\..\..\Editor\Graphics\Graphics.h" />
diff --git a/Projects/VisualStudio/Editor/Editor.vcxproj.filters b/Projects/VisualStudio/Editor/Editor.vcxproj.filters index fafbf97..a9af0ec 100644 --- a/Projects/VisualStudio/Editor/Editor.vcxproj.filters +++ b/Projects/VisualStudio/Editor/Editor.vcxproj.filters @@ -28,12 +28,6 @@ <Filter Include="Editor\Resource">
<UniqueIdentifier>{5b8dba28-42d0-450a-98e1-ca4a65a4fc76}</UniqueIdentifier>
</Filter>
- <Filter Include="Editor\Scripting\EditorGUI">
- <UniqueIdentifier>{848489fc-f661-4b10-91f5-db1687293b95}</UniqueIdentifier>
- </Filter>
- <Filter Include="Editor\Scripting\EditorGUILayout">
- <UniqueIdentifier>{87edd159-c171-4ccb-9094-9e5061c980d0}</UniqueIdentifier>
- </Filter>
<Filter Include="Editor\Scripting\Resource">
<UniqueIdentifier>{476cedf1-fc4a-48a5-8782-bed16dabb86e}</UniqueIdentifier>
</Filter>
@@ -76,9 +70,6 @@ <Filter Include="Runtime\FileSystem">
<UniqueIdentifier>{78c0524a-9039-474a-9a2e-fa243e84d60e}</UniqueIdentifier>
</Filter>
- <Filter Include="Editor\GUI\IMGUI">
- <UniqueIdentifier>{47032dd6-dca2-478f-b594-d08c0b22e119}</UniqueIdentifier>
- </Filter>
<Filter Include="Runtime\Profiling">
<UniqueIdentifier>{dbc5b9a8-4107-4324-aa71-e6a9a7b6d23d}</UniqueIdentifier>
</Filter>
@@ -118,6 +109,9 @@ <Filter Include="Runtime\Events">
<UniqueIdentifier>{ebaa23ba-fd66-4554-8a90-959097e25cf3}</UniqueIdentifier>
</Filter>
+ <Filter Include="Editor\Scripting\Window">
+ <UniqueIdentifier>{848489fc-f661-4b10-91f5-db1687293b95}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\Editor\GUI\Dock.cpp">
@@ -159,21 +153,9 @@ <ClCompile Include="..\..\..\Editor\Resource\ResourceManager.cpp">
<Filter>Editor\Resource</Filter>
</ClCompile>
- <ClCompile Include="..\..\..\Editor\Scripting\EditorGUI\EditorGUI.bind.cpp">
- <Filter>Editor\Scripting\EditorGUI</Filter>
- </ClCompile>
<ClCompile Include="..\..\..\Editor\Scripting\EditorScripting.cpp">
<Filter>Editor\Scripting</Filter>
</ClCompile>
- <ClCompile Include="..\..\..\Editor\Scripting\EditorGUI\ContainerWindow.bind.cpp">
- <Filter>Editor\Scripting\EditorGUI</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\Editor\Scripting\EditorGUI\GUIWindow.bind.cpp">
- <Filter>Editor\Scripting\EditorGUI</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\Editor\Scripting\EditorGUI\SplitWindow.bind.cpp">
- <Filter>Editor\Scripting\EditorGUI</Filter>
- </ClCompile>
<ClCompile Include="..\..\..\Editor\Scripting\IMGUI\GUIButton.bind.cpp">
<Filter>Editor\Scripting\IMGUI</Filter>
</ClCompile>
@@ -243,9 +225,6 @@ <ClCompile Include="..\..\..\Editor\GUI\ContainerWindow.cpp">
<Filter>Editor\GUI</Filter>
</ClCompile>
- <ClCompile Include="..\..\..\Editor\GUI\IMGUI\GUIButton.cpp">
- <Filter>Editor\GUI\IMGUI</Filter>
- </ClCompile>
<ClCompile Include="..\..\..\Runtime\Graphics\Shader.cpp">
<Filter>Runtime\Graphics</Filter>
</ClCompile>
@@ -424,6 +403,18 @@ <ClCompile Include="..\..\..\Editor\Scripting\EditorScriptingManager.cpp">
<Filter>Editor\Scripting</Filter>
</ClCompile>
+ <ClCompile Include="..\..\..\Editor\Scripting\Window\ContainerWindow.bind.cpp">
+ <Filter>Editor\Scripting\Window</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\Editor\Scripting\Window\EditorGUI.bind.cpp">
+ <Filter>Editor\Scripting\Window</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\Editor\Scripting\Window\GUIWindow.bind.cpp">
+ <Filter>Editor\Scripting\Window</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\Editor\Scripting\Window\SplitWindow.bind.cpp">
+ <Filter>Editor\Scripting\Window</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\Editor\GUI\Dock.h">
@@ -762,6 +753,9 @@ <ClInclude Include="..\..\..\Editor\Scripting\EditorScriptingManager.h">
<Filter>Editor\Scripting</Filter>
</ClInclude>
+ <ClInclude Include="..\..\..\Editor\EditorGlobals.h">
+ <Filter>Editor\Scripting</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\Runtime\Lua\LuaBind\LuaBindClass.inc">
diff --git a/Runtime/Events/InputEvent.cpp b/Runtime/Events/InputEvent.cpp index c5994ef..07d8778 100644 --- a/Runtime/Events/InputEvent.cpp +++ b/Runtime/Events/InputEvent.cpp @@ -249,6 +249,10 @@ void InputEvent::CastToTable(LuaBind::State& state) const lua_pushnumber(state, type); lua_setfield(state, table, "type"); + // "used" + lua_pushboolean(state, use); + lua_setfield(state, table, "use"); + // "mousePosition" state.PushLuaObject(mousePosition); lua_setfield(state, table, "mousePosition"); diff --git a/Runtime/Lua/LuaBind/LuaBindInvoker.cpp b/Runtime/Lua/LuaBind/LuaBindInvoker.cpp index d6780d7..90ab078 100644 --- a/Runtime/Lua/LuaBind/LuaBindInvoker.cpp +++ b/Runtime/Lua/LuaBind/LuaBindInvoker.cpp @@ -106,6 +106,8 @@ namespace LuaBind lua_replace(state, -2); lua_insert(state, -1 - argc); state.Call(argc, nReturns); + + argc = 0; } }
\ No newline at end of file diff --git a/Runtime/Scripting/RuntimeScriptGlobals.cpp b/Runtime/Scripting/RuntimeScriptGlobals.cpp index 5f140a1..bb3139c 100644 --- a/Runtime/Scripting/RuntimeScriptGlobals.cpp +++ b/Runtime/Scripting/RuntimeScriptGlobals.cpp @@ -6,5 +6,10 @@ namespace Scripting void FillRuntimeScriptGlobals(RuntimeScriptGlobals& globals)
{
globals.setCurrentEvent = "GameLab.Events.Event.SetCurrentEvent";
+
+ globals.guiBeginFrame = "GameLab.Engine.GUI.BeginFrame";
+ globals.guiEndFrame = "GameLab.Engine.GUI.EndFrame";
+ globals.guiBeginOnGUI = "GameLab.Engine.GUI.BeginOnGUI";
+ globals.guiEndOnGUI = "GameLab.Engine.GUI.EndOnGUI";
}
}
\ No newline at end of file diff --git a/Runtime/Scripting/RuntimeScriptGlobals.h b/Runtime/Scripting/RuntimeScriptGlobals.h index 76448a9..e6e6347 100644 --- a/Runtime/Scripting/RuntimeScriptGlobals.h +++ b/Runtime/Scripting/RuntimeScriptGlobals.h @@ -13,6 +13,11 @@ struct RuntimeScriptGlobals { DECL_LUA_FUNC(setCurrentEvent); + + DECL_LUA_FUNC(guiBeginFrame); + DECL_LUA_FUNC(guiEndFrame); + DECL_LUA_FUNC(guiBeginOnGUI); + DECL_LUA_FUNC(guiEndOnGUI); }; namespace Scripting |