TerraForge3D  2.3.1
3D Terrain And Landscape Generator
CustomShaderNode.h
1#pragma once
2
3#include "Shading/ShaderNodeEditor.h"
5 std::string text;
6 std::string type;
7 std::string alias;
8
9 SharedDataRep(std::string t, std::string b, std::string c)
10 :text(t), type(b), alias(c) {}
11
13};
14
16{
17public:
18 CustomShaderNode(GLSLHandler *handler, std::string shader);
20
21 virtual void OnEvaluate(GLSLFunction *function, GLSLLine *line) override;
22 virtual void Load(nlohmann::json data) override;
23 virtual nlohmann::json Save() override;
24 virtual void OnRender() override;
25 virtual void UpdateShaders() override;
26
27public:
28 float fData[32];
29 bool bData[32];
30 std::string code = "";
31 std::string shader = "";
32 int paramCount = 0;
33 bool useArrayParams = false;
34 bool useMultipleOpins = false;
35 nlohmann::json meta;
36 GLSLFunction *func;
37 std::vector<std::pair<std::string, std::string>> params;
38 std::vector<SharedDataRep> sharedDataTemplate;
39 std::vector<std::string> oPinStrs;
40};
a class to store JSON values
Definition: json.hpp:17860