TerraForge3D  2.3.1
3D Terrain And Landscape Generator
ShadingManager.h
1#pragma once
2
4
5#include <string>
6#include <vector>
7
8#include "Shading/GLSLHandler.h"
9#include "Shading/SharedMemoryManager.h"
10#include "Shading/ShaderNodeEditor.h"
11#include "Shading/ShaderTextureManager.h"
12
14{
15 std::string name = "";
16 std::string content = "";
17};
18
20{
21public:
24
25 void UpdateShaders();
26
27 void Load(nlohmann::json data);
28 nlohmann::json Save();
29 void ShowSettings(bool *pOpen);
30
31private:
32 void PrepVertShader();
33 void PrepGeomShader();
34 void PrepFragShader();
35
36 void ReCompileShaders();
37
38 void LoadDefaultCustomNodes();
39
40public:
41 ApplicationState *appState = nullptr;
42 GLSLHandler *vsh = nullptr;
43 GLSLHandler *gsh = nullptr;
44 GLSLHandler *fsh = nullptr;
45 SharedMemoryManager *sharedMemoryManager = nullptr;
46 NodeEditor *shaderNodeEditor = nullptr;
47 ShaderTextureManager *shaderTextureManager = nullptr;
48
49 std::string vertexSource = "";
50 std::string geometrySource = "";
51 std::string fragmentSource = "";
52
53 std::string extraSource = "";
54
55 bool optimizeGLSL;
56
57 std::vector<std::string> logs;
58 std::vector<DefaultCustomNode> defaultCustomNodes;
59};
a class to store JSON values
Definition: json.hpp:17860