Cleanup: material API naming
- Use 'BKE_object_material_*', 'BKE_id_material_*' prefix for functions that operate on Object and ID types. - Use '_len' suffix for length (matching BLI naming). - Use '_p' suffix for functions that return a pointer to values where the value would typically be returned. Functions renamed: - BKE_object_material_resize was BKE_material_resize_object - BKE_object_material_remap was BKE_material_remap_object - BKE_object_material_remap_calc was BKE_material_remap_object_calc - BKE_object_material_array_p was BKE_object_material_array - BKE_object_material_len_p was BKE_object_material_num - BKE_id_material_array_p was BKE_id_material_array - BKE_id_material_len_p was BKE_id_material_num - BKE_id_material_resize was BKE_material_resize_id - BKE_id_material_append was BKE_material_append_id - BKE_id_material_pop was BKE_material_pop_id - BKE_id_material_clear was BKE_material_clear_id
This commit is contained in:
@@ -45,13 +45,13 @@ void BKE_materials_exit(void);
|
||||
void BKE_material_free(struct Material *ma);
|
||||
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_material_resize_object(struct Main *bmain,
|
||||
void BKE_object_material_resize(struct Main *bmain,
|
||||
struct Object *ob,
|
||||
const short totcol,
|
||||
bool do_id_user);
|
||||
void BKE_material_init(struct Material *ma);
|
||||
void BKE_material_remap_object(struct Object *ob, const unsigned int *remap);
|
||||
void BKE_material_remap_object_calc(struct Object *ob_dst,
|
||||
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 Material *BKE_material_add(struct Main *bmain, const char *name);
|
||||
@@ -70,10 +70,10 @@ void BKE_gpencil_material_attr_init(struct Material *ma);
|
||||
|
||||
/* material slots */
|
||||
|
||||
struct Material ***BKE_object_material_array(struct Object *ob);
|
||||
short *BKE_object_material_num(struct Object *ob);
|
||||
struct Material ***BKE_id_material_array(struct ID *id); /* same but for ID's */
|
||||
short *BKE_id_material_num(struct ID *id);
|
||||
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); /* same but for ID's */
|
||||
short *BKE_id_material_len_p(struct ID *id);
|
||||
|
||||
enum {
|
||||
/* use existing link option */
|
||||
@@ -106,13 +106,13 @@ void BKE_texpaint_slots_refresh_object(struct Scene *scene, struct Object *ob);
|
||||
struct bNode *BKE_texpaint_slot_material_find_node(struct Material *ma, short texpaint_slot);
|
||||
|
||||
/* rna api */
|
||||
void BKE_material_resize_id(struct Main *bmain, struct ID *id, short totcol, bool do_id_user);
|
||||
void BKE_material_append_id(struct Main *bmain, struct ID *id, struct Material *ma);
|
||||
struct Material *BKE_material_pop_id(struct Main *bmain,
|
||||
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 Material *BKE_id_material_pop(struct Main *bmain,
|
||||
struct ID *id,
|
||||
/* index is an int because of RNA. */
|
||||
int index);
|
||||
void BKE_material_clear_id(struct Main *bmain, struct ID *id);
|
||||
void BKE_id_material_clear(struct Main *bmain, struct ID *id);
|
||||
/* rendering */
|
||||
|
||||
void ramp_blend(int type, float r_col[3], const float fac, const float col[3]);
|
||||
|
||||
@@ -2368,7 +2368,7 @@ void BKE_gpencil_stats_update(bGPdata *gpd)
|
||||
/* get material index (0-based like mat_nr not actcol) */
|
||||
int BKE_gpencil_object_material_get_index(Object *ob, Material *ma)
|
||||
{
|
||||
short *totcol = BKE_object_material_num(ob);
|
||||
short *totcol = BKE_object_material_len_p(ob);
|
||||
Material *read_ma = NULL;
|
||||
for (short i = 0; i < *totcol; i++) {
|
||||
read_ma = BKE_object_material_get(ob, i + 1);
|
||||
|
||||
@@ -235,7 +235,7 @@ void BKE_material_make_local(Main *bmain, Material *ma, const int flags)
|
||||
BKE_lib_id_make_local_generic(bmain, &ma->id, flags);
|
||||
}
|
||||
|
||||
Material ***BKE_object_material_array(Object *ob)
|
||||
Material ***BKE_object_material_array_p(Object *ob)
|
||||
{
|
||||
Mesh *me;
|
||||
Curve *cu;
|
||||
@@ -261,7 +261,7 @@ Material ***BKE_object_material_array(Object *ob)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
short *BKE_object_material_num(Object *ob)
|
||||
short *BKE_object_material_len_p(Object *ob)
|
||||
{
|
||||
Mesh *me;
|
||||
Curve *cu;
|
||||
@@ -288,7 +288,7 @@ short *BKE_object_material_num(Object *ob)
|
||||
}
|
||||
|
||||
/* same as above but for ID's */
|
||||
Material ***BKE_id_material_array(ID *id)
|
||||
Material ***BKE_id_material_array_p(ID *id)
|
||||
{
|
||||
/* ensure we don't try get materials from non-obdata */
|
||||
BLI_assert(OB_DATA_SUPPORT_ID(GS(id->name)));
|
||||
@@ -308,7 +308,7 @@ Material ***BKE_id_material_array(ID *id)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
short *BKE_id_material_num(ID *id)
|
||||
short *BKE_id_material_len_p(ID *id)
|
||||
{
|
||||
/* ensure we don't try get materials from non-obdata */
|
||||
BLI_assert(OB_DATA_SUPPORT_ID(GS(id->name)));
|
||||
@@ -388,10 +388,10 @@ static void material_data_index_clear_id(ID *id)
|
||||
}
|
||||
}
|
||||
|
||||
void BKE_material_resize_id(Main *bmain, ID *id, short totcol, bool do_id_user)
|
||||
void BKE_id_material_resize(Main *bmain, ID *id, short totcol, bool do_id_user)
|
||||
{
|
||||
Material ***matar = BKE_id_material_array(id);
|
||||
short *totcolp = BKE_id_material_num(id);
|
||||
Material ***matar = BKE_id_material_array_p(id);
|
||||
short *totcolp = BKE_id_material_len_p(id);
|
||||
|
||||
if (matar == NULL) {
|
||||
return;
|
||||
@@ -419,11 +419,11 @@ void BKE_material_resize_id(Main *bmain, ID *id, short totcol, bool do_id_user)
|
||||
DEG_relations_tag_update(bmain);
|
||||
}
|
||||
|
||||
void BKE_material_append_id(Main *bmain, ID *id, Material *ma)
|
||||
void BKE_id_material_append(Main *bmain, ID *id, Material *ma)
|
||||
{
|
||||
Material ***matar;
|
||||
if ((matar = BKE_id_material_array(id))) {
|
||||
short *totcol = BKE_id_material_num(id);
|
||||
if ((matar = BKE_id_material_array_p(id))) {
|
||||
short *totcol = BKE_id_material_len_p(id);
|
||||
Material **mat = MEM_callocN(sizeof(void *) * ((*totcol) + 1), "newmatar");
|
||||
if (*totcol) {
|
||||
memcpy(mat, *matar, sizeof(void *) * (*totcol));
|
||||
@@ -443,13 +443,13 @@ void BKE_material_append_id(Main *bmain, ID *id, Material *ma)
|
||||
}
|
||||
}
|
||||
|
||||
Material *BKE_material_pop_id(Main *bmain, ID *id, int index_i)
|
||||
Material *BKE_id_material_pop(Main *bmain, ID *id, int index_i)
|
||||
{
|
||||
short index = (short)index_i;
|
||||
Material *ret = NULL;
|
||||
Material ***matar;
|
||||
if ((matar = BKE_id_material_array(id))) {
|
||||
short *totcol = BKE_id_material_num(id);
|
||||
if ((matar = BKE_id_material_array_p(id))) {
|
||||
short *totcol = BKE_id_material_len_p(id);
|
||||
if (index >= 0 && index < (*totcol)) {
|
||||
ret = (*matar)[index];
|
||||
id_us_min((ID *)ret);
|
||||
@@ -481,11 +481,11 @@ Material *BKE_material_pop_id(Main *bmain, ID *id, int index_i)
|
||||
return ret;
|
||||
}
|
||||
|
||||
void BKE_material_clear_id(Main *bmain, ID *id)
|
||||
void BKE_id_material_clear(Main *bmain, ID *id)
|
||||
{
|
||||
Material ***matar;
|
||||
if ((matar = BKE_id_material_array(id))) {
|
||||
short *totcol = BKE_id_material_num(id);
|
||||
if ((matar = BKE_id_material_array_p(id))) {
|
||||
short *totcol = BKE_id_material_len_p(id);
|
||||
|
||||
while ((*totcol)--) {
|
||||
id_us_min((ID *)((*matar)[*totcol]));
|
||||
@@ -514,7 +514,7 @@ Material **BKE_object_material_get_p(Object *ob, short act)
|
||||
}
|
||||
|
||||
/* if object cannot have material, (totcolp == NULL) */
|
||||
totcolp = BKE_object_material_num(ob);
|
||||
totcolp = BKE_object_material_len_p(ob);
|
||||
if (totcolp == NULL || ob->totcol == 0) {
|
||||
return NULL;
|
||||
}
|
||||
@@ -543,7 +543,7 @@ Material **BKE_object_material_get_p(Object *ob, short act)
|
||||
act = ob->totcol;
|
||||
}
|
||||
|
||||
matarar = BKE_object_material_array(ob);
|
||||
matarar = BKE_object_material_array_p(ob);
|
||||
|
||||
if (matarar && *matarar) {
|
||||
ma_p = &(*matarar)[act - 1];
|
||||
@@ -588,7 +588,7 @@ MaterialGPencilStyle *BKE_gpencil_material_settings(Object *ob, short act)
|
||||
}
|
||||
}
|
||||
|
||||
void BKE_material_resize_object(Main *bmain, Object *ob, const short totcol, bool do_id_user)
|
||||
void BKE_object_material_resize(Main *bmain, Object *ob, const short totcol, bool do_id_user)
|
||||
{
|
||||
Material **newmatar;
|
||||
char *newmatbits;
|
||||
@@ -639,11 +639,11 @@ void BKE_object_materials_test(Main *bmain, Object *ob, ID *id)
|
||||
/* make the ob mat-array same size as 'ob->data' mat-array */
|
||||
const short *totcol;
|
||||
|
||||
if (id == NULL || (totcol = BKE_id_material_num(id)) == NULL) {
|
||||
if (id == NULL || (totcol = BKE_id_material_len_p(id)) == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
BKE_material_resize_object(bmain, ob, *totcol, false);
|
||||
BKE_object_material_resize(bmain, ob, *totcol, false);
|
||||
}
|
||||
|
||||
void BKE_objects_materials_test_all(Main *bmain, ID *id)
|
||||
@@ -652,14 +652,14 @@ void BKE_objects_materials_test_all(Main *bmain, ID *id)
|
||||
Object *ob;
|
||||
const short *totcol;
|
||||
|
||||
if (id == NULL || (totcol = BKE_id_material_num(id)) == NULL) {
|
||||
if (id == NULL || (totcol = BKE_id_material_len_p(id)) == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
BKE_main_lock(bmain);
|
||||
for (ob = bmain->objects.first; ob; ob = ob->id.next) {
|
||||
if (ob->data == id) {
|
||||
BKE_material_resize_object(bmain, ob, *totcol, false);
|
||||
BKE_object_material_resize(bmain, ob, *totcol, false);
|
||||
}
|
||||
}
|
||||
BKE_main_unlock(bmain);
|
||||
@@ -679,8 +679,8 @@ void BKE_id_material_assign(Main *bmain, ID *id, Material *ma, short act)
|
||||
|
||||
/* test arraylens */
|
||||
|
||||
totcolp = BKE_id_material_num(id);
|
||||
matarar = BKE_id_material_array(id);
|
||||
totcolp = BKE_id_material_len_p(id);
|
||||
matarar = BKE_id_material_array_p(id);
|
||||
|
||||
if (totcolp == NULL || matarar == NULL) {
|
||||
return;
|
||||
@@ -733,8 +733,8 @@ void BKE_object_material_assign(Main *bmain, Object *ob, Material *ma, short act
|
||||
|
||||
/* test arraylens */
|
||||
|
||||
totcolp = BKE_object_material_num(ob);
|
||||
matarar = BKE_object_material_array(ob);
|
||||
totcolp = BKE_object_material_len_p(ob);
|
||||
matarar = BKE_object_material_array_p(ob);
|
||||
|
||||
if (totcolp == NULL || matarar == NULL) {
|
||||
return;
|
||||
@@ -809,10 +809,10 @@ void BKE_object_material_assign(Main *bmain, Object *ob, Material *ma, short act
|
||||
}
|
||||
}
|
||||
|
||||
void BKE_material_remap_object(Object *ob, const unsigned int *remap)
|
||||
void BKE_object_material_remap(Object *ob, const unsigned int *remap)
|
||||
{
|
||||
Material ***matar = BKE_object_material_array(ob);
|
||||
const short *totcol_p = BKE_object_material_num(ob);
|
||||
Material ***matar = BKE_object_material_array_p(ob);
|
||||
const short *totcol_p = BKE_object_material_len_p(ob);
|
||||
|
||||
BLI_array_permute(ob->mat, ob->totcol, remap);
|
||||
|
||||
@@ -845,7 +845,7 @@ void BKE_material_remap_object(Object *ob, const unsigned int *remap)
|
||||
* \param remap_src_to_dst: An array the size of `ob_src->totcol`
|
||||
* where index values are filled in which map to \a ob_dst materials.
|
||||
*/
|
||||
void BKE_material_remap_object_calc(Object *ob_dst, Object *ob_src, short *remap_src_to_dst)
|
||||
void BKE_object_material_remap_calc(Object *ob_dst, Object *ob_src, short *remap_src_to_dst)
|
||||
{
|
||||
if (ob_src->totcol == 0) {
|
||||
return;
|
||||
@@ -927,8 +927,8 @@ short BKE_object_material_slot_find_index(Object *ob, Material *ma)
|
||||
return 0;
|
||||
}
|
||||
|
||||
totcolp = BKE_object_material_num(ob);
|
||||
matarar = BKE_object_material_array(ob);
|
||||
totcolp = BKE_object_material_len_p(ob);
|
||||
matarar = BKE_object_material_array_p(ob);
|
||||
|
||||
if (totcolp == NULL || matarar == NULL) {
|
||||
return 0;
|
||||
@@ -984,8 +984,8 @@ bool BKE_object_material_slot_remove(Main *bmain, Object *ob)
|
||||
* after that check indices in mesh/curve/mball!!!
|
||||
*/
|
||||
|
||||
totcolp = BKE_object_material_num(ob);
|
||||
matarar = BKE_object_material_array(ob);
|
||||
totcolp = BKE_object_material_len_p(ob);
|
||||
matarar = BKE_object_material_array_p(ob);
|
||||
|
||||
if (ELEM(NULL, matarar, *matarar)) {
|
||||
return false;
|
||||
|
||||
@@ -1711,7 +1711,7 @@ Object *BKE_object_duplicate(Main *bmain, const Object *ob, const int dupflag)
|
||||
}
|
||||
|
||||
if (dupflag & USER_DUP_MAT) {
|
||||
matarar = BKE_object_material_array(obn);
|
||||
matarar = BKE_object_material_array_p(obn);
|
||||
if (matarar) {
|
||||
for (a = 0; a < obn->totcol; a++) {
|
||||
id = (ID *)(*matarar)[a];
|
||||
|
||||
@@ -5086,11 +5086,11 @@ static void lib_link_object(FileData *fd, Main *bmain, Object *ob)
|
||||
/* When the object is local and the data is library its possible
|
||||
* the material list size gets out of sync. [#22663] */
|
||||
if (ob->data && ob->id.lib != ((ID *)ob->data)->lib) {
|
||||
const short *totcol_data = BKE_object_material_num(ob);
|
||||
const short *totcol_data = BKE_object_material_len_p(ob);
|
||||
/* Only expand so as not to loose any object materials that might be set. */
|
||||
if (totcol_data && (*totcol_data > ob->totcol)) {
|
||||
/* printf("'%s' %d -> %d\n", ob->id.name, ob->totcol, *totcol_data); */
|
||||
BKE_material_resize_object(bmain, ob, *totcol_data, false);
|
||||
BKE_object_material_resize(bmain, ob, *totcol_data, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -717,9 +717,9 @@ void DepsgraphNodeBuilder::build_object_data(Object *object, bool is_object_visi
|
||||
}
|
||||
}
|
||||
/* Materials. */
|
||||
Material ***materials_ptr = BKE_object_material_array(object);
|
||||
Material ***materials_ptr = BKE_object_material_array_p(object);
|
||||
if (materials_ptr != nullptr) {
|
||||
short *num_materials_ptr = BKE_object_material_num(object);
|
||||
short *num_materials_ptr = BKE_object_material_len_p(object);
|
||||
build_materials(*materials_ptr, *num_materials_ptr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -814,9 +814,9 @@ void DepsgraphRelationBuilder::build_object_data(Object *object)
|
||||
build_nested_shapekey(&object->id, key);
|
||||
}
|
||||
/* Materials. */
|
||||
Material ***materials_ptr = BKE_object_material_array(object);
|
||||
Material ***materials_ptr = BKE_object_material_array_p(object);
|
||||
if (materials_ptr != nullptr) {
|
||||
short *num_materials_ptr = BKE_object_material_num(object);
|
||||
short *num_materials_ptr = BKE_object_material_len_p(object);
|
||||
build_materials(*materials_ptr, *num_materials_ptr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ typedef struct ColorTemplate {
|
||||
static int gpencil_monkey_color(
|
||||
Main *bmain, Object *ob, const ColorTemplate *pct, bool stroke, bool fill)
|
||||
{
|
||||
short *totcol = BKE_object_material_num(ob);
|
||||
short *totcol = BKE_object_material_len_p(ob);
|
||||
Material *ma = NULL;
|
||||
for (short i = 0; i < *totcol; i++) {
|
||||
ma = BKE_gpencil_material(ob, i + 1);
|
||||
|
||||
@@ -50,7 +50,7 @@ typedef struct ColorTemplate {
|
||||
/* Add color an ensure duplications (matched by name) */
|
||||
static int gp_stroke_material(Main *bmain, Object *ob, const ColorTemplate *pct, const bool fill)
|
||||
{
|
||||
short *totcol = BKE_object_material_num(ob);
|
||||
short *totcol = BKE_object_material_len_p(ob);
|
||||
Material *ma = NULL;
|
||||
for (short i = 0; i < *totcol; i++) {
|
||||
ma = BKE_gpencil_material(ob, i + 1);
|
||||
|
||||
@@ -1551,7 +1551,7 @@ static int gp_stroke_lock_color_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
|
||||
short *totcol = BKE_object_material_num(ob);
|
||||
short *totcol = BKE_object_material_len_p(ob);
|
||||
|
||||
/* sanity checks */
|
||||
if (ELEM(NULL, gpd)) {
|
||||
@@ -2343,7 +2343,7 @@ int ED_gpencil_join_objects_exec(bContext *C, wmOperator *op)
|
||||
}
|
||||
|
||||
/* add missing materials reading source materials and checking in destination object */
|
||||
short *totcol = BKE_object_material_num(ob_src);
|
||||
short *totcol = BKE_object_material_len_p(ob_src);
|
||||
|
||||
for (short i = 0; i < *totcol; i++) {
|
||||
Material *tmp_ma = BKE_gpencil_material(ob_src, i + 1);
|
||||
@@ -2462,7 +2462,7 @@ static bool gpencil_active_color_poll(bContext *C)
|
||||
{
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
if (ob && ob->data && (ob->type == OB_GPENCIL)) {
|
||||
short *totcolp = BKE_object_material_num(ob);
|
||||
short *totcolp = BKE_object_material_len_p(ob);
|
||||
return *totcolp > 0;
|
||||
}
|
||||
return false;
|
||||
@@ -2482,7 +2482,7 @@ static int gpencil_lock_layer_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
|
||||
/* first lock and hide all colors */
|
||||
Material *ma = NULL;
|
||||
short *totcol = BKE_object_material_num(ob);
|
||||
short *totcol = BKE_object_material_len_p(ob);
|
||||
if (totcol == 0) {
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
@@ -2569,7 +2569,7 @@ static int gpencil_color_isolate_exec(bContext *C, wmOperator *op)
|
||||
|
||||
/* Test whether to isolate or clear all flags */
|
||||
Material *ma = NULL;
|
||||
short *totcol = BKE_object_material_num(ob);
|
||||
short *totcol = BKE_object_material_len_p(ob);
|
||||
for (short i = 0; i < *totcol; i++) {
|
||||
ma = BKE_gpencil_material(ob, i + 1);
|
||||
/* Skip if this is the active one */
|
||||
@@ -2664,7 +2664,7 @@ static int gpencil_color_hide_exec(bContext *C, wmOperator *op)
|
||||
bool unselected = RNA_boolean_get(op->ptr, "unselected");
|
||||
|
||||
Material *ma = NULL;
|
||||
short *totcol = BKE_object_material_num(ob);
|
||||
short *totcol = BKE_object_material_len_p(ob);
|
||||
if (totcol == 0) {
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
@@ -2726,7 +2726,7 @@ static int gpencil_color_reveal_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
bGPdata *gpd = (bGPdata *)ob->data;
|
||||
Material *ma = NULL;
|
||||
short *totcol = BKE_object_material_num(ob);
|
||||
short *totcol = BKE_object_material_len_p(ob);
|
||||
|
||||
if (totcol == 0) {
|
||||
return OPERATOR_CANCELLED;
|
||||
@@ -2779,7 +2779,7 @@ static int gpencil_color_lock_all_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
bGPdata *gpd = (bGPdata *)ob->data;
|
||||
Material *ma = NULL;
|
||||
short *totcol = BKE_object_material_num(ob);
|
||||
short *totcol = BKE_object_material_len_p(ob);
|
||||
|
||||
if (totcol == 0) {
|
||||
return OPERATOR_CANCELLED;
|
||||
@@ -2832,7 +2832,7 @@ static int gpencil_color_unlock_all_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
bGPdata *gpd = (bGPdata *)ob->data;
|
||||
Material *ma = NULL;
|
||||
short *totcol = BKE_object_material_num(ob);
|
||||
short *totcol = BKE_object_material_len_p(ob);
|
||||
|
||||
if (totcol == 0) {
|
||||
return OPERATOR_CANCELLED;
|
||||
|
||||
@@ -127,7 +127,7 @@ static void eyedropper_gpencil_color_set(bContext *C, const wmEvent *event, Eyed
|
||||
}
|
||||
|
||||
/* Look for a similar material in grease pencil slots. */
|
||||
short *totcol = BKE_object_material_num(ob);
|
||||
short *totcol = BKE_object_material_len_p(ob);
|
||||
for (short i = 0; i < *totcol; i++) {
|
||||
ma = BKE_object_material_get(ob, i + 1);
|
||||
if (ma == NULL) {
|
||||
|
||||
@@ -229,7 +229,7 @@ static int similar_face_select_exec(bContext *C, wmOperator *op)
|
||||
if (ob->totcol == 0) {
|
||||
continue;
|
||||
}
|
||||
material_array = BKE_object_material_array(ob);
|
||||
material_array = BKE_object_material_array_p(ob);
|
||||
break;
|
||||
}
|
||||
case SIMFACE_FREESTYLE: {
|
||||
@@ -353,7 +353,7 @@ static int similar_face_select_exec(bContext *C, wmOperator *op)
|
||||
if (ob->totcol == 0) {
|
||||
continue;
|
||||
}
|
||||
material_array = BKE_object_material_array(ob);
|
||||
material_array = BKE_object_material_array_p(ob);
|
||||
break;
|
||||
}
|
||||
case SIMFACE_FREESTYLE: {
|
||||
|
||||
@@ -3939,8 +3939,8 @@ static Base *mesh_separate_tagged(
|
||||
/* new in 2.5 */
|
||||
BKE_object_material_array_assign(bmain,
|
||||
base_new->object,
|
||||
BKE_object_material_array(obedit),
|
||||
*BKE_object_material_num(obedit));
|
||||
BKE_object_material_array_p(obedit),
|
||||
*BKE_object_material_len_p(obedit));
|
||||
|
||||
ED_object_base_select(base_new, BA_SELECT);
|
||||
|
||||
@@ -4011,8 +4011,8 @@ static Base *mesh_separate_arrays(Main *bmain,
|
||||
/* new in 2.5 */
|
||||
BKE_object_material_array_assign(bmain,
|
||||
base_new->object,
|
||||
BKE_object_material_array(obedit),
|
||||
*BKE_object_material_num(obedit));
|
||||
BKE_object_material_array_p(obedit),
|
||||
*BKE_object_material_len_p(obedit));
|
||||
|
||||
ED_object_base_select(base_new, BA_SELECT);
|
||||
|
||||
@@ -4056,8 +4056,8 @@ static void mesh_separate_material_assign_mat_nr(Main *bmain, Object *ob, const
|
||||
Material ***matarar;
|
||||
const short *totcolp;
|
||||
|
||||
totcolp = BKE_id_material_num(obdata);
|
||||
matarar = BKE_id_material_array(obdata);
|
||||
totcolp = BKE_id_material_len_p(obdata);
|
||||
matarar = BKE_id_material_array_p(obdata);
|
||||
|
||||
if ((totcolp && matarar) == 0) {
|
||||
BLI_assert(0);
|
||||
@@ -4085,9 +4085,9 @@ static void mesh_separate_material_assign_mat_nr(Main *bmain, Object *ob, const
|
||||
ma_obdata = NULL;
|
||||
}
|
||||
|
||||
BKE_material_clear_id(bmain, obdata);
|
||||
BKE_material_resize_object(bmain, ob, 1, true);
|
||||
BKE_material_resize_id(bmain, obdata, 1, true);
|
||||
BKE_id_material_clear(bmain, obdata);
|
||||
BKE_object_material_resize(bmain, ob, 1, true);
|
||||
BKE_id_material_resize(bmain, obdata, 1, true);
|
||||
|
||||
ob->mat[0] = ma_ob;
|
||||
id_us_plus((ID *)ma_ob);
|
||||
@@ -4096,9 +4096,9 @@ static void mesh_separate_material_assign_mat_nr(Main *bmain, Object *ob, const
|
||||
id_us_plus((ID *)ma_obdata);
|
||||
}
|
||||
else {
|
||||
BKE_material_clear_id(bmain, obdata);
|
||||
BKE_material_resize_object(bmain, ob, 0, true);
|
||||
BKE_material_resize_id(bmain, obdata, 0, true);
|
||||
BKE_id_material_clear(bmain, obdata);
|
||||
BKE_object_material_resize(bmain, ob, 0, true);
|
||||
BKE_id_material_resize(bmain, obdata, 0, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2260,7 +2260,7 @@ static int make_local_exec(bContext *C, wmOperator *op)
|
||||
}
|
||||
}
|
||||
|
||||
matarar = (Material ***)BKE_object_material_array(ob);
|
||||
matarar = (Material ***)BKE_object_material_array_p(ob);
|
||||
if (matarar) {
|
||||
for (a = 0; a < ob->totcol; a++) {
|
||||
ma = (*matarar)[a];
|
||||
|
||||
@@ -471,7 +471,7 @@ static Scene *preview_prepare_scene(
|
||||
if (OB_TYPE_SUPPORT_MATERIAL(base->object->type)) {
|
||||
/* don't use BKE_object_material_assign, it changed mat->id.us, which shows in the UI
|
||||
*/
|
||||
Material ***matar = BKE_object_material_array(base->object);
|
||||
Material ***matar = BKE_object_material_array_p(base->object);
|
||||
int actcol = max_ii(base->object->actcol - 1, 0);
|
||||
|
||||
if (matar && actcol < base->object->totcol) {
|
||||
|
||||
@@ -466,12 +466,12 @@ static int material_slot_copy_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
Object *ob = ED_object_context(C);
|
||||
Material ***matar;
|
||||
|
||||
if (!ob || !(matar = BKE_object_material_array(ob))) {
|
||||
if (!ob || !(matar = BKE_object_material_array_p(ob))) {
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
CTX_DATA_BEGIN (C, Object *, ob_iter, selected_editable_objects) {
|
||||
if (ob != ob_iter && BKE_object_material_array(ob_iter)) {
|
||||
if (ob != ob_iter && BKE_object_material_array_p(ob_iter)) {
|
||||
if (ob->data != ob_iter->data) {
|
||||
BKE_object_material_array_assign(bmain, ob_iter, matar, ob->totcol);
|
||||
}
|
||||
@@ -538,7 +538,7 @@ static int material_slot_move_exec(bContext *C, wmOperator *op)
|
||||
slot_remap[index_pair[0]] = index_pair[1];
|
||||
slot_remap[index_pair[1]] = index_pair[0];
|
||||
|
||||
BKE_material_remap_object(ob, slot_remap);
|
||||
BKE_object_material_remap(ob, slot_remap);
|
||||
|
||||
MEM_freeN(slot_remap);
|
||||
|
||||
|
||||
@@ -626,7 +626,7 @@ static int rna_IDPArray_length(PointerRNA *ptr)
|
||||
int rna_IDMaterials_assign_int(PointerRNA *ptr, int key, const PointerRNA *assign_ptr)
|
||||
{
|
||||
ID *id = ptr->owner_id;
|
||||
short *totcol = BKE_id_material_num(id);
|
||||
short *totcol = BKE_id_material_len_p(id);
|
||||
Material *mat_id = (Material *)assign_ptr->owner_id;
|
||||
if (totcol && (key >= 0 && key < *totcol)) {
|
||||
BLI_assert(BKE_id_is_in_global_main(id));
|
||||
@@ -641,7 +641,7 @@ int rna_IDMaterials_assign_int(PointerRNA *ptr, int key, const PointerRNA *assig
|
||||
|
||||
static void rna_IDMaterials_append_id(ID *id, Main *bmain, Material *ma)
|
||||
{
|
||||
BKE_material_append_id(bmain, id, ma);
|
||||
BKE_id_material_append(bmain, id, ma);
|
||||
|
||||
WM_main_add_notifier(NC_OBJECT | ND_DRAW, id);
|
||||
WM_main_add_notifier(NC_OBJECT | ND_OB_SHADING, id);
|
||||
@@ -650,7 +650,7 @@ static void rna_IDMaterials_append_id(ID *id, Main *bmain, Material *ma)
|
||||
static Material *rna_IDMaterials_pop_id(ID *id, Main *bmain, ReportList *reports, int index_i)
|
||||
{
|
||||
Material *ma;
|
||||
short *totcol = BKE_id_material_num(id);
|
||||
short *totcol = BKE_id_material_len_p(id);
|
||||
const short totcol_orig = *totcol;
|
||||
if (index_i < 0) {
|
||||
index_i += (*totcol);
|
||||
@@ -661,7 +661,7 @@ static Material *rna_IDMaterials_pop_id(ID *id, Main *bmain, ReportList *reports
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ma = BKE_material_pop_id(bmain, id, index_i);
|
||||
ma = BKE_id_material_pop(bmain, id, index_i);
|
||||
|
||||
if (*totcol == totcol_orig) {
|
||||
BKE_report(reports, RPT_ERROR, "No material to removed");
|
||||
@@ -677,7 +677,7 @@ static Material *rna_IDMaterials_pop_id(ID *id, Main *bmain, ReportList *reports
|
||||
|
||||
static void rna_IDMaterials_clear_id(ID *id, Main *bmain)
|
||||
{
|
||||
BKE_material_clear_id(bmain, id);
|
||||
BKE_id_material_clear(bmain, id);
|
||||
|
||||
DEG_id_tag_update(id, ID_RECALC_GEOMETRY);
|
||||
WM_main_add_notifier(NC_OBJECT | ND_DRAW, id);
|
||||
|
||||
@@ -260,7 +260,7 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes
|
||||
|
||||
/* Using original (not evaluated) object here since we are writing to it. */
|
||||
/* XXX Pretty sure comment above is fully wrong now with CoW & co ? */
|
||||
BKE_material_remap_object_calc(ctx->object, other, material_remap);
|
||||
BKE_object_material_remap_calc(ctx->object, other, material_remap);
|
||||
|
||||
BMFace *efa;
|
||||
i = 0;
|
||||
|
||||
Reference in New Issue
Block a user