210 const void *engine_type,
223 bool is_volume_shader,
These structs are the foundation for all linked lists in the library system.
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
GPUMaterial * GPU_material_from_nodetree(struct Scene *scene, struct Material *ma, struct bNodeTree *ntree, struct ListBase *gpumaterials, const char *name, uint64_t shader_uuid, bool is_volume_shader, bool is_lookdev, GPUCodegenCallbackFn callback, void *thunk)
struct GPUUniformAttrList GPUUniformAttrList
ENUM_OPERATORS(eGPUMaterialFlag, GPU_MATFLAG_LOOKDEV_HACK)
uint64_t GPU_material_uuid_get(GPUMaterial *mat)
void GPU_material_free(struct ListBase *gpumaterial)
void GPU_material_acquire(GPUMaterial *mat)
GPUUniformAttrList * GPU_material_uniform_attributes(GPUMaterial *material)
void GPU_material_compile(GPUMaterial *mat)
void GPU_uniform_attr_list_copy(GPUUniformAttrList *dest, GPUUniformAttrList *src)
struct GPUShader * GPU_material_get_shader(GPUMaterial *material)
void GPU_material_output_surface(GPUMaterial *material, GPUNodeLink *link)
struct GHash * GPU_uniform_attr_list_hash_new(const char *info)
bool GPU_material_has_surface_output(GPUMaterial *mat)
GPUNodeLink * GPU_attribute(GPUMaterial *mat, eCustomDataType type, const char *name)
void GPU_material_status_set(GPUMaterial *mat, eGPUMaterialStatus status)
void(* GPUCodegenCallbackFn)(void *thunk, GPUMaterial *mat, GPUCodegenOutput *codegen)
GPUNodeLink * GPU_color_band(GPUMaterial *mat, int size, float *pixels, float *row)
GPUNodeLink * GPU_uniformbuf_link_out(struct GPUMaterial *mat, struct bNode *node, struct GPUNodeStack *stack, int index)
struct GPUMaterialAttribute GPUMaterialAttribute
GPUNodeLink * GPU_image(GPUMaterial *mat, struct Image *ima, struct ImageUser *iuser, eGPUSamplerState sampler_state)
void GPU_materials_free(struct Main *bmain)
void GPU_material_output_displacement(GPUMaterial *material, GPUNodeLink *link)
GPUNodeLink * GPU_attribute_default_color(GPUMaterial *mat)
void GPU_material_output_thickness(GPUMaterial *material, GPUNodeLink *link)
GPUNodeLink * GPU_image_tiled_mapping(GPUMaterial *mat, struct Image *ima, struct ImageUser *iuser)
GPUNodeLink * GPU_differentiate_float_function(const char *function_name)
void GPU_material_add_output_link_aov(GPUMaterial *material, GPUNodeLink *link, int hash)
struct GPUCodegenOutput GPUCodegenOutput
GPUNodeLink * GPU_uniform_attribute(GPUMaterial *mat, const char *name, bool use_dupli)
void GPU_pass_cache_free(void)
bool GPU_material_flag_get(const GPUMaterial *mat, eGPUMaterialFlag flag)
GPUNodeLink * GPU_attribute_with_default(GPUMaterial *mat, eCustomDataType type, const char *name, eGPUDefaultValue default_value)
bool GPU_material_recalc_flag_get(GPUMaterial *mat)
ListBase GPU_material_textures(GPUMaterial *material)
char * GPU_material_split_sub_function(GPUMaterial *material, eGPUType return_type, GPUNodeLink **link)
struct Scene * GPU_material_scene(GPUMaterial *material)
bool GPU_material_sss_profile_create(GPUMaterial *material, float radii[3])
void GPU_material_release(GPUMaterial *mat)
GPUNodeLink * GPU_constant(const float *num)
eGPUMaterialStatus GPU_material_status(GPUMaterial *mat)
@ GPU_MATFLAG_SHADER_TO_RGBA
@ GPU_MATFLAG_PRINCIPLED_GLASS
@ GPU_MATFLAG_OBJECT_INFO
@ GPU_MATFLAG_PRINCIPLED_DIELECTRIC
@ GPU_MATFLAG_BARYCENTRIC
@ GPU_MATFLAG_PRINCIPLED_CLEARCOAT
@ GPU_MATFLAG_LOOKDEV_HACK
@ GPU_MATFLAG_PRINCIPLED_ANY
@ GPU_MATFLAG_TRANSPARENT
@ GPU_MATFLAG_PRINCIPLED_METALLIC
void GPU_material_flag_set(GPUMaterial *mat, eGPUMaterialFlag flag)
GPUNodeLink * GPU_uniform(const float *num)
GPUNodeLink * GPU_image_tiled(GPUMaterial *mat, struct Image *ima, struct ImageUser *iuser, eGPUSamplerState sampler_state)
struct GPUUniformBuf * GPU_material_create_sss_profile_ubo(void)
struct GPUPass * GPU_material_get_pass(GPUMaterial *material)
void GPU_uniform_attr_list_free(GPUUniformAttrList *set)
void GPU_material_output_volume(GPUMaterial *material, GPUNodeLink *link)
eGPUMaterialFlag GPU_material_flag(const GPUMaterial *mat)
struct Material * GPU_material_get_material(GPUMaterial *material)
struct GPUUniformBuf * GPU_material_uniform_buffer_get(GPUMaterial *material)
struct GPUMaterialTexture GPUMaterialTexture
ListBase GPU_material_attributes(GPUMaterial *material)
void GPU_pass_cache_garbage_collect(void)
GPUMaterial * GPU_material_from_nodetree_find(struct ListBase *gpumaterials, const void *engine_type, int options)
struct GPUUniformAttr GPUUniformAttr
struct GPUUniformBuf * GPU_material_sss_profile_get(GPUMaterial *material, int sample_len, struct GPUTexture **tex_profile)
void GPU_pass_cache_init(void)
void GPU_material_uniform_buffer_create(GPUMaterial *material, ListBase *inputs)
bool GPU_link(GPUMaterial *mat, const char *name,...)
bool GPU_material_has_volume_output(GPUMaterial *mat)
struct GPUNodeStack GPUNodeStack
bool GPU_stack_link(GPUMaterial *mat, struct bNode *node, const char *name, GPUNodeStack *in, GPUNodeStack *out,...)
struct GPUShader GPUShader
struct GPUShaderCreateInfo GPUShaderCreateInfo
struct GPUTexture GPUTexture
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
CCL_NAMESPACE_BEGIN struct Options options
DEGForeachIDComponentCallback callback
SyclQueue void void * src
SyclQueue void void size_t num_bytes void
static const pxr::TfToken out("out", pxr::TfToken::Immortal)
MutableSpan< float > radii
static bNodeSocketTemplate inputs[]
unsigned __int64 uint64_t
char * material_functions
GPUShaderCreateInfo * create_info
struct GPUMaterialAttribute * prev
eGPUDefaultValue default_value
struct GPUMaterialAttribute * next
struct GPUMaterialTexture * prev
struct GPUMaterialTexture * next
char tiled_mapping_name[32]
struct GPUTexture ** colorband
struct GPUNodeLink * link