[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39416] trunk/blender/source/blender/ blenkernel/intern/texture.c: Fix #28162: texture properties didn' t show correct texture datablock chooser

Brecht Van Lommel brechtvanlommel at pandora.be
Mon Aug 15 15:17:39 CEST 2011


Revision: 39416
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39416
Author:   blendix
Date:     2011-08-15 13:17:39 +0000 (Mon, 15 Aug 2011)
Log Message:
-----------
Fix #28162: texture properties didn't show correct texture datablock chooser
in a particular setup with two nested material nodes. Material active texture
was looking also recursively into material node, but this was already done
outside of this function.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/texture.c

Modified: trunk/blender/source/blender/blenkernel/intern/texture.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/texture.c	2011-08-15 12:07:52 UTC (rev 39415)
+++ trunk/blender/source/blender/blenkernel/intern/texture.c	2011-08-15 13:17:39 UTC (rev 39416)
@@ -1005,7 +1005,7 @@
 
 Tex *give_current_object_texture(Object *ob)
 {
-	Material *ma;
+	Material *ma, *node_ma;
 	Tex *tex= NULL;
 	
 	if(ob==NULL) return NULL;
@@ -1015,6 +1015,10 @@
 		tex= give_current_lamp_texture(ob->data);
 	} else {
 		ma= give_current_material(ob, ob->actcol);
+
+		if((node_ma=give_node_material(ma)))
+			ma= node_ma;
+
 		tex= give_current_material_texture(ma);
 	}
 	
@@ -1080,17 +1084,6 @@
 			tex= (Tex *)node->id;
 			ma= NULL;
 		}
-		else {
-			node= nodeGetActiveID(ma->nodetree, ID_MA);
-			if(node) {
-				ma= (Material*)node->id;
-				if(ma) {
-					mtex= ma->mtex[(int)(ma->texact)];
-					if(mtex) tex= mtex->tex;
-				}
-			}
-		}
-		return tex;
 	}
 
 	if(ma) {
@@ -1165,11 +1158,6 @@
 			id_us_plus(&newtex->id);
 			ma= NULL;
 		}
-		else {
-			node= nodeGetActiveID(ma->nodetree, ID_MA);
-			if(node)
-				ma= (Material*)node->id;
-		}
 	}
 	if(ma) {
 		int act= (int)ma->texact;
@@ -1198,16 +1186,8 @@
 	if(ma && ma->use_nodes && ma->nodetree) {
 		node= nodeGetActiveID(ma->nodetree, ID_TE);
 
-		if(node) {
+		if(node)
 			return 1;
-		}
-		else {
-			node= nodeGetActiveID(ma->nodetree, ID_MA);
-			if(node)
-				ma= (Material*)node->id;
-			else
-				ma= NULL;
-		}
 	}
 
 	return (ma != NULL);




More information about the Bf-blender-cvs mailing list