Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
EditorPluginInterface.hpp
1#pragma once
2
3#include <Common/ResourcePipeline/AssetType.hpp>
4#include <Common/HashedString.hpp>
5#include <Common/Memory/SmartPointers/UniquePtr.hpp>
6#include <Editor/Importers/ImporterManager.hpp>
7#include <Editor/ImguiEditor/Settings/BaseSettingsPage.hpp>
8#include <EngineCore/PluginSystem/Interface.hpp>
9
10struct ImGuiContext;
11
12namespace Grindstone::Editor {
13 class Manager;
14}
15
16namespace Grindstone::Plugins {
18 public:
19 virtual ImGuiContext* GetImguiContext() const;
20 virtual Grindstone::Editor::Manager* GetEditorInstance() const;
21
22 virtual void MapExtensionToImporterType(const char* extension, Grindstone::HashedString importerType);
23 virtual void UnmapExtensionToImporterType(const char* extension);
24
25 virtual void RegisterAssetImporter(Grindstone::HashedString importerType, Grindstone::Editor::ImporterData importerVersion);
26 virtual void DeregisterAssetImporter(Grindstone::HashedString importerType);
27
28 virtual void RegisterAssetTemplate(AssetType assetType, const char* name, const char* extension, const void* const sourcePtr, size_t sourceSize);
29 virtual void DeregisterAssetTemplate(AssetType assetType);
30
31 virtual void RegisterThumbnailGenerator(AssetType assetType, bool (*fn)(Grindstone::Uuid));
32 virtual void DeregisterThumbnailGenerator(AssetType assetType, bool (*fn)(Grindstone::Uuid));
33
34 virtual void RegisterProjectSettingsPage(std::string displayName, Grindstone::UniquePtr<Grindstone::Editor::ImguiEditor::Settings::BasePage> page);
35 virtual void DeregisterProjectSettingsPage(std::string displayName);
36
37 };
38}
Definition EditorManager.hpp:48
Definition HashedString.hpp:9
Definition EditorPluginInterface.hpp:17
Definition Interface.hpp:43
Definition UniquePtr.hpp:7
Definition Uuid.hpp:7
Definition Importer.hpp:16