载入中...
搜索中...
未找到
EditorHost.h
浏览该文件的文档.
1#pragma once
2
3// Capability interface: declarative editor host (ui module). cmdline and
4// devtools consume this so neither has to depend on the ui module.
5
6#include "common/Export.h"
7
8#include <string>
9
10namespace ssq {
11class VM;
12}
13
14namespace eve {
15
18public:
19 static constexpr const char* capabilityName = "IEditorHost";
20
22 virtual ~IEditorHost() = default;
23
25 virtual std::string status() const = 0;
27 virtual std::string openWindow(const std::string& title, int width, int height) = 0;
29 virtual std::string closeWindow() = 0;
31 virtual std::string windowState() const = 0;
33 virtual bool isWindowOpen() const = 0;
35 virtual std::string applyEditor(const std::string& json) = 0;
37 virtual std::string removeEditor(const std::string& id) = 0;
39 virtual std::string listEditors() const = 0;
41 virtual std::string editorState(const std::string& id) const = 0;
43 virtual std::string setEditorValue(const std::string& editorId, const std::string& widgetId,
44 const std::string& value) = 0;
46 virtual std::string consumeEvents(const std::string& editorId) = 0;
48 virtual std::string widgetRect(const std::string& editorId,
49 const std::string& widgetId) const = 0;
51 virtual std::string registerVM(const std::string& name, const std::string& source) = 0;
53 virtual std::string unregisterVM(const std::string& name) = 0;
55 virtual std::string saveEditor(const std::string& id) = 0;
57 virtual std::string unloadEditor(const std::string& id) = 0;
59 virtual std::string capture(const std::string& path) = 0;
61 virtual std::string runScript(const std::string& source) = 0;
63 virtual std::string reloadResource(const std::string& path) = 0;
65 virtual std::string hotReloadStatus() const = 0;
67 virtual void setHotReloadWatchCount(int count) = 0;
69 virtual void requestExit() = 0;
71 virtual bool exitRequested() = 0;
73 virtual void frame() = 0;
75 virtual void stop() = 0;
76
78 virtual void start(ssq::VM& vm, const std::string& gameRoot, bool allowWindow) = 0;
80 virtual void exposeScriptApi(ssq::VM& vm) = 0;
81};
82
83} // namespace eve
double value
std::string title
HSQUIRRELVM vm
Definition ECS.cpp:20
#define EVENGINE_API_FOUNDATION_INLINE
仅供"只有内联成员"的类型使用的组宏:拥有者 dllexport,消费方不导入。
Definition Export.h:170
std::uint32_t height
std::uint32_t width
std::string name
std::string path
Definition PlayHost.cpp:110
std::uint32_t count
const UnitySourceAsset & source
Declarative editor-host control (provided by the ui module).
Definition EditorHost.h:17
virtual bool exitRequested()=0
True after requestExit() (main loop exit condition).
virtual std::string reloadResource(const std::string &path)=0
Reload one project-scoped MCP host script or editor resource.
virtual std::string openWindow(const std::string &title, int width, int height)=0
Opens window.
virtual void setHotReloadWatchCount(int count)=0
Report the number of active project filesystem watches.
virtual void frame()=0
Pump the host's per-frame update (frame loop).
virtual std::string editorState(const std::string &id) const =0
Editor state.
virtual bool isWindowOpen() const =0
True while the host OS window is open.
virtual void stop()=0
Shut the host down (stops window + workers).
virtual std::string widgetRect(const std::string &editorId, const std::string &widgetId) const =0
Widget rect.
virtual std::string closeWindow()=0
Closes window.
virtual std::string hotReloadStatus() const =0
Hot-reload watcher and latest reload diagnostic as compact JSON.
virtual std::string windowState() const =0
Window state.
virtual std::string removeEditor(const std::string &id)=0
Removes editor.
virtual std::string capture(const std::string &path)=0
Capture.
virtual std::string registerVM(const std::string &name, const std::string &source)=0
Registers vm.
virtual std::string status() const =0
Status.
virtual std::string unloadEditor(const std::string &id)=0
Unload editor.
virtual ~IEditorHost()=default
I editor host.
virtual void requestExit()=0
Request exit.
virtual void exposeScriptApi(ssq::VM &vm)=0
Expose the host's script API on the VM.
virtual std::string saveEditor(const std::string &id)=0
Saves editor.
virtual std::string consumeEvents(const std::string &editorId)=0
Consume events.
virtual std::string listEditors() const =0
List editors.
virtual void start(ssq::VM &vm, const std::string &gameRoot, bool allowWindow)=0
Start the host against a Squirrel VM (cmdline integration).
virtual std::string applyEditor(const std::string &json)=0
Applies editor.
virtual std::string unregisterVM(const std::string &name)=0
Unregisters vm.
virtual std::string setEditorValue(const std::string &editorId, const std::string &widgetId, const std::string &value)=0
Sets the editor value.
virtual std::string runScript(const std::string &source)=0
Run script.
Build metadata (engine git commit, build time, third-party version).
Definition Build.cpp:16
EVEngine ECS 集成层:底层实现使用 sunxfancy/ECS.hpp https://github.com/sunxfancy/ECS.hpp
Definition ECS.h:14