Blender  V2.93
Enumerations | Functions
BKE_material.h File Reference

General operations, lookup, etc. for materials. More...

Go to the source code of this file.

Enumerations

enum  { BKE_MAT_ASSIGN_EXISTING , BKE_MAT_ASSIGN_USERPREF , BKE_MAT_ASSIGN_OBDATA , BKE_MAT_ASSIGN_OBJECT }
 

Functions

void BKE_materials_init (void)
 
void BKE_materials_exit (void)
 
void BKE_object_materials_test (struct Main *bmain, struct Object *ob, struct ID *id)
 
void BKE_objects_materials_test_all (struct Main *bmain, struct ID *id)
 
void BKE_object_material_resize (struct Main *bmain, struct Object *ob, const short totcol, bool do_id_user)
 
void BKE_object_material_remap (struct Object *ob, const unsigned int *remap)
 
void BKE_object_material_remap_calc (struct Object *ob_dst, struct Object *ob_src, short *remap_src_to_dst)
 
struct MaterialBKE_material_add (struct Main *bmain, const char *name)
 
struct MaterialBKE_gpencil_material_add (struct Main *bmain, const char *name)
 
void BKE_gpencil_material_attr_init (struct Material *ma)
 
struct Material *** BKE_object_material_array_p (struct Object *ob)
 
short * BKE_object_material_len_p (struct Object *ob)
 
struct Material *** BKE_id_material_array_p (struct ID *id)
 
short * BKE_id_material_len_p (struct ID *id)
 
struct Material ** BKE_object_material_get_p (struct Object *ob, short act)
 
struct MaterialBKE_object_material_get (struct Object *ob, short act)
 
void BKE_id_material_assign (struct Main *bmain, struct ID *id, struct Material *ma, short act)
 
void BKE_object_material_assign (struct Main *bmain, struct Object *ob, struct Material *ma, short act, int assign_type)
 
void BKE_object_material_array_assign (struct Main *bmain, struct Object *ob, struct Material ***matar, int totcol, const bool to_object_only)
 
short BKE_object_material_slot_find_index (struct Object *ob, struct Material *ma)
 
bool BKE_object_material_slot_add (struct Main *bmain, struct Object *ob)
 
bool BKE_object_material_slot_remove (struct Main *bmain, struct Object *ob)
 
bool BKE_object_material_slot_used (struct ID *id, short actcol)
 
struct MaterialBKE_gpencil_material (struct Object *ob, short act)
 
struct MaterialGPencilStyleBKE_gpencil_material_settings (struct Object *ob, short act)
 
void BKE_texpaint_slot_refresh_cache (struct Scene *scene, struct Material *ma)
 
void BKE_texpaint_slots_refresh_object (struct Scene *scene, struct Object *ob)
 
struct bNodeBKE_texpaint_slot_material_find_node (struct Material *ma, short texpaint_slot)
 
void BKE_id_materials_copy (struct Main *bmain, struct ID *id_src, struct ID *id_dst)
 
void BKE_id_material_resize (struct Main *bmain, struct ID *id, short totcol, bool do_id_user)
 
void BKE_id_material_append (struct Main *bmain, struct ID *id, struct Material *ma)
 
struct MaterialBKE_id_material_pop (struct Main *bmain, struct ID *id, int index)
 
void BKE_id_material_clear (struct Main *bmain, struct ID *id)
 
void ramp_blend (int type, float r_col[3], const float fac, const float col[3])
 
void BKE_material_copybuf_clear (void)
 
void BKE_material_copybuf_free (void)
 
void BKE_material_copybuf_copy (struct Main *bmain, struct Material *ma)
 
void BKE_material_copybuf_paste (struct Main *bmain, struct Material *ma)
 
struct MaterialBKE_material_default_empty (void)
 
struct MaterialBKE_material_default_holdout (void)
 
struct MaterialBKE_material_default_surface (void)
 
struct MaterialBKE_material_default_volume (void)
 
struct MaterialBKE_material_default_gpencil (void)
 
void BKE_material_defaults_free_gpu (void)
 
void BKE_material_eval (struct Depsgraph *depsgraph, struct Material *material)
 

Detailed Description

General operations, lookup, etc. for materials.

Definition in file BKE_material.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
BKE_MAT_ASSIGN_EXISTING 
BKE_MAT_ASSIGN_USERPREF 
BKE_MAT_ASSIGN_OBDATA 
BKE_MAT_ASSIGN_OBJECT 

Definition at line 68 of file BKE_material.h.

Function Documentation

◆ BKE_gpencil_material()

