[Bf-blender-cvs] [08981f3] master: Fix T37886: Material does no update when changing keyframes in dopesheet

Sergey Sharybin noreply at git.blender.org
Mon Jan 13 14:04:32 CET 2014


Commit: 08981f3a91a687efa8d28d308d6033e5a9e68b1f
Author: Sergey Sharybin
Date:   Mon Jan 13 19:02:23 2014 +0600
https://developer.blender.org/rB08981f3a91a687efa8d28d308d6033e5a9e68b1f

Fix T37886: Material does no update when changing keyframes in dopesheet

It was a missing fcurve evaluation in scene update function which lead to
materials only being updated on frame change.

Added the same exception as we've got for the scene animation. It only
runs when there're materials tagged for the update, so wouldn't expect
speed regressions or so.

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

M	source/blender/blenkernel/intern/scene.c

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

diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 1ef3d6c..984a999 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -1538,6 +1538,25 @@ void BKE_scene_update_tagged(EvaluationContext *eval_ctx, Main *bmain, Scene *sc
 		if (adt && (adt->recalc & ADT_RECALC_ANIM))
 			BKE_animsys_evaluate_animdata(scene, &scene->id, adt, ctime, 0);
 	}
+
+	/* Extra call here to recalc aterial animation.
+	 *
+	 * Need to do this so changing material settings from the graph/dopesheet
+	 * will update suff in the viewport.
+	 */
+	if (DAG_id_type_tagged(bmain, ID_MA)) {
+		Material *material;
+		float ctime = BKE_scene_frame_get(scene);
+
+		for (material = bmain->mat.first;
+		     material;
+		     material = material->id.next)
+		{
+			AnimData *adt = BKE_animdata_from_id(&material->id);
+			if (adt && (adt->recalc & ADT_RECALC_ANIM))
+				BKE_animsys_evaluate_animdata(scene, &material->id, adt, ctime, 0);
+		}
+	}
 	
 	/* notify editors and python about recalc */
 	BLI_callback_exec(bmain, &scene->id, BLI_CB_EVT_SCENE_UPDATE_POST);




More information about the Bf-blender-cvs mailing list