[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