Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-01-03 04:15:03 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-01-03 04:20:08 +0300
commit847b21ee08e5a30a2fe35ede4c5b3a73af404af7 (patch)
tree9fb9ecf0ca14d0d25485ad090012efae81158a27 /source/blender/blenkernel/intern/material.c
parentf7e9642da9c9a56a435c2a7f1e506245700a72b0 (diff)
Fix T60014: material link pref ignored
The PreferencesEdit.material_link only worked for adding slots, adding an initial new material didn't respect the preference.
Diffstat (limited to 'source/blender/blenkernel/intern/material.c')
-rw-r--r--source/blender/blenkernel/intern/material.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c
index 5c8ac0a81ce..5e14a520bf6 100644
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@ -543,9 +543,9 @@ void BKE_material_clear_id(Main *bmain, ID *id, bool update_data)
}
}
-Material *give_current_material(Object *ob, short act)
+Material **give_current_material_p(Object *ob, short act)
{
- Material ***matarar, *ma;
+ Material ***matarar, **ma_p;
const short *totcolp;
if (ob == NULL) return NULL;
@@ -565,7 +565,7 @@ Material *give_current_material(Object *ob, short act)
}
if (ob->matbits && ob->matbits[act - 1]) { /* in object */
- ma = ob->mat[act - 1];
+ ma_p = &ob->mat[act - 1];
}
else { /* in data */
@@ -576,12 +576,21 @@ Material *give_current_material(Object *ob, short act)
matarar = give_matarar(ob);
- if (matarar && *matarar) ma = (*matarar)[act - 1];
- else ma = NULL;
-
+ if (matarar && *matarar) {
+ ma_p = &(*matarar)[act - 1];
+ }
+ else {
+ ma_p = NULL;
+ }
}
- return ma;
+ return ma_p;
+}
+
+Material *give_current_material(Object *ob, short act)
+{
+ Material **ma_p = give_current_material_p(ob, act);
+ return ma_p ? *ma_p : NULL;
}
Material *give_node_material(Material *ma)