[Bf-blender-cvs] [9550404] : Fix T39018: Duplicate entries for material/shader in AnimEditors

Joshua Leung noreply at git.blender.org
Wed Mar 12 18:22:27 CET 2014


Commit: 95504040624393fa783ae4d12df2d8dce6c0d324
Author: Joshua Leung
Date:   Sun Mar 9 19:23:32 2014 +1300
https://developer.blender.org/rB95504040624393fa783ae4d12df2d8dce6c0d324

Fix T39018: Duplicate entries for material/shader in AnimEditors

In many BI shader setups, the material which owns the nodetree is often itself
included as a node in that nodetree (i.e. to provide the base colour for that
mesh). This would often result in the material (and its subtree) getting included
in the dopesheet results twice.

===================================================================

M	source/blender/editors/animation/anim_filter.c

===================================================================

diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c
index 9d54d93..a4a1e95 100644
--- a/source/blender/editors/animation/anim_filter.c
+++ b/source/blender/editors/animation/anim_filter.c
@@ -1796,9 +1796,14 @@ static size_t animdata_filter_ds_materials(bAnimContext *ac, ListBase *anim_data
 			Material *base = give_current_material(ob, a);
 			Material *ma   = give_node_material(base);
 			
-			/* add channels from the nested material if it exists */
-			if (ma)
+			/* add channels from the nested material if it exists
+			 *   - skip if the same material is referenced in its node tree
+			 *     (which is common for BI materials) as that results in
+			 *     confusing duplicates
+			 */
+			if ((ma) && (ma != base)) {
 				items += animdata_filter_ds_material(ac, anim_data, ads, ma, filter_mode);
+			}
 		}
 	}




More information about the Bf-blender-cvs mailing list