[Bf-blender-cvs] [fe3657a] object_nodes: Use the bvm function cache for modifier nodes, to avoid recompiling all the time.

Lukas Tönne noreply at git.blender.org
Wed Dec 16 14:02:54 CET 2015


Commit: fe3657a57509909dafeaa597cdc39c42987a184a
Author: Lukas Tönne
Date:   Wed Dec 16 13:43:36 2015 +0100
Branches: object_nodes
https://developer.blender.org/rBfe3657a57509909dafeaa597cdc39c42987a184a

Use the bvm function cache for modifier nodes, to avoid recompiling all the time.

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

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

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

diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 9e52332..51bc8e2 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -1708,7 +1708,11 @@ static DerivedMesh *mesh_calc_modifier_nodes(Scene *UNUSED(scene), Object *ob, b
 	Mesh *me = ob->data;
 	DerivedMesh *dm, *result;
 	
-	struct BVMFunction *fn = BVM_gen_modifier_function(ob, ntree, NULL);
+	struct BVMFunction *fn = BVM_function_cache_acquire(ntree);
+	if (!fn) {
+		fn = BVM_gen_modifier_function(ob, ntree, NULL);
+		BVM_function_cache_set(ntree, fn);
+	}
 	
 	{
 		struct BVMEvalGlobals *globals = BVM_globals_create();
@@ -1721,7 +1725,7 @@ static DerivedMesh *mesh_calc_modifier_nodes(Scene *UNUSED(scene), Object *ob, b
 		BVM_globals_free(globals);
 	}
 	
-	BVM_function_free(fn);
+	BVM_function_release(fn);
 	
 	/* XXX this is stupid, but currently required because of
 	 * the unreliability of dm->needsFree ...




More information about the Bf-blender-cvs mailing list