diff options
author | chai <chaifix@163.com> | 2021-10-25 23:29:21 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-10-25 23:29:21 +0800 |
commit | 7ecf913256fb396e3027aac3318d996a716a52ef (patch) | |
tree | 4540835c881a63b665e2a692bf30115fd29e8bb0 /Editor | |
parent | 0816cd70ca1a213b6ed872bcf3c0bf0912473722 (diff) |
+ job system
Diffstat (limited to 'Editor')
-rw-r--r-- | Editor/EditorApplication.cpp | 4 | ||||
-rw-r--r-- | Editor/EditorApplication.h | 5 | ||||
-rw-r--r-- | Editor/EditorMain.cpp | 7 | ||||
-rw-r--r-- | Editor/GUI/EditorWindows.h | 2 | ||||
-rw-r--r-- | Editor/Scripting/Editor/EditorApplication.bind.cpp | 14 | ||||
-rw-r--r-- | Editor/Scripting/EditorScripting.cpp | 3 |
6 files changed, 30 insertions, 5 deletions
diff --git a/Editor/EditorApplication.cpp b/Editor/EditorApplication.cpp index f9a6fa0..f480e37 100644 --- a/Editor/EditorApplication.cpp +++ b/Editor/EditorApplication.cpp @@ -1,6 +1,7 @@ #include "EditorApplication.h"
#include "Runtime/Utilities/Assert.h"
#include "Editor/EditorManager.h"
+#include "Runtime/Threading/JobSystem.h"
static bool s_Created;
@@ -8,6 +9,9 @@ EditorApplication::EditorApplication(LuaBind::VM* vm) : LuaBind::NativeClass<EditorApplication>(vm)
{
Assert(!s_Created);
+
+ // 初始化jobsystem
+ JobSystem::Instance()->Initilize();
}
EditorApplication::~EditorApplication()
diff --git a/Editor/EditorApplication.h b/Editor/EditorApplication.h index 1b464e8..8c74d07 100644 --- a/Editor/EditorApplication.h +++ b/Editor/EditorApplication.h @@ -3,6 +3,7 @@ #include "Runtime/Lua/LuaBind/LuaBind.h"
#include "Editor/GUI/EditorWindows.h"
#include "Editor/GUI/MenuManager.h"
+#include "Runtime/Threading/Thread.h"
using namespace LuaBind;
@@ -25,6 +26,6 @@ private : LUA_BIND_DECL_METHOD(_New);
LUA_BIND_DECL_METHOD(_SetMainWindow);
LUA_BIND_DECL_METHOD(_PullMessage);
+ LUA_BIND_DECL_METHOD(_OnStep);
-
-};
+};
\ No newline at end of file diff --git a/Editor/EditorMain.cpp b/Editor/EditorMain.cpp index 555867a..5f16d63 100644 --- a/Editor/EditorMain.cpp +++ b/Editor/EditorMain.cpp @@ -7,6 +7,7 @@ #include "Runtime/Graphics/OpenGL.h"
#include "Editor/Scripting/EditorScripting.h"
#include "Editor/Win/Win.h"
+#include "Runtime/Threading/Thread.h"
using namespace LuaBind;
@@ -21,6 +22,7 @@ void InitLuaState(LuaBind::VM& vm) vm.OpenLibs();
LuaBind::onRegisterNativeClass = LuaHelper::OnRegisterNativeClass;
+ LuaBind::onErrorOccured = ErrorHandle;
if (!SetupGameLabEditorScripting(vm.GetMainThread()))
{
@@ -33,7 +35,7 @@ void InitLuaState(LuaBind::VM& vm) Win::SetDllSearchDirectory(workingDir);
LuaBind::State state = vm.GetMainState();
- state.DoFile("./boot.lua", ErrorHandle);
+ state.DoFile("./boot.lua");
}
#ifdef GAMELAB_DEBUG
@@ -42,6 +44,9 @@ int main() int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) #endif {
+ WorkThread thread;
+ thread.Resume();
+
WindowUtil::RegisterClasses();
LuaBind::VM vm;
diff --git a/Editor/GUI/EditorWindows.h b/Editor/GUI/EditorWindows.h index a7091dd..3e0471a 100644 --- a/Editor/GUI/EditorWindows.h +++ b/Editor/GUI/EditorWindows.h @@ -162,6 +162,8 @@ private: HDC m_DC; HGLRC m_RC; + std::vector<LuaBind::MemberRef> m_EditorWindows; + LuaBind::MemberRef m_Script; // EditorWindow脚本 LUA_BIND_DECL_CLASS(GUIWindow); diff --git a/Editor/Scripting/Editor/EditorApplication.bind.cpp b/Editor/Scripting/Editor/EditorApplication.bind.cpp index c6ea9f7..a2e28c7 100644 --- a/Editor/Scripting/Editor/EditorApplication.bind.cpp +++ b/Editor/Scripting/Editor/EditorApplication.bind.cpp @@ -1,11 +1,13 @@ #include "Editor/EditorApplication.h" +#include "Runtime/Threading/JobSystem.h" LUA_BIND_REGISTRY(EditorApplication) { LUA_BIND_REGISTER_METHODS(state, { "New", _New}, { "SetMainWindow", _SetMainWindow }, - { "PullMessage", _PullMessage } + { "PullMessage", _PullMessage }, + { "OnStep", _OnStep } ); } @@ -39,3 +41,13 @@ LUA_BIND_IMPL_METHOD(EditorApplication, _SetMainWindow) MenuManager::Instance()->Init(); return 0; } + +LUA_BIND_IMPL_METHOD(EditorApplication, _OnStep) +{ + LUA_BIND_PREPARE(L, EditorApplication); + + // jobsystem回调 + JobSystem::Instance()->Dispatch(L); + + return 1; +} diff --git a/Editor/Scripting/EditorScripting.cpp b/Editor/Scripting/EditorScripting.cpp index 38c55c8..9cd80cc 100644 --- a/Editor/Scripting/EditorScripting.cpp +++ b/Editor/Scripting/EditorScripting.cpp @@ -34,7 +34,8 @@ bool SetupGameLabEditorScripting(lua_State* L) log_info("Scripting", "SetupGameLabEditorScripting()"); openlib(luaopen_GameLab_Debug); - openlib(luaopen_GameLab_Path); + openlib(luaopen_GameLab_Path); + openlib(luaopen_GameLab_IO); openlib(luaopen_GameLab_Engine_Rendering); openlib(luaopen_GameLab_Engine_GL); |