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 <Common/Rendering/RenderGraphBuilder.hpp>
7#include <Editor/Importers/ImporterManager.hpp>
8#include <Editor/ImguiEditor/Settings/BaseSettingsPage.hpp>
9#include <EngineCore/PluginSystem/Interface.hpp>
10
11struct ImGuiContext;
12
13namespace Grindstone::Editor {
14 class Manager;
15}
16
17namespace Grindstone::Plugins {
19 public:
20 virtual ImGuiContext* GetImguiContext() const;
21 virtual Grindstone::Editor::Manager* GetEditorInstance() const;
22
23 virtual void RegisterGizmoPass(
24 std::function<
29 )
30 > callback
31 );
32
33 virtual void MapExtensionToImporterType(const char* extension, Grindstone::HashedString importerType);
34 virtual void UnmapExtensionToImporterType(const char* extension);
35
36 virtual void RegisterAssetImporter(Grindstone::HashedString importerType, Grindstone::Editor::ImporterData importerVersion);
37 virtual void DeregisterAssetImporter(Grindstone::HashedString importerType);
38
39 virtual void RegisterAssetTemplate(AssetType assetType, const char* name, const char* extension, const void* const sourcePtr, size_t sourceSize);
40 virtual void DeregisterAssetTemplate(AssetType assetType);
41
42 virtual void RegisterThumbnailGenerator(AssetType assetType, bool (*fn)(Grindstone::Uuid));
43 virtual void DeregisterThumbnailGenerator(AssetType assetType, bool (*fn)(Grindstone::Uuid));
44
45 virtual void RegisterMenuItem(const char* menuItem, void(*fn)(), const char* shortcut = nullptr);
46 virtual void DeregisterMenuItem(const char* menuItem);
47
48 virtual void RegisterProjectSettingsPage(std::string displayName, Grindstone::UniquePtr<Grindstone::Editor::ImguiEditor::Settings::BasePage> page);
49 virtual void DeregisterProjectSettingsPage(std::string displayName);
50
51 };
52}
Definition EditorManager.hpp:48
Definition HashedString.hpp:9
Definition EditorPluginInterface.hpp:18
Definition Interface.hpp:43
Definition RenderGraphBuilder.hpp:12
Definition UniquePtr.hpp:7
Definition Uuid.hpp:7
Definition Importer.hpp:16
Definition RenderGraphResourceRef.hpp:51