162 uint32_t &name_buffer_offset)
const;
185 return "ModelMatrix";
189 return "ModelViewMatrix";
191 return "ProjectionMatrix";
193 return "ViewProjectionMatrix";
195 return "ModelViewProjectionMatrix";
198 return "ModelMatrixInverse";
200 return "ViewMatrixInverse";
202 return "ModelViewMatrixInverse";
204 return "ProjectionMatrixInverse";
206 return "ViewProjectionMatrixInverse";
209 return "NormalMatrix";
211 return "WorldClipPlanes";
216 return "gpu_BaseInstance";
218 return "drw_resourceChunk";
220 return "drw_ResourceID";
224 return "gpu_scene_linear_to_rec709";
244 return "drw_matrices";
248 return "drw_clipping_";
257 uint32_t name_len)
const
260 if (
name[name_len - 1] ==
']') {
261 for (; name_len > 1; name_len--) {
262 if (
name[name_len] ==
'[') {
263 name[name_len] =
'\0';
277 uint32_t &name_buffer_offset)
const
279 uint32_t name_len =
name.size();
281 memcpy(name_buffer + name_buffer_offset,
name.c_str(), name_len + 1);
286 const uint inputs_len,
291 for (
int i = inputs_len - 1;
i >= 0;
i--) {
292 if (
inputs[
i].name_hash == name_hash) {
295 for (;
i >= 0 &&
inputs[
i].name_hash == name_hash;
i--) {
314 const uint inputs_len,
315 const int binding)
const
318 for (
int i = inputs_len - 1;
i >= 0;
i--) {
319 if (
inputs[
i].binding == binding) {
327 const uint inputs_len)
const
330 int valid_bindings = 0;
331 for (
int i = inputs_len - 1;
i >= 0;
i--) {
336 return valid_bindings;
BLI_INLINE unsigned int BLI_hash_string(const char *str)
@ GPU_UNIFORM_VIEWPROJECTION_INV
@ GPU_UNIFORM_RESOURCE_ID
@ GPU_UNIFORM_VIEWPROJECTION
@ GPU_UNIFORM_SRGB_TRANSFORM
@ GPU_UNIFORM_BASE_INSTANCE
@ GPU_UNIFORM_SCENE_LINEAR_XFORM
@ GPU_UNIFORM_PROJECTION_INV
@ GPU_UNIFORM_MODELVIEW_INV
@ GPU_UNIFORM_RESOURCE_CHUNK
@ GPU_UNIFORM_BLOCK_DRW_VIEW
@ GPU_UNIFORM_BLOCK_DRW_MODEL
@ GPU_UNIFORM_BLOCK_MODEL
@ GPU_UNIFORM_BLOCK_DRW_CLIPPING
@ GPU_UNIFORM_BLOCK_DRW_INFOS
unsigned long long int uint64_t
void copy_input_name(ShaderInput *input, const StringRefNull &name, char *name_buffer, uint32_t &name_buffer_offset) const
uint16_t enabled_ssbo_mask_
int32_t uniform_builtin(const GPUUniformBuiltin builtin) const
void set_image_formats_from_info(const shader::ShaderCreateInfo &info)
uint64_t enabled_tex_mask_
const ShaderInput * attr_get(const StringRefNull name) const
const ShaderInput * uniform_get(const StringRefNull name) const
uint32_t set_input_name(ShaderInput *input, char *name, uint32_t name_len) const
const ShaderInput * texture_get(const int binding) const
const ShaderInput * ubo_get(const int binding) const
const char * input_name_get(const ShaderInput *input) const
static const char * builtin_uniform_block_name(GPUUniformBlockBuiltin u)
int32_t ubo_builtin(const GPUUniformBlockBuiltin builtin) const
uint8_t enabled_ima_mask_
const ShaderInput * ubo_get(const StringRefNull name) const
const ShaderInput * ssbo_get(const StringRefNull name) const
uint valid_bindings_get(const ShaderInput *const inputs, const uint inputs_len) const
int32_t builtin_blocks_[GPU_NUM_UNIFORM_BLOCKS]
const ShaderInput * attr_get(const int binding) const
int32_t builtins_[GPU_NUM_UNIFORMS]
std::array< TextureWriteFormat, GPU_MAX_IMAGE > image_formats_
uint16_t enabled_attr_mask_
uint16_t enabled_ubo_mask_
uint8_t attr_types_[GPU_VERT_ATTR_MAX_LEN]
const ShaderInput * constant_get(const StringRefNull name) const
const ShaderInput * ssbo_get(const int binding) const
static const char * builtin_uniform_name(GPUUniformBuiltin u)
virtual ~ShaderInterface()
static blender::bke::bNodeSocketTemplate inputs[]
Describe inputs & outputs, stage interfaces, resources and sources of a shader. If all data is correc...