[Bf-blender-cvs] [e01a9c5eeea] blender2.8: Motion Path Calculations: Don't pass scene into motionpaths_calc_bake_targets()

Joshua Leung noreply at git.blender.org
Thu Aug 23 07:11:17 CEST 2018


Commit: e01a9c5eeeaa61a63103c4eb63af2b752306871c
Author: Joshua Leung
Date:   Thu Aug 23 14:06:11 2018 +1200
Branches: blender2.8
https://developer.blender.org/rBe01a9c5eeeaa61a63103c4eb63af2b752306871c

Motion Path Calculations: Don't pass scene into motionpaths_calc_bake_targets()

It's not needed, and actually precludes us from considering parallel
evaluation in future.

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

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

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

diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c
index 7df889d22b2..6168ce97f86 100644
--- a/source/blender/blenkernel/intern/anim.c
+++ b/source/blender/blenkernel/intern/anim.c
@@ -340,7 +340,7 @@ static void motionpaths_calc_update_scene(Main *bmain,
 /* ........ */
 
 /* perform baking for the targets on the current frame */
-static void motionpaths_calc_bake_targets(Scene *scene, ListBase *targets)
+static void motionpaths_calc_bake_targets(ListBase *targets, int cframe)
 {
 	MPathTarget *mpt;
 
@@ -352,12 +352,12 @@ static void motionpaths_calc_bake_targets(Scene *scene, ListBase *targets)
 		/* current frame must be within the range the cache works for
 		 *	- is inclusive of the first frame, but not the last otherwise we get buffer overruns
 		 */
-		if ((CFRA < mpath->start_frame) || (CFRA >= mpath->end_frame)) {
+		if ((cframe < mpath->start_frame) || (cframe >= mpath->end_frame)) {
 			continue;
 		}
 
 		/* get the relevant cache vert to write to */
-		mpv = mpath->points + (CFRA - mpath->start_frame);
+		mpv = mpath->points + (cframe - mpath->start_frame);
 
 		Object *ob_eval = mpt->ob_eval;
 
@@ -386,7 +386,7 @@ static void motionpaths_calc_bake_targets(Scene *scene, ListBase *targets)
 			copy_v3_v3(mpv->co, ob_eval->obmat[3]);
 		}
 
-		float mframe = (float)(CFRA);
+		float mframe = (float)(cframe);
 
 		/* Tag if it's a keyframe */
 		if (BLI_dlrbTree_search_exact(&mpt->keys, compare_ak_cfraPtr, &mframe)) {
@@ -471,7 +471,7 @@ static void motionpaths_calc_bake_targets(Scene *scene, ListBase *targets)
 		motionpaths_calc_update_scene(bmain, depsgraph);
 
 		/* perform baking for targets */
-		motionpaths_calc_bake_targets(scene, targets);
+		motionpaths_calc_bake_targets(targets, CFRA);
 	}
 
 	/* reset original environment */



More information about the Bf-blender-cvs mailing list