104 bool deferred_compilation,
ATTR_WARN_UNUSED_RESULT const size_t num
#define ENUM_OPERATORS(_type, _max)
These structs are the foundation for all linked lists in the library system.
void(*)(void *thunk, GPUMaterial *material) ConstructGPUMaterialFn
bool GPU_stack_link(GPUMaterial *mat, const bNode *node, const char *name, GPUNodeStack *in, GPUNodeStack *out,...)
char * GPU_material_split_sub_function(GPUMaterial *material, eGPUType return_type, GPUNodeLink **link)
uint64_t GPU_material_uuid_get(GPUMaterial *mat)
GPUNodeLink * GPU_constant(const float *num)
void(*)(void *thunk, GPUMaterial *mat, struct GPUCodegenOutput *codegen) GPUCodegenCallbackFn
ListBase GPU_material_attributes(const GPUMaterial *material)
void GPU_material_output_surface(GPUMaterial *material, GPUNodeLink *link)
GPUNodeLink * GPU_attribute_hair_length(GPUMaterial *mat)
GPUPass * GPU_material_get_pass(GPUMaterial *material)
bool GPU_material_has_surface_output(GPUMaterial *mat)
GPUNodeLink * GPU_layer_attribute(GPUMaterial *mat, const char *name)
GPUNodeLink * GPU_attribute_default_color(GPUMaterial *mat)
void GPU_material_free_single(GPUMaterial *material)
void GPU_materials_free(Main *bmain)
void GPU_material_free(ListBase *gpumaterial)
void GPU_material_output_displacement(GPUMaterial *material, GPUNodeLink *link)
const ListBase * GPU_material_layer_attributes(const GPUMaterial *material)
void GPU_material_output_thickness(GPUMaterial *material, GPUNodeLink *link)
GPUShader * GPU_material_get_shader(GPUMaterial *material)
void GPU_material_add_output_link_aov(GPUMaterial *material, GPUNodeLink *link, int hash)
bool GPU_material_flag_get(const GPUMaterial *mat, eGPUMaterialFlag flag)
GPUNodeLink * GPU_color_band(GPUMaterial *mat, int size, float *pixels, float *r_row)
ListBase GPU_material_textures(GPUMaterial *material)
void GPU_material_add_output_link_composite(GPUMaterial *material, GPUNodeLink *link)
GPUMaterial * GPU_material_from_callbacks(eGPUMaterialEngine engine, ConstructGPUMaterialFn construct_function_cb, GPUCodegenCallbackFn generate_code_function_cb, void *thunk)
eGPUMaterialStatus GPU_material_status(GPUMaterial *mat)
@ GPU_MATFLAG_VOLUME_SCATTER
@ GPU_MATFLAG_SHADER_TO_RGBA
@ GPU_MATFLAG_VOLUME_ABSORPTION
@ GPU_MATFLAG_OBJECT_INFO
@ GPU_MATFLAG_BARYCENTRIC
@ GPU_MATFLAG_TRANSLUCENT
@ GPU_MATFLAG_TRANSPARENT
void GPU_material_flag_set(GPUMaterial *mat, eGPUMaterialFlag flag)
Material * GPU_material_get_material(GPUMaterial *material)
GPUNodeLink * GPU_image(GPUMaterial *mat, Image *ima, ImageUser *iuser, GPUSamplerState sampler_state)
void GPU_uniform_attr_list_copy(GPUUniformAttrList *dest, const GPUUniformAttrList *src)
GHash * GPU_uniform_attr_list_hash_new(const char *info)
void GPU_uniform_attr_list_free(GPUUniformAttrList *set)
void GPU_material_output_volume(GPUMaterial *material, GPUNodeLink *link)
eGPUMaterialFlag GPU_material_flag(const GPUMaterial *mat)
GPUNodeLink * GPU_uniform_attribute(GPUMaterial *mat, const char *name, bool use_dupli, uint32_t *r_hash)
uint64_t GPU_material_compilation_timestamp(GPUMaterial *mat)
GPUNodeLink * GPU_image_sky(GPUMaterial *mat, int width, int height, const float *pixels, float *layer, GPUSamplerState sampler_state)
GPUMaterial * GPU_material_from_nodetree(Material *ma, bNodeTree *ntree, ListBase *gpumaterials, const char *name, eGPUMaterialEngine engine, uint64_t shader_uuid, bool deferred_compilation, GPUCodegenCallbackFn callback, void *thunk, GPUMaterialPassReplacementCallbackFn pass_replacement_cb=nullptr)
eGPUMaterialOptimizationStatus
@ GPU_MAT_OPTIMIZATION_QUEUED
@ GPU_MAT_OPTIMIZATION_SUCCESS
@ GPU_MAT_OPTIMIZATION_SKIP
GPUPass *(*)(void *thunk, GPUMaterial *mat) GPUMaterialPassReplacementCallbackFn
const char * GPU_material_get_name(GPUMaterial *material)
void GPU_image_tiled(GPUMaterial *mat, Image *ima, ImageUser *iuser, GPUSamplerState sampler_state, GPUNodeLink **r_image_tiled_link, GPUNodeLink **r_image_tiled_mapping_link)
GPUNodeLink * GPU_attribute_with_default(GPUMaterial *mat, eCustomDataType type, const char *name, eGPUDefaultValue default_value)
GPUNodeLink * GPU_attribute(GPUMaterial *mat, eCustomDataType type, const char *name)
const GPUUniformAttrList * GPU_material_uniform_attributes(const GPUMaterial *material)
GPUNodeLink * GPU_differentiate_float_function(const char *function_name, const float filter_width)
bool GPU_material_has_displacement_output(GPUMaterial *mat)
void GPU_material_uniform_buffer_create(GPUMaterial *material, ListBase *inputs)
bool GPU_link(GPUMaterial *mat, const char *name,...)
GPUUniformBuf * GPU_material_uniform_buffer_get(GPUMaterial *material)
bool GPU_material_has_volume_output(GPUMaterial *mat)
eGPUMaterialOptimizationStatus GPU_material_optimization_status(GPUMaterial *mat)
GPUNodeLink * GPU_uniform(const float *num)
unsigned long long int uint64_t
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
static blender::bke::bNodeSocketTemplate inputs[]
std::string material_functions
GPUShaderCreateInfo * create_info
GPUMaterialAttribute * prev
eGPUDefaultValue default_value
GPUMaterialAttribute * next
GPUMaterialTexture * prev
GPUSamplerState sampler_state
char tiled_mapping_name[32]
GPUMaterialTexture * next