载入中...
搜索中...
未找到
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
21 virtual ~IEditorHost() = default;
22
23 virtual std::string status() const = 0;
24 virtual std::string openWindow(const std::string& title, int width, int height) = 0;
25 virtual std::string closeWindow() = 0;
26 virtual std::string windowState() const = 0;
27 virtual std::string applyEditor(const std::string& json) = 0;
28 virtual std::string removeEditor(const std::string& id) = 0;
29 virtual std::string listEditors() const = 0;
30 virtual std::string editorState(const std::string& id) const = 0;
31 virtual std::string setEditorValue(const std::string& editorId, const std::string& widgetId,
32 const std::string& value) = 0;
33 virtual std::string consumeEvents(const std::string& editorId) = 0;
34 virtual std::string widgetRect(const std::string& editorId,
35 const std::string& widgetId) const = 0;
36 virtual std::string registerVM(const std::string& name, const std::string& source) = 0;
37 virtual std::string unregisterVM(const std::string& name) = 0;
38 virtual std::string saveEditor(const std::string& id) = 0;
39 virtual std::string unloadEditor(const std::string& id) = 0;
40 virtual std::string capture(const std::string& path) = 0;
41 virtual std::string runScript(const std::string& source) = 0;
42 virtual void requestExit() = 0;
44 virtual bool exitRequested() = 0;
46 virtual void frame() = 0;
48 virtual void stop() = 0;
49
51 virtual void start(ssq::VM& vm, const std::string& gameRoot, bool allowWindow) = 0;
53 virtual void exposeScriptApi(ssq::VM& vm) = 0;
54};
55
56} // namespace eve
std::string value
HSQUIRRELVM vm
Definition ECS.cpp:20
std::string title
#define EVENGINE_API
宿主(eve / libmain)导出宏;插件从进程导入同一批符号。
Definition Export.h:16
float height
Definition Grass.cpp:235
int width
const char * name
Definition RockMesh.cpp:21
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 openWindow(const std::string &title, int width, int height)=0
virtual void frame()=0
Pump the host's per-frame update (frame loop).
virtual std::string editorState(const std::string &id) const =0
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
virtual std::string closeWindow()=0
virtual std::string windowState() const =0
virtual std::string removeEditor(const std::string &id)=0
virtual std::string capture(const std::string &path)=0
virtual std::string registerVM(const std::string &name, const std::string &source)=0
virtual std::string status() const =0
virtual std::string unloadEditor(const std::string &id)=0
virtual ~IEditorHost()=default
virtual void requestExit()=0
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
virtual std::string consumeEvents(const std::string &editorId)=0
virtual std::string listEditors() const =0
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
virtual std::string unregisterVM(const std::string &name)=0
virtual std::string setEditorValue(const std::string &editorId, const std::string &widgetId, const std::string &value)=0
virtual std::string runScript(const std::string &source)=0
Definition Build.cpp:11
EVEngine ECS 集成层:底层实现使用 sunxfancy/ECS.hpp https://github.com/sunxfancy/ECS.hpp
Definition ECS.h:12