50 class ENGINE_CORE_API Interface {
52 Interface(Manager* manager);
59 virtual bool LoadPlugin(
const char* name);
60 virtual void LoadPluginCritical(
const char* name);
65 virtual Display GetMainDisplay();
66 virtual uint8_t CountDisplays();
67 virtual void EnumerateDisplays(
Display* displays);
68 virtual void RegisterSystem(
const char* name, ECS::SystemFactory factory);
69 virtual void RegisterEditorSystem(
const char* name, ECS::SystemFactory factory);
70 virtual void UnregisterSystem(
const char* name);
71 virtual void UnregisterEditorSystem(
const char* name);
74 virtual void RegisterAssetType(AssetType assetType,
const char* typeName,
AssetImporter* assetImporter);
75 virtual void UnregisterAssetType(AssetType assetType);
76 virtual void SetReloadCsharpCallback(std::function<
void()> callback);
77 virtual Grindstone::HashedString::HashMap* GetHashedStringMap()
const;
83 template<
typename ClassType>
85 RegisterWorldContextFactory(contextName, Grindstone::WorldContext::Create<ClassType>);
88 template<
typename ClassType>
89 void RegisterComponent(Grindstone::ECS::SetupComponentFn setupComponentFn =
nullptr, Grindstone::ECS::DestroyComponentFn destroyComponentFn =
nullptr) {
90 componentRegistrar->RegisterComponent<ClassType>(setupComponentFn, destroyComponentFn);
94 void UnregisterComponent() {
95 componentRegistrar->UnregisterComponent<T>();
103 Manager* manager =
nullptr;
107 uint8_t (*countDisplaysFn)() =
nullptr;