Blender V5.0
gpu_shader_srd_info.hh File Reference

Go to the source code of this file.

Macros

#define SRD_STRUCT_BEGIN(srd)
#define SRD_STRUCT_END(srd)
#define SRD_VERTEX_IN_BEGIN(srd)
#define SRD_VERTEX_IN_END(srd)
#define SRD_VERTEX_IN(srd, binding, type, name)
#define SRD_VERTEX_OUT_BEGIN(srd)
#define SRD_VERTEX_OUT_END(srd)
#define SRD_VERTEX_OUT(srd, qual, type, name)
#define SRD_FRAGMENT_IN_BEGIN(srd)
#define SRD_FRAGMENT_IN_END(srd)
#define SRD_FRAGMENT_IN(srd, qual, type, name)
#define SRD_FRAGMENT_IN_ROG(srd, slot, type, img_type, name, rog)
#define SRD_FRAGMENT_OUT_BEGIN(srd)
#define SRD_FRAGMENT_OUT_END(srd)
#define SRD_FRAGMENT_OUT(srd, binding, type, name)
#define SRD_FRAGMENT_OUT_DUAL(srd, slot, type, name, blend)
#define SRD_FRAGMENT_OUT_ROG(srd, slot, type, name, rog)
#define SRD_RESOURCE_BEGIN(srd)
#define SRD_RESOURCE_END(srd)
#define SRD_RESOURCE_SPECIALIZATION_CONSTANT(srd, type, name, default)
#define SRD_RESOURCE_GROUP_SHARED(srd, type, name)
#define SRD_RESOURCE_PUSH_CONSTANT(srd, type, name)
#define SRD_RESOURCE_PUSH_CONSTANT_ARRAY(srd, type, name, array)
#define SRD_RESOURCE_SAMPLER(srd, binding, type, name)
#define SRD_RESOURCE_SAMPLER_FREQ(srd, binding, type, name, freq)
#define SRD_RESOURCE_IMAGE(srd, binding, format, access, type, name)
#define SRD_RESOURCE_IMAGE_FREQ(srd, binding, format, access, type, name, freq)
#define SRD_RESOURCE_STORAGE_BUF(srd, binding, access, type, name, array)
#define SRD_RESOURCE_STORAGE_BUF_FREQ(srd, binding, access, type, name, array, freq)
#define SRD_RESOURCE_UNIFORM_BUF(srd, binding, type, name, array)
#define SRD_RESOURCE_UNIFORM_BUF_FREQ(srd, binding, type, name, array, freq)
#define SRD_RESOURCE_STRUCT(srd, type, name)
#define SRD_RESOURCE_ADDITIONAL_INFO(srd, type)

Macro Definition Documentation

◆ SRD_FRAGMENT_IN

#define SRD_FRAGMENT_IN ( srd,
qual,
type,
name )
Value:
info.qual(Type::type##_t, #name);
const char * name

Definition at line 31 of file gpu_shader_srd_info.hh.

◆ SRD_FRAGMENT_IN_BEGIN

#define SRD_FRAGMENT_IN_BEGIN ( srd)
Value:
#define SRD_STRUCT_BEGIN(srd)

Definition at line 29 of file gpu_shader_srd_info.hh.

◆ SRD_FRAGMENT_IN_END

#define SRD_FRAGMENT_IN_END ( srd)
Value:
#define SRD_STRUCT_END(srd)

Definition at line 30 of file gpu_shader_srd_info.hh.

◆ SRD_FRAGMENT_IN_ROG

#define SRD_FRAGMENT_IN_ROG ( srd,
slot,
type,
img_type,
name,
rog )
Value:
info.subpass_in(slot, type, img_type, name, rog)

Definition at line 32 of file gpu_shader_srd_info.hh.

◆ SRD_FRAGMENT_OUT

#define SRD_FRAGMENT_OUT ( srd,
binding,
type,
name )
Value:
info.fragment_out(binding, Type::type##_t, #name);

Definition at line 37 of file gpu_shader_srd_info.hh.

◆ SRD_FRAGMENT_OUT_BEGIN

#define SRD_FRAGMENT_OUT_BEGIN ( srd)
Value:

Definition at line 35 of file gpu_shader_srd_info.hh.

◆ SRD_FRAGMENT_OUT_DUAL

#define SRD_FRAGMENT_OUT_DUAL ( srd,
slot,
type,
name,
blend )
Value:
info.fragment_out(slot, Type::type##_t, #name, DualBlend::blend)

Definition at line 39 of file gpu_shader_srd_info.hh.

◆ SRD_FRAGMENT_OUT_END

#define SRD_FRAGMENT_OUT_END ( srd)
Value:

Definition at line 36 of file gpu_shader_srd_info.hh.

◆ SRD_FRAGMENT_OUT_ROG

#define SRD_FRAGMENT_OUT_ROG ( srd,
slot,
type,
name,
rog )
Value:
info.fragment_out(slot, Type::type##_t, #name, DualBlend::NONE, rog)

Definition at line 41 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_ADDITIONAL_INFO

#define SRD_RESOURCE_ADDITIONAL_INFO ( srd,
type )
Value:
info.additional_info(#type);

Definition at line 71 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_BEGIN

#define SRD_RESOURCE_BEGIN ( srd)
Value:

Definition at line 44 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_END

#define SRD_RESOURCE_END ( srd)
Value:

Definition at line 45 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_GROUP_SHARED

#define SRD_RESOURCE_GROUP_SHARED ( srd,
type,
name )
Value:
info.shared_variable(Type::type##_t, name)

Definition at line 48 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_IMAGE

#define SRD_RESOURCE_IMAGE ( srd,
binding,
format,
access,
type,
name )
Value:
info.image(binding, format, Qualifier::access, ImageReadWriteType::type, #name);
format

Definition at line 56 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_IMAGE_FREQ

#define SRD_RESOURCE_IMAGE_FREQ ( srd,
binding,
format,
access,
type,
name,
freq )
Value:
info.image(binding, format, Qualifier::access, ImageReadWriteType::type, #name, Frequency::freq);

Definition at line 58 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_PUSH_CONSTANT

#define SRD_RESOURCE_PUSH_CONSTANT ( srd,
type,
name )
Value:
info.push_constant(Type::type##_t, #name);

Definition at line 49 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_PUSH_CONSTANT_ARRAY

#define SRD_RESOURCE_PUSH_CONSTANT_ARRAY ( srd,
type,
name,
array )
Value:
info.push_constant(Type::type##_t, #name, array);

Definition at line 50 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_SAMPLER

#define SRD_RESOURCE_SAMPLER ( srd,
binding,
type,
name )
Value:
info.sampler(binding, ImageType::type, #name);

Definition at line 52 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_SAMPLER_FREQ

#define SRD_RESOURCE_SAMPLER_FREQ ( srd,
binding,
type,
name,
freq )
Value:
info.sampler(binding, ImageType::type, #name, Frequency::freq);

Definition at line 54 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_SPECIALIZATION_CONSTANT

#define SRD_RESOURCE_SPECIALIZATION_CONSTANT ( srd,
type,
name,
default )
Value:
info.specialization_constant(Type::type##_t, #name, default);

Definition at line 46 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_STORAGE_BUF

#define SRD_RESOURCE_STORAGE_BUF ( srd,
binding,
access,
type,
name,
array )
Value:
info.storage_buf(binding, Qualifier::access, #type, #name #array);

Definition at line 60 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_STORAGE_BUF_FREQ

#define SRD_RESOURCE_STORAGE_BUF_FREQ ( srd,
binding,
access,
type,
name,
array,
freq )
Value:
info.storage_buf(binding, Qualifier::access, #type, #name #array, Frequency::freq);

Definition at line 62 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_STRUCT

#define SRD_RESOURCE_STRUCT ( srd,
type,
name )
Value:
type::populate(info);

Definition at line 68 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_UNIFORM_BUF

#define SRD_RESOURCE_UNIFORM_BUF ( srd,
binding,
type,
name,
array )
Value:
info.uniform_buf(binding, #type, #name #array);

Definition at line 64 of file gpu_shader_srd_info.hh.

◆ SRD_RESOURCE_UNIFORM_BUF_FREQ

#define SRD_RESOURCE_UNIFORM_BUF_FREQ ( srd,
binding,
type,
name,
array,
freq )
Value:
info.uniform_buf(binding, #type, #name #array, Frequency::freq);

Definition at line 66 of file gpu_shader_srd_info.hh.

◆ SRD_STRUCT_BEGIN

#define SRD_STRUCT_BEGIN ( srd)
Value:
struct srd { \
static void populate(blender::gpu::shader::ShaderCreateInfo &info) \
{
Describe inputs & outputs, stage interfaces, resources and sources of a shader. If all data is correc...

Definition at line 11 of file gpu_shader_srd_info.hh.

◆ SRD_STRUCT_END

#define SRD_STRUCT_END ( srd)
Value:
} \
} \
;

Definition at line 16 of file gpu_shader_srd_info.hh.

◆ SRD_VERTEX_IN

#define SRD_VERTEX_IN ( srd,
binding,
type,
name )
Value:
info.vertex_in(binding, Type::type##_t, #name);

Definition at line 23 of file gpu_shader_srd_info.hh.

◆ SRD_VERTEX_IN_BEGIN

#define SRD_VERTEX_IN_BEGIN ( srd)
Value:

Definition at line 21 of file gpu_shader_srd_info.hh.

◆ SRD_VERTEX_IN_END

#define SRD_VERTEX_IN_END ( srd)
Value:

Definition at line 22 of file gpu_shader_srd_info.hh.

◆ SRD_VERTEX_OUT

#define SRD_VERTEX_OUT ( srd,
qual,
type,
name )
Value:
.qual(Type::type##_t, #name)

Definition at line 27 of file gpu_shader_srd_info.hh.

◆ SRD_VERTEX_OUT_BEGIN

#define SRD_VERTEX_OUT_BEGIN ( srd)
Value:
#define GPU_SHADER_INTERFACE_INFO(_interface)

Definition at line 25 of file gpu_shader_srd_info.hh.

◆ SRD_VERTEX_OUT_END

#define SRD_VERTEX_OUT_END ( srd)
Value:
#define GPU_SHADER_INTERFACE_END()

Definition at line 26 of file gpu_shader_srd_info.hh.