Grindstone Game Engine
v0.2.0
An open source game engine and toolkit.
Toggle main menu visibility
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
9
namespace
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
35
union
ParameterValue
{
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
}
Grindstone::PipelineAssetMetaData::Buffer
Definition
PipelineAsset.hpp:72
Grindstone::PipelineAssetMetaData::Parameter
Definition
PipelineAsset.hpp:57
Grindstone::PipelineAssetMetaData::ResourceSlot
Definition
PipelineAsset.hpp:79
Grindstone::PipelineAssetMetaData::ParameterValue
Definition
PipelineAsset.hpp:35
sources
code
EngineCore
Assets
PipelineSet
PipelineAsset.hpp
Generated by
1.17.0