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:
authorAntony Riakiotakis <kalast@gmail.com>2014-08-27 17:52:24 +0400
committerAntony Riakiotakis <kalast@gmail.com>2014-08-27 17:52:24 +0400
commit57ccd29caead1d2e07014dc320e3bd8caeaf8436 (patch)
tree17a04d5452db7071da0e9d80ae0ff66ac03f55e7 /source/blender/blenkernel/intern/material.c
parent4e3f76e06b6654d4951a54804eaa808b040ef942 (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.c16
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);
}
}