Вынес рендер в отдельный модуль. Сделал систему вызовов для модулй к ядру. Исправил баг в SaveMap. Убрал поддержку linux, так как трудно поддерживать обе платформы. Убрал тесты для linux.
This commit is contained in:
@@ -17,39 +17,31 @@
|
||||
extern "C" {\
|
||||
EXPORT void* protect_init() {return reinterpret_cast<void*>(&InitModule);} \
|
||||
EXPORT void* protect_start() {return reinterpret_cast<void*>(&StartModule);} \
|
||||
EXPORT void* protect_stop() {return reinterpret_cast<void*>(&StopModule);} \
|
||||
EXPORT void* protect_quit() {return reinterpret_cast<void*>(&QuitModule);} \
|
||||
}\
|
||||
ModuleInstance* Factory(CoreInstance& core) { return static_cast<ModuleInstance*>(new Class(core)); }
|
||||
ModuleInstance* Factory() { return static_cast<ModuleInstance*>(new Class()); }
|
||||
|
||||
|
||||
class CoreInstance;
|
||||
struct CoreCallBacks;
|
||||
|
||||
class ModuleInstance {
|
||||
CoreInstance& core_;
|
||||
|
||||
public:
|
||||
Delegate<void> onStop;
|
||||
|
||||
ModuleInstance(CoreInstance& core);
|
||||
virtual ~ModuleInstance() = default;
|
||||
|
||||
CoreInstance& getCore() const { return core_; }
|
||||
|
||||
virtual void start();
|
||||
void stop();
|
||||
|
||||
void QuitGame();
|
||||
};
|
||||
|
||||
extern "C" {
|
||||
// Create module instance
|
||||
EXPORT void InitModule(CoreInstance& core);
|
||||
EXPORT void InitModule(CoreCallBacks* callbacks);
|
||||
|
||||
// Start module instance
|
||||
EXPORT void StartModule();
|
||||
|
||||
// Destroy module instance when core unloads there
|
||||
EXPORT void StopModule();
|
||||
|
||||
// Stop module when core calls this
|
||||
EXPORT void QuitModule();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user