Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
PipelineAsset.hpp
1#pragma once
2
3#include <stdint.h>
4#include <string>
5#include <vector>
6
7#include <Common/Graphics/Formats.hpp>
8
9namespace Grindstone::PipelineAssetMetaData {
10 enum class ParameterType : uint8_t {
11 Unknown,
12 Void,
13 Boolean,
14 SByte,
15 UByte,
16 Short,
17 UShort,
18 Int,
19 UInt,
20 Int64,
21 UInt64,
22 AtomicCounter,
23 Half,
24 Float,
25 Double,
26 Struct,
27 Image,
28 SampledImage,
29 Sampler,
30 AccelerationStructure,
31 RayQuery,
32 Count
33 };
34
36 bool boolValue;
37 int8_t int8Value;
38 uint8_t uint8Value;
39 int16_t int16Value;
40 uint16_t uint16Value;
41 int32_t int32Value;
42 uint32_t uint32Value;
43 int64_t int64Value;
44 uint64_t uint64Value;
45 short halfValue; // TODO: Make this use actual half floats
46 float floatValue;
47 double doubleValue;
48 // uint8_t AtomicCounter;
49 // Struct,
50 // Image,
51 // SampledImage,
52 // Sampler,
53 // AccelerationStructure,
54 // RayQuery,
55 };
56
57 struct Parameter {
58 std::string name;
59 ParameterType type;
60 ParameterValue defaultValue;
61 uint32_t offset;
62 uint32_t arrayCount;
63 uint32_t size;
64 };
65
66 enum class DefaultTexture : uint8_t {
67 White,
68 Black,
69 Normal
70 };
71
72 struct Buffer {
73 uint32_t descriptorSet;
74 uint32_t descriptorBinding;
75 uint32_t bufferSize;
76 std::vector<Parameter> parameters;
77 };
78
79 struct ResourceSlot {
80 uint32_t descriptorSet;
81 uint32_t descriptorBinding;
82 std::string slotName;
83 };
84}
Definition PipelineAsset.hpp:72
Definition PipelineAsset.hpp:57