156 uint32_t &name_buffer_offset)
const;
166 const char *name)
const;
177 return "ModelMatrix";
181 return "ModelViewMatrix";
183 return "ProjectionMatrix";
185 return "ViewProjectionMatrix";
187 return "ModelViewProjectionMatrix";
190 return "ModelMatrixInverse";
192 return "ViewMatrixInverse";
194 return "ModelViewMatrixInverse";
196 return "ProjectionMatrixInverse";
198 return "ViewProjectionMatrixInverse";
201 return "NormalMatrix";
203 return "OrcoTexCoFactors";
205 return "WorldClipPlanes";
210 return "gpu_BaseInstance";
212 return "drw_resourceChunk";
214 return "drw_ResourceID";
236 return "drw_matrices";
240 return "drw_clipping_";
252 if (name[name_len - 1] ==
']') {
253 for (; name_len > 1; name_len--) {
254 if (name[name_len] ==
'[') {
255 name[name_len] =
'\0';
273 memcpy(name_buffer + name_buffer_offset, name.c_str(), name_len + 1);
274 name_buffer_offset +=
set_input_name(input, name_buffer + name_buffer_offset, name_len);
278 const uint inputs_len,
279 const char *name)
const
283 for (
int i = inputs_len - 1; i >= 0; i--) {
284 if (inputs[i].name_hash == name_hash) {
285 if ((i > 0) &&
UNLIKELY(inputs[i - 1].name_hash == name_hash)) {
287 for (; i >= 0 && inputs[i].name_hash == name_hash; i--) {
306 const uint inputs_len,
307 const int binding)
const
310 for (
int i = inputs_len - 1; i >= 0; i--) {
311 if (inputs[i].binding == binding) {
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_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
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
const ShaderInput * ubo_get(const char *name) const
uint64_t enabled_tex_mask_
const ShaderInput * attr_get(const char *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)
const ShaderInput * ssbo_get(const char *name) const
int32_t ubo_builtin(const GPUUniformBlockBuiltin builtin) const
uint8_t enabled_ima_mask_
int32_t builtin_blocks_[GPU_NUM_UNIFORM_BLOCKS]
const ShaderInput * attr_get(const int binding) const
int32_t builtins_[GPU_NUM_UNIFORMS]
const ShaderInput * uniform_get(const char *name) const
uint16_t enabled_attr_mask_
const ShaderInput * constant_get(const char *name) const
uint16_t enabled_ubo_mask_
uint8_t attr_types_[GPU_VERT_ATTR_MAX_LEN]
const ShaderInput * ssbo_get(const int binding) const
static const char * builtin_uniform_name(GPUUniformBuiltin u)
virtual ~ShaderInterface()
unsigned __int64 uint64_t
Describe inputs & outputs, stage interfaces, resources and sources of a shader. If all data is correc...