Blender  V3.3
BKE_material.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2001-2002 NaN Holding BV. All rights reserved. */
3 
4 #pragma once
5 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 struct ID;
15 struct Main;
16 struct Material;
17 struct Object;
18 struct Scene;
19 struct bNode;
20 
21 /* -------------------------------------------------------------------- */
25 void BKE_materials_init(void);
26 void BKE_materials_exit(void);
27 
30 /* -------------------------------------------------------------------- */
34 void BKE_object_materials_test(struct Main *bmain, struct Object *ob, struct ID *id);
35 void BKE_objects_materials_test_all(struct Main *bmain, struct ID *id);
36 void BKE_object_material_resize(struct Main *bmain,
37  struct Object *ob,
38  short totcol,
39  bool do_id_user);
40 void BKE_object_material_remap(struct Object *ob, const unsigned int *remap);
47 void BKE_object_material_remap_calc(struct Object *ob_dst,
48  struct Object *ob_src,
49  short *remap_src_to_dst);
54  struct Object *ob_orig,
55  const struct ID *data_eval);
56 struct Material *BKE_material_add(struct Main *bmain, const char *name);
57 struct Material *BKE_gpencil_material_add(struct Main *bmain, const char *name);
59 
60 /* UNUSED */
61 // void automatname(struct Material *);
62 
65 /* -------------------------------------------------------------------- */
69 struct Material ***BKE_object_material_array_p(struct Object *ob);
70 short *BKE_object_material_len_p(struct Object *ob);
74 struct Material ***BKE_id_material_array_p(struct ID *id); /* same but for ID's */
75 short *BKE_id_material_len_p(struct ID *id);
76 
77 enum {
78  /* use existing link option */
83 };
84 
85 struct Material **BKE_object_material_get_p(struct Object *ob, short act);
86 struct Material *BKE_object_material_get(struct Object *ob, short act);
87 void BKE_id_material_assign(struct Main *bmain, struct ID *id, struct Material *ma, short act);
89  struct Main *bmain, struct Object *ob, struct Material *ma, short act, int assign_type);
90 
98  struct Object *ob,
99  struct Material *ma,
100  short act);
104 void BKE_object_material_array_assign(struct Main *bmain,
105  struct Object *ob,
106  struct Material ***matar,
107  int totcol,
108  bool to_object_only);
109 
110 short BKE_object_material_slot_find_index(struct Object *ob, struct Material *ma);
111 bool BKE_object_material_slot_add(struct Main *bmain, struct Object *ob);
112 bool BKE_object_material_slot_remove(struct Main *bmain, struct Object *ob);
113 bool BKE_object_material_slot_used(struct Object *object, short actcol);
114 
115 struct Material *BKE_gpencil_material(struct Object *ob, short act);
116 struct MaterialGPencilStyle *BKE_gpencil_material_settings(struct Object *ob, short act);
117 
119  struct Material *ma,
120  const struct Object *ob);
121 void BKE_texpaint_slots_refresh_object(struct Scene *scene, struct Object *ob);
122 struct bNode *BKE_texpaint_slot_material_find_node(struct Material *ma, short texpaint_slot);
123 
126 /* -------------------------------------------------------------------- */
130 void BKE_id_materials_copy(struct Main *bmain, struct ID *id_src, struct ID *id_dst);
131 void BKE_id_material_resize(struct Main *bmain, struct ID *id, short totcol, bool do_id_user);
132 void BKE_id_material_append(struct Main *bmain, struct ID *id, struct Material *ma);
133 struct Material *BKE_id_material_pop(struct Main *bmain,
134  struct ID *id,
135  /* index is an int because of RNA. */
136  int index);
137 void BKE_id_material_clear(struct Main *bmain, struct ID *id);
138 
141 /* -------------------------------------------------------------------- */
152 struct Material *BKE_object_material_get_eval(struct Object *ob, short act);
153 int BKE_object_material_count_eval(struct Object *ob);
154 void BKE_id_material_eval_assign(struct ID *id, int slot, struct Material *material);
160 
163 /* -------------------------------------------------------------------- */
172 void ramp_blend(int type, float r_col[3], float fac, const float col[3]);
173 
176 /* -------------------------------------------------------------------- */
180 void BKE_material_copybuf_clear(void);
181 void BKE_material_copybuf_free(void);
182 void BKE_material_copybuf_copy(struct Main *bmain, struct Material *ma);
183 void BKE_material_copybuf_paste(struct Main *bmain, struct Material *ma);
184 
187 /* -------------------------------------------------------------------- */
196 
198 
201 /* -------------------------------------------------------------------- */
205 struct Depsgraph;
206 
207 void BKE_material_eval(struct Depsgraph *depsgraph, struct Material *material);
208 
211 #ifdef __cplusplus
212 }
213 #endif
struct MaterialGPencilStyle * BKE_gpencil_material_settings(struct Object *ob, short act)
Definition: material.c:805
void BKE_materials_init(void)
Definition: material.c:2078
struct Material *** BKE_object_material_array_p(struct Object *ob)
Definition: material.c:311
void BKE_materials_exit(void)
Definition: material.c:2090
bool BKE_object_material_slot_remove(struct Main *bmain, struct Object *ob)
Definition: material.c:1248
struct Material * BKE_material_default_surface(void)
Definition: material.c:2051
struct Material * BKE_object_material_get(struct Object *ob, short act)
Definition: material.c:687
struct bNode * BKE_texpaint_slot_material_find_node(struct Material *ma, short texpaint_slot)
Definition: material.c:1599
int BKE_object_material_count_eval(struct Object *ob)
Definition: material.c:746
void BKE_id_material_assign(struct Main *bmain, struct ID *id, struct Material *ma, short act)
Definition: material.c:905
void BKE_material_eval(struct Depsgraph *depsgraph, struct Material *material)
Definition: material.c:1932
bool BKE_object_material_slot_used(struct Object *object, short actcol)
Definition: material.c:452
struct Material * BKE_material_default_holdout(void)
Definition: material.c:2046
struct Material *** BKE_id_material_array_p(struct ID *id)
Definition: material.c:377
void BKE_objects_materials_test_all(struct Main *bmain, struct ID *id)
Definition: material.c:886
void BKE_object_material_assign_single_obdata(struct Main *bmain, struct Object *ob, struct Material *ma, short act)
Definition: material.c:1052
void BKE_object_material_remap_calc(struct Object *ob_dst, struct Object *ob_src, short *remap_src_to_dst)
Definition: material.c:1090
struct Material * BKE_gpencil_material(struct Object *ob, short act)
Definition: material.c:795
void BKE_texpaint_slot_refresh_cache(struct Scene *scene, struct Material *ma, const struct Object *ob)
Definition: material.c:1501
struct Material * BKE_gpencil_material_add(struct Main *bmain, const char *name)
Definition: material.c:298
void BKE_object_materials_test(struct Main *bmain, struct Object *ob, struct ID *id)
Definition: material.c:864
void BKE_id_material_append(struct Main *bmain, struct ID *id, struct Material *ma)
Definition: material.c:559
void BKE_material_copybuf_free(void)
Definition: material.c:1877
short * BKE_id_material_len_p(struct ID *id)
Definition: material.c:403
void BKE_material_copybuf_paste(struct Main *bmain, struct Material *ma)
Definition: material.c:1907
void BKE_texpaint_slots_refresh_object(struct Scene *scene, struct Object *ob)
Definition: material.c:1564
void BKE_object_material_assign(struct Main *bmain, struct Object *ob, struct Material *ma, short act, int assign_type)
Definition: material.c:1047
struct Material * BKE_object_material_get_eval(struct Object *ob, short act)
Definition: material.c:707
void BKE_id_materials_copy(struct Main *bmain, struct ID *id_src, struct ID *id_dst)
Definition: material.c:507
struct Material * BKE_material_default_empty(void)
Definition: material.c:2041
void BKE_object_material_resize(struct Main *bmain, struct Object *ob, short totcol, bool do_id_user)
Definition: material.c:819
void BKE_material_copybuf_copy(struct Main *bmain, struct Material *ma)
Definition: material.c:1889
void ramp_blend(int type, float r_col[3], float fac, const float col[3])
Definition: material.c:1611
void BKE_object_material_from_eval_data(struct Main *bmain, struct Object *ob_orig, const struct ID *data_eval)
struct Material * BKE_id_material_pop(struct Main *bmain, struct ID *id, int index)
Definition: material.c:583
struct Material * BKE_material_default_volume(void)
Definition: material.c:2056
void BKE_object_material_array_assign(struct Main *bmain, struct Object *ob, struct Material ***matar, int totcol, bool to_object_only)
Definition: material.c:1173
void BKE_id_material_clear(struct Main *bmain, struct ID *id)
Definition: material.c:621
void BKE_object_material_remap(struct Object *ob, const unsigned int *remap)
Definition: material.c:1060
struct Material * BKE_material_default_gpencil(void)
Definition: material.c:2061
struct Material * BKE_material_add(struct Main *bmain, const char *name)
Definition: material.c:289
void BKE_id_material_eval_ensure_default_slot(struct ID *id)
Definition: material.c:784
short BKE_object_material_slot_find_index(struct Object *ob, struct Material *ma)
Definition: material.c:1205
void BKE_gpencil_material_attr_init(struct Material *ma)
Definition: material.c:270
bool BKE_object_material_slot_add(struct Main *bmain, struct Object *ob)
Definition: material.c:1232
void BKE_material_defaults_free_gpu(void)
Definition: material.c:2066
struct Material ** BKE_object_material_get_p(struct Object *ob, short act)
Definition: material.c:644
void BKE_material_copybuf_clear(void)
Definition: material.c:1871
void BKE_id_material_eval_assign(struct ID *id, int slot, struct Material *material)
Definition: material.c:758
short * BKE_object_material_len_p(struct Object *ob)
Definition: material.c:344
void BKE_id_material_resize(struct Main *bmain, struct ID *id, short totcol, bool do_id_user)
Definition: material.c:528
@ BKE_MAT_ASSIGN_OBDATA
Definition: BKE_material.h:81
@ BKE_MAT_ASSIGN_USERPREF
Definition: BKE_material.h:80
@ BKE_MAT_ASSIGN_OBJECT
Definition: BKE_material.h:82
@ BKE_MAT_ASSIGN_EXISTING
Definition: BKE_material.h:79
struct Depsgraph Depsgraph
Definition: DEG_depsgraph.h:35
_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
Scene scene
Material material
const Depsgraph * depsgraph
uint col
Definition: DNA_ID.h:368
Definition: BKE_main.h:121