-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathFEEditorPreviewManager.h
More file actions
75 lines (57 loc) · 2.17 KB
/
FEEditorPreviewManager.h
File metadata and controls
75 lines (57 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#pragma once
#include "../FEngine.h"
using namespace FocalEngine;
class FEEditorPreviewManager
{
friend class FEEditor;
friend class FEEditorInspectorWindow;
friend class FEEditorContentBrowserWindow;
friend class FEProjectManager;
friend class DeleteTexturePopup;
friend class RenameMeshPopUp;
friend class DeleteMeshPopup;
friend class SelectMeshPopUp;
friend class SelectMaterialPopUp;
friend class SelectGameModelPopUp;
friend class EditGameModelPopup;
friend class EditMaterialWindow;
friend class DeleteMaterialPopup;
friend class SelectFEObjectPopUp;
friend class FEPrefabEditorManager;
private:
SINGLETON_PUBLIC_PART(FEEditorPreviewManager)
SINGLETON_PRIVATE_PART(FEEditorPreviewManager)
void InitializeResources();
void UpdateAll();
FEScene* PreviewScene = nullptr;
FEEntity* PreviewEntity;
FEGameModel* PreviewGameModel;
FEMaterial* MeshPreviewMaterial;
FEEntity* LocalSunEntity;
FEEntity* LocalCameraEntity;
// Saved scene settings
bool bIsRegularFogEnabled = false;
std::unordered_map<std::string, FETexture*> MeshPreviewTextures;
std::unordered_map<std::string, FETexture*> MaterialPreviewTextures;
std::unordered_map<std::string, FETexture*> GameModelPreviewTextures;
std::unordered_map<std::string, FETexture*> PrefabPreviewTextures;
static glm::vec4 OriginalClearColor;
static FETransformComponent OriginalTransform;
void BeforePreviewActions();
void AfterPreviewActions();
void CreateMeshPreview(std::string MeshID);
FETexture* GetMeshPreview(std::string MeshID);
void CreateMaterialPreview(std::string MaterialID);
FETexture* GetMaterialPreview(std::string MaterialID);
void CreateGameModelPreview(std::string GameModelID);
void CreateGameModelPreview(const FEGameModel* GameModel, FETexture** ResultingTexture);
FETexture* GetGameModelPreview(std::string GameModelID);
void UpdateAllGameModelPreviews();
void CreatePrefabPreview(std::string PrefabID);
void CreatePrefabPreview(FEPrefab* Prefab, FETexture** ResultingTexture);
FETexture* GetPrefabPreview(std::string PrefabID);
FETexture* GetPreview(FEObject* Object);
FETexture* GetPreview(std::string ObjectID);
void Clear();
};
#define PREVIEW_MANAGER FEEditorPreviewManager::GetInstance()