diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2014-08-27 17:52:24 +0400 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2014-08-27 17:52:24 +0400 |
commit | 57ccd29caead1d2e07014dc320e3bd8caeaf8436 (patch) | |
tree | 17a04d5452db7071da0e9d80ae0ff66ac03f55e7 /source/blender/blenkernel/intern/material.c | |
parent | 4e3f76e06b6654d4951a54804eaa808b040ef942 (diff) |
Only calculate texture paint slots from mtex if renderer is blender
internal.
This should eliminate some confusion when people use external render
engines.
Diffstat (limited to 'source/blender/blenkernel/intern/material.c')
-rw-r--r-- | source/blender/blenkernel/intern/material.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 6daf000aae3..81b93a47917 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -63,6 +63,7 @@ #include "BKE_main.h" #include "BKE_material.h" #include "BKE_mesh.h" +#include "BKE_scene.h" #include "BKE_node.h" #include "BKE_curve.h" @@ -1326,12 +1327,15 @@ static bool get_mtex_slot_valid_texpaint(struct MTex *mtex) mtex->tex->ima); } -void BKE_texpaint_slot_refresh_cache(Material *ma, bool use_nodes) +void BKE_texpaint_slot_refresh_cache(Scene *scene, Material *ma) { MTex **mtex; short count = 0; short index = 0, i; + bool use_nodes = BKE_scene_use_new_shading_nodes(scene); + bool is_bi = BKE_scene_uses_blender_internal(scene); + if (!ma) return; @@ -1340,10 +1344,10 @@ void BKE_texpaint_slot_refresh_cache(Material *ma, bool use_nodes) ma->texpaintslot = NULL; } - if (use_nodes) { + if (use_nodes || ma->use_nodes) { bNode *node, *active_node; - if (!(ma->use_nodes && ma->nodetree)) + if (!(ma->nodetree)) return; for (node = ma->nodetree->nodes.first; node; node = node->next) { @@ -1369,7 +1373,7 @@ void BKE_texpaint_slot_refresh_cache(Material *ma, bool use_nodes) } } } - else { + else if (is_bi) { for (mtex = ma->mtex, i = 0; i < MAX_MTEX; i++, mtex++) { if (get_mtex_slot_valid_texpaint(*mtex)) { count++; @@ -1407,13 +1411,13 @@ void BKE_texpaint_slot_refresh_cache(Material *ma, bool use_nodes) return; } -void BKE_texpaint_slots_refresh_object(struct Object *ob, bool use_nodes) +void BKE_texpaint_slots_refresh_object(Scene *scene, struct Object *ob) { int i; for (i = 1; i < ob->totcol + 1; i++) { Material *ma = give_current_material(ob, i); - BKE_texpaint_slot_refresh_cache(ma, use_nodes); + BKE_texpaint_slot_refresh_cache(scene, ma); } } |