struct Material* BKE_gpencil_material ( struct Object ob,
short  act 
)

◆ BKE_gpencil_material_add()

struct Material* BKE_gpencil_material_add ( struct Main bmain,
const char *  name 
)

◆ BKE_gpencil_material_attr_init()

void BKE_gpencil_material_attr_init ( struct Material ma)

◆ BKE_gpencil_material_settings()

struct MaterialGPencilStyle* BKE_gpencil_material_settings ( struct Object ob,
short  act 
)

◆ BKE_id_material_append()

void BKE_id_material_append ( struct Main bmain,
struct ID id,
struct Material ma 
)

◆ BKE_id_material_array_p()

struct Material*** BKE_id_material_array_p ( struct ID id)

◆ BKE_id_material_assign()

void BKE_id_material_assign ( struct Main bmain,
struct ID id,
struct Material ma,
short  act 
)

◆ BKE_id_material_clear()

void BKE_id_material_clear ( struct Main bmain,
struct ID id 
)

◆ BKE_id_material_len_p()

short* BKE_id_material_len_p ( struct ID id)

◆ BKE_id_material_pop()

struct Material* BKE_id_material_pop ( struct Main bmain,
struct ID id,
int  index 
)

◆ BKE_id_material_resize()

void BKE_id_material_resize ( struct Main bmain,
struct ID id,
short  totcol,
bool  do_id_user 
)

◆ BKE_id_materials_copy()

void BKE_id_materials_copy ( struct Main bmain,
struct ID id_src,
struct ID id_dst 
)

◆ BKE_material_add()

struct Material* BKE_material_add ( struct Main bmain,
const char *  name 
)

◆ BKE_material_copybuf_clear()

void BKE_material_copybuf_clear ( void  )

Definition at line 1655 of file material.c.

References matcopied, and matcopybuf.

Referenced by WM_init().

◆ BKE_material_copybuf_copy()

void BKE_material_copybuf_copy ( struct Main bmain,
struct Material ma 
)

◆ BKE_material_copybuf_free()

void BKE_material_copybuf_free ( void  )

◆ BKE_material_copybuf_paste()

void BKE_material_copybuf_paste ( struct Main bmain,
struct Material ma 
)

◆ BKE_material_default_empty()

struct Material* BKE_material_default_empty ( void  )

Definition at line 1819 of file material.c.

References default_material_empty.

Referenced by workbench_object_material_get().

◆ BKE_material_default_gpencil()

struct Material* BKE_material_default_gpencil ( void  )

◆ BKE_material_default_holdout()

struct Material* BKE_material_default_holdout ( void  )

Definition at line 1824 of file material.c.

References default_material_holdout.

Referenced by eevee_object_material_get().

◆ BKE_material_default_surface()

struct Material* BKE_material_default_surface ( void  )

◆ BKE_material_default_volume()

struct Material* BKE_material_default_volume ( void  )

◆ BKE_material_defaults_free_gpu()

void BKE_material_defaults_free_gpu ( void  )

◆ BKE_material_eval()

void BKE_material_eval ( struct Depsgraph depsgraph,
struct Material material 
)

◆ BKE_materials_exit()

void BKE_materials_exit ( void  )

Definition at line 1868 of file material.c.

References default_materials, and material_free_data().

Referenced by WM_exit_ex().

◆ BKE_materials_init()

void BKE_materials_init ( void  )

◆ BKE_object_material_array_assign()

void BKE_object_material_array_assign ( struct Main bmain,
struct Object ob,
struct Material ***  matar,
int  totcol,
const bool  to_object_only 
)

◆ BKE_object_material_array_p()

struct Material*** BKE_object_material_array_p ( struct Object ob)

◆ BKE_object_material_assign()

void BKE_object_material_assign ( struct Main bmain,
struct Object ob,
struct Material ma,
short  act,
int  assign_type 
)

◆ BKE_object_material_get()

struct Material* BKE_object_material_get ( struct Object ob,
short  act 
)

Definition at line 697 of file material.c.

References BKE_object_material_get_p(), and NULL.

Referenced by InstanceWriter::add_material_bindings(), animdata_filter_ds_materials(), bake_object_check(), bc_has_animations(), BKE_gpencil_convert_mesh(), BKE_gpencil_material(), BKE_gpencil_material_find_index_by_name_prefix(), BKE_gpencil_material_settings(), BKE_gpencil_object_material_ensure_by_name(), BKE_gpencil_object_material_ensure_from_active_input_material(), BKE_gpencil_object_material_ensure_from_brush(), BKE_gpencil_object_material_from_brush_get(), BKE_gpencil_object_material_index_get(), BKE_gpencil_object_material_index_get_by_name(), BKE_object_material_remap_calc(), BKE_texpaint_slots_refresh_object(), buttons_context_path_material(), GeometryExporter::create_mesh_primitive_list(), ED_gpencil_material_enum_itemf(), ED_mesh_join_objects_exec(), ED_object_assign_active_image(), ED_object_get_active_image(), ED_object_texture_paint_mode_enter_ex(), ED_paint_proj_mesh_data_check(), EEVEE_cryptomatte_cache_populate(), eevee_object_material_get(), EEVEE_volumes_cache_object_add(), AnimationExporter::export_curve_animation(), eyedropper_add_material(), BCAnimationCurve::get_animation_name(), get_default_texture_layer_name_for_object(), get_or_create_current_material(), gpencil_check_same_material_color(), gpencil_fill_invoke(), gpencil_layer_duplicate_object_exec(), gpencil_material_find_index_by_name(), gpencil_material_lock_unsused_exec(), gpencil_modifier_masking_panel_draw(), gpencil_strokes_copy_exec(), imapaint_face_image(), imapaint_pick_uv(), Freestyle::BlenderFileLoader::insertShapeNode(), join_mesh_single(), lineart_geometry_object_load(), make_links_data_exec(), material_slot_assign_exec(), material_slot_de_select(), mesh_new_from_mball_object(), object_frame_has_keyframe(), object_select_all_by_material(), object_select_linked_exec(), ForEachMaterialFunctor< Functor >::operator()(), overlay_gpencil_draw_stroke_color_name(), OVERLAY_particle_cache_populate(), proj_paint_add_slot(), proj_paint_state_mesh_eval_init(), psys_get_particle_on_path(), psys_thread_context_init(), shader_get_from_context(), single_mat_users(), AnimationImporter::translate_Animations(), workbench_object_material_get(), and workbench_volume_material_color().

◆ BKE_object_material_get_p()

struct Material** BKE_object_material_get_p ( struct Object ob,
short  act 
)

◆ BKE_object_material_len_p()

short* BKE_object_material_len_p ( struct Object ob)

◆ BKE_object_material_remap()

void BKE_object_material_remap ( struct Object ob,
const unsigned int *  remap 
)

◆ BKE_object_material_remap_calc()

void BKE_object_material_remap_calc ( Object ob_dst,
Object ob_src,
short *  remap_src_to_dst 
)

Calculate a material remapping from ob_src to ob_dst.

Parameters
remap_src_to_dstAn array the size of ob_src->totcol where index values are filled in which map to ob_dst materials.

Definition at line 983 of file material.c.

References BKE_object_material_get(), BLI_ghash_free(), BLI_ghash_lookup_p(), BLI_ghash_ptr_new_ex(), BLI_ghash_reinsert(), NULL, POINTER_AS_INT, POINTER_FROM_INT, and Object::totcol.

Referenced by BMD_mesh_intersection().

◆ BKE_object_material_resize()

void BKE_object_material_resize ( struct Main bmain,
struct Object ob,
const short  totcol,
bool  do_id_user 
)

◆ BKE_object_material_slot_add()

bool BKE_object_material_slot_add ( struct Main bmain,
struct Object ob 
)

◆ BKE_object_material_slot_find_index()

short BKE_object_material_slot_find_index ( struct Object ob,
struct Material ma 
)

◆ BKE_object_material_slot_remove()

bool BKE_object_material_slot_remove ( struct Main bmain,
struct Object ob 
)

◆ BKE_object_material_slot_used()

bool BKE_object_material_slot_used ( struct ID id,
short  actcol 
)

◆ BKE_object_materials_test()

void BKE_object_materials_test ( struct Main bmain,
struct Object ob,
struct ID id 
)

◆ BKE_objects_materials_test_all()

void BKE_objects_materials_test_all ( struct Main bmain,
struct ID id 
)

◆ BKE_texpaint_slot_material_find_node()

struct bNode* BKE_texpaint_slot_material_find_node ( struct Material ma,
short  texpaint_slot 
)

◆ BKE_texpaint_slot_refresh_cache()

void BKE_texpaint_slot_refresh_cache ( struct Scene scene,
struct Material ma 
)

◆ BKE_texpaint_slots_refresh_object()

void BKE_texpaint_slots_refresh_object ( struct Scene scene,
struct Object ob 
)

◆ ramp_blend()

void ramp_blend ( int  type,
float  r_col[3],
const float  fac,
const float  col[3] 
)