127 uint32_t &name_buffer_offset)
const;
137 const char *name)
const;
148 return "ModelMatrix";
152 return "ModelViewMatrix";
154 return "ProjectionMatrix";
156 return "ViewProjectionMatrix";
158 return "ModelViewProjectionMatrix";
161 return "ModelMatrixInverse";
163 return "ViewMatrixInverse";
165 return "ModelViewMatrixInverse";
167 return "ProjectionMatrixInverse";
169 return "ViewProjectionMatrixInverse";
172 return "NormalMatrix";
174 return "OrcoTexCoFactors";
176 return "WorldClipPlanes";
181 return "gpu_BaseInstance";
183 return "drw_resourceChunk";
185 return "drw_ResourceID";
207 return "drw_matrices";
221 if (name[name_len - 1] ==
']') {
222 for (; name_len > 1; name_len--) {
223 if (name[name_len] ==
'[') {
224 name[name_len] =
'\0';
242 memcpy(name_buffer + name_buffer_offset, name.
c_str(), name_len + 1);
247 const uint inputs_len,
248 const char *name)
const
252 for (
int i = inputs_len - 1; i >= 0; i--) {
253 if (
inputs[i].name_hash == name_hash) {
256 for (; i >= 0 &&
inputs[i].name_hash == name_hash; i--) {
275 const uint inputs_len,
276 const int binding)
const
279 for (
int i = inputs_len - 1; i >= 0; i--) {
280 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_INFOS
constexpr int64_t size() const
constexpr const char * c_str() const
const ShaderInput * ubo_get(const int binding) const
void copy_input_name(ShaderInput *input, const StringRefNull &name, char *name_buffer, uint32_t &name_buffer_offset) const
const ShaderInput * ubo_get(const char *name) const
uint16_t enabled_ssbo_mask_
int32_t uniform_builtin(const GPUUniformBuiltin builtin) const
const ShaderInput * attr_get(const char *name) const
uint64_t enabled_tex_mask_
ShaderInterface(const shader::ShaderCreateInfo &info)
uint32_t set_input_name(ShaderInput *input, char *name, uint32_t name_len) const
const ShaderInput * texture_get(const int binding) const
static const char * builtin_uniform_block_name(GPUUniformBlockBuiltin u)
int32_t ubo_builtin(const GPUUniformBlockBuiltin builtin) const
const ShaderInput * ssbo_get(const char *name) const
uint8_t enabled_ima_mask_
int32_t builtin_blocks_[GPU_NUM_UNIFORM_BLOCKS]
const char * input_name_get(const ShaderInput *input) const
const ShaderInput * ssbo_get(const int binding) const
const ShaderInput * uniform_get(const char *name) const
int32_t builtins_[GPU_NUM_UNIFORMS]
uint16_t enabled_attr_mask_
uint16_t enabled_ubo_mask_
static const char * builtin_uniform_name(GPUUniformBuiltin u)
virtual ~ShaderInterface()
ccl_global KernelShaderEvalInput * input
struct blender::gpu::ShaderInput ShaderInput
static bNodeSocketTemplate inputs[]
unsigned __int64 uint64_t
Describe inputs & outputs, stage interfaces, resources and sources of a shader. If all data is correc...