139 const char **vert_code,
140 const char **geom_code,
141 const char **frag_lib,
142 const char **defines);
180 const short *falloff_type,
181 const float *sharpness);
188 const void *engine_type,
194 const void *engine_type,
196 const bool is_volume_shader,
197 const char *vert_code,
198 const char *geom_code,
199 const char *frag_lib,
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
struct GPUUniformAttrList GPUUniformAttrList
GPUNodeLink * GPU_builtin(eGPUBuiltin builtin)
void GPU_material_free(struct ListBase *gpumaterial)
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_link(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_color_band(GPUMaterial *mat, int size, float *pixels, float *row)
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(* GPUMaterialEvalCallbackFn)(GPUMaterial *mat, int options, const char **vert_code, const char **geom_code, const char **frag_lib, const char **defines)
GPUNodeLink * GPU_image_tiled_mapping(GPUMaterial *mat, struct Image *ima, struct ImageUser *iuser)
void GPU_material_add_output_link_aov(GPUMaterial *material, GPUNodeLink *link, int hash)
GPUNodeLink * GPU_attribute(GPUMaterial *mat, CustomDataType type, const char *name)
GPUNodeLink * GPU_uniform_attribute(GPUMaterial *mat, const char *name, bool use_dupli)
void GPU_pass_cache_free(void)
@ GPU_MATFLAG_BARYCENTRIC
ListBase GPU_material_textures(GPUMaterial *material)
GPUMaterial * GPU_material_from_nodetree(struct Scene *scene, struct Material *ma, struct bNodeTree *ntree, struct ListBase *gpumaterials, const void *engine_type, const int options, const bool is_volume_shader, const char *vert_code, const char *geom_code, const char *frag_lib, const char *defines, const char *name, GPUMaterialEvalCallbackFn callback)
struct Scene * GPU_material_scene(GPUMaterial *material)
struct GPUMaterialVolumeGrid GPUMaterialVolumeGrid
GPUNodeLink * GPU_constant(const float *num)
eGPUMaterialStatus GPU_material_status(GPUMaterial *mat)
bool GPU_material_is_volume_shader(GPUMaterial *mat)
@ GPU_PARTICLE_ANG_VELOCITY
@ GPU_INVERSE_OBJECT_MATRIX
@ GPU_INVERSE_VIEW_MATRIX
@ GPU_PARTICLE_SCALAR_PROPS
@ GPU_CAMERA_TEXCO_FACTORS
@ GPU_INVERSE_LOC_TO_VIEW_MATRIX
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)
GPUNodeLink * GPU_volume_grid(GPUMaterial *mat, const char *name, eGPUVolumeDefaultValue default_value)
struct GPUPass * GPU_material_get_pass(GPUMaterial *material)
void GPU_material_flag_set(GPUMaterial *mat, eGPUMatFlag flag)
void GPU_uniform_attr_list_free(GPUUniformAttrList *set)
struct Material * GPU_material_get_material(GPUMaterial *material)
ListBase GPU_material_volume_grids(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_sss_profile_create(GPUMaterial *material, float radii[3], const short *falloff_type, const float *sharpness)
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)
bool GPU_material_flag_get(GPUMaterial *mat, eGPUMatFlag flag)
struct GPUNodeStack GPUNodeStack
bool GPU_stack_link(GPUMaterial *mat, struct bNode *node, const char *name, GPUNodeStack *in, GPUNodeStack *out,...)
GPUNodeLink * GPU_uniformbuf_link_out(struct GPUMaterial *mat, struct bNode *node, struct GPUNodeStack *stack, const int index)
struct GPUShader GPUShader
struct GPUTexture GPUTexture
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
CCL_NAMESPACE_BEGIN struct Options options
DEGForeachIDComponentCallback callback
static bNodeSocketTemplate inputs[]
struct GPUMaterialAttribute * prev
struct GPUMaterialAttribute * next
struct GPUMaterialTexture * prev
struct GPUMaterialTexture * next
char tiled_mapping_name[32]
struct GPUTexture ** colorband
struct GPUMaterialVolumeGrid * prev
struct GPUMaterialVolumeGrid * next
eGPUVolumeDefaultValue default_value
struct GPUNodeLink * link