 |
Blender V5.0
|
Go to the documentation of this file.
11#define SRD_STRUCT_BEGIN(srd) \
13 namespace gl_VertexShader { \
15 namespace gl_FragmentShader { \
17 namespace gl_ComputeShader { \
19#define SRD_STRUCT_END(srd) }
21#define SRD_VERTEX_IN_BEGIN(srd) SRD_STRUCT_BEGIN(srd)
22#define SRD_VERTEX_IN_END(srd) SRD_STRUCT_END(srd)
23#define SRD_VERTEX_IN(srd, binding, type, name) const type name = {};
25#define SRD_VERTEX_OUT_BEGIN(srd) GPU_SHADER_INTERFACE_INFO(srd)
26#define SRD_VERTEX_OUT_END(srd) GPU_SHADER_INTERFACE_END()
27#define SRD_VERTEX_OUT(srd, qual, type, name) type name = {};
29#define SRD_FRAGMENT_IN_BEGIN(srd) SRD_STRUCT_BEGIN(srd)
30#define SRD_FRAGMENT_IN_END(srd) SRD_STRUCT_END(srd)
31#define SRD_FRAGMENT_IN(srd, qual, type, name) const type name = {};
32#define SRD_FRAGMENT_IN_ROG(srd, slot, type, img_type, name, rog) const type name = {};
34#define SRD_FRAGMENT_OUT_BEGIN(srd) SRD_STRUCT_BEGIN(srd)
35#define SRD_FRAGMENT_OUT_END(srd) SRD_STRUCT_END(srd)
36#define SRD_FRAGMENT_OUT(srd, binding, type, name) type name = {};
37#define SRD_FRAGMENT_OUT_DUAL(srd, slot, type, name, blend) type name = {};
38#define SRD_FRAGMENT_OUT_ROG(srd, slot, type, name, rog) type name = {};
40#define SRD_RESOURCE_BEGIN(srd) SRD_STRUCT_BEGIN(srd)
41#define SRD_RESOURCE_END(srd) SRD_STRUCT_END(srd)
42#define SRD_RESOURCE_SPECIALIZATION_CONSTANT(srd, type, name, default) type name = {};
43#define SRD_RESOURCE_GROUP_SHARED(srd, type, name) type name;
44#define SRD_RESOURCE_PUSH_CONSTANT(srd, type, name) type name = {};
45#define SRD_RESOURCE_PUSH_CONSTANT_ARRAY(srd, type, name, array) type(*name) = {};
46#define SRD_RESOURCE_SAMPLER(srd, binding, type, name) type name = {};
47#define SRD_RESOURCE_SAMPLER_FREQ(srd, binding, type, name, freq) type name = {};
48#define SRD_RESOURCE_IMAGE(srd, binding, format, access, type, name) _##access type name;
49#define SRD_RESOURCE_IMAGE_FREQ(srd, binding, format, access, type, name, freq) \
51#define SRD_RESOURCE_STORAGE_BUF(srd, binding, access, type, name, array) type(*name) array = {};
52#define SRD_RESOURCE_STORAGE_BUF_FREQ(srd, binding, access, type, name, array, freq) \
53 type(*name) array = {};
54#define SRD_RESOURCE_UNIFORM_BUF(srd, binding, type, name, array) type(*name) array = {};
55#define SRD_RESOURCE_UNIFORM_BUF_FREQ(srd, binding, type, name, array, freq) \
56 type(*name) array = {};
57#define SRD_RESOURCE_STRUCT(srd, type, name) type name = {};
60#define SRD_RESOURCE_ADDITIONAL_INFO(srd, type) using namespace type;