Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
ResolvedStateTree.hpp
1#pragma once
2
3#include <set>
4#include <map>
5#include <array>
6#include <vector>
7
8#include <Common/Graphics/Formats.hpp>
9
10#include "ParseTree.hpp"
11
13 struct Pass {
14 std::string name;
15 ParseTree::RenderState renderState;
16 std::string renderQueue;
17 std::string code;
18 ShaderCodeType type = ShaderCodeType::Unset;
19 std::set<std::string_view> requiredShaderBlocks; // Only used in resolve step
20 std::array<std::string, Grindstone::GraphicsAPI::numShaderTotalStage> stageEntryPoints;
21 };
22
24 std::string name;
25 std::set<std::string> tags;
26 std::map<std::string, Pass> passes;
27 };
28
29 struct PipelineSet {
30 std::filesystem::path sourceFilepath;
31 std::string name;
32 std::vector<ParseTree::MaterialParameter> parameters;
33 std::map<std::string, Configuration> configurations;
34 };
35
36 struct ComputeSet {
37 std::filesystem::path sourceFilepath;
38 std::string name;
39 std::string shaderCode;
40 std::string shaderEntrypoint;
41 ShaderCodeType shaderType = ShaderCodeType::Unset;
42 std::set<std::string_view> requiredShaderBlocks; // Only used in resolve step
43 };
44
45 std::vector<PipelineSet> pipelineSets;
46 std::vector<ComputeSet> computeSets;
47};
Definition ParseTree.hpp:19
Definition ResolvedStateTree.hpp:36
Definition ResolvedStateTree.hpp:23
Definition ResolvedStateTree.hpp:13
Definition ResolvedStateTree.hpp:29
Definition ResolvedStateTree.hpp:12