[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31764] branches/particles-2010/source/ blender: Added update calls after setting properties in the SetData node.

Lukas Toenne lukas.toenne at googlemail.com
Sun Sep 5 13:06:50 CEST 2010


Revision: 31764
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31764
Author:   lukastoenne
Date:     2010-09-05 13:06:50 +0200 (Sun, 05 Sep 2010)

Log Message:
-----------
Added update calls after setting properties in the SetData node.

Modified Paths:
--------------
    branches/particles-2010/source/blender/blenkernel/BKE_node.h
    branches/particles-2010/source/blender/modifiers/intern/MOD_nodetree.c
    branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_set_data.c
    branches/particles-2010/source/blender/nodes/intern/SIM_util.c
    branches/particles-2010/source/blender/nodes/intern/SIM_util.h
    branches/particles-2010/source/blender/nodes/intern/node_tree_simulation.c

Modified: branches/particles-2010/source/blender/blenkernel/BKE_node.h
===================================================================
--- branches/particles-2010/source/blender/blenkernel/BKE_node.h	2010-09-05 09:50:24 UTC (rev 31763)
+++ branches/particles-2010/source/blender/blenkernel/BKE_node.h	2010-09-05 11:06:50 UTC (rev 31764)
@@ -562,7 +562,7 @@
 #define SIM_NODE_DEBUGPRINT			801
 
 /* API */
-void ntreeSimulationExecTree(struct bNodeTree *ntree, struct PointerRNA *self, float frame, float dframe, float time, float dtime);
+void ntreeSimulationExecTree(struct bNodeTree *ntree, struct Scene *scene, struct PointerRNA *self, float frame, float dframe, float time, float dtime);
 
 struct StructRNA *simnode_getdata_get_type(struct bNode *node);
 void simnode_getdata_set_type(struct bNodeTree *ntree, struct bNode *node, struct StructRNA *type);

Modified: branches/particles-2010/source/blender/modifiers/intern/MOD_nodetree.c
===================================================================
--- branches/particles-2010/source/blender/modifiers/intern/MOD_nodetree.c	2010-09-05 09:50:24 UTC (rev 31763)
+++ branches/particles-2010/source/blender/modifiers/intern/MOD_nodetree.c	2010-09-05 11:06:50 UTC (rev 31764)
@@ -92,7 +92,7 @@
 		PointerRNA self;
 		
 		RNA_id_pointer_create((ID*)ob->data, &self);
-		ntreeSimulationExecTree(ntmd->nodetree, &self, md->scene->r.cfra, 1.0f, md->scene->r.cfra, 1.0f);
+		ntreeSimulationExecTree(ntmd->nodetree, md->scene, &self, md->scene->r.cfra, 1.0f, md->scene->r.cfra, 1.0f);
 	}
 
 #if 0

Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_set_data.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_set_data.c	2010-09-05 09:50:24 UTC (rev 31763)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_set_data.c	2010-09-05 11:06:50 UTC (rev 31764)
@@ -28,6 +28,7 @@
 
 #include "../SIM_util.h"
 
+#include "BKE_depsgraph.h"
 #include "BKE_main.h"
 #include "BKE_node.h"
 #include "BKE_scene.h"
@@ -188,6 +189,7 @@
 		case SOCK_FLOAT:
 			while (iter.valid) {
 				RNA_property_float_set(&iter.ptr, (PropertyRNA*)in->base->nodedata, *(float*)cur);
+				RNA_property_update_main(G.main, ctx->scene, &iter.ptr, (PropertyRNA*)in->base->nodedata);
 				cur = (char*)cur + datasize;
 				RNA_property_collection_next(&iter);
 			}
@@ -195,6 +197,7 @@
 		case SOCK_INT:
 			while (iter.valid) {
 				RNA_property_int_set(&iter.ptr, (PropertyRNA*)in->base->nodedata, *(int*)cur);
+				RNA_property_update_main(G.main, ctx->scene, &iter.ptr, (PropertyRNA*)in->base->nodedata);
 				cur = (char*)cur + datasize;
 				RNA_property_collection_next(&iter);
 			}
@@ -202,6 +205,7 @@
 		case SOCK_BOOL:
 			while (iter.valid) {
 				RNA_property_boolean_set(&iter.ptr, (PropertyRNA*)in->base->nodedata, (int)(*(char*)cur));
+				RNA_property_update_main(G.main, ctx->scene, &iter.ptr, (PropertyRNA*)in->base->nodedata);
 				cur = (char*)cur + datasize;
 				RNA_property_collection_next(&iter);
 			}
@@ -209,6 +213,7 @@
 		case SOCK_VECTOR:
 			while (iter.valid) {
 				RNA_property_float_set_array(&iter.ptr, (PropertyRNA*)in->base->nodedata, (float*)cur);
+				RNA_property_update_main(G.main, ctx->scene, &iter.ptr, (PropertyRNA*)in->base->nodedata);
 				cur = (char*)cur + datasize;
 				RNA_property_collection_next(&iter);
 			}
@@ -216,6 +221,7 @@
 		case SOCK_RGBA:
 			while (iter.valid) {
 				RNA_property_float_set_array(&iter.ptr, (PropertyRNA*)in->base->nodedata, (float*)cur);
+				RNA_property_update_main(G.main, ctx->scene, &iter.ptr, (PropertyRNA*)in->base->nodedata);
 				cur = (char*)cur + datasize;
 				RNA_property_collection_next(&iter);
 			}
@@ -223,6 +229,7 @@
 		case SOCK_STRING:
 			while (iter.valid) {
 				RNA_property_string_set(&iter.ptr, (PropertyRNA*)in->base->nodedata, (char*)cur);
+				RNA_property_update_main(G.main, ctx->scene, &iter.ptr, (PropertyRNA*)in->base->nodedata);
 				cur = (char*)cur + datasize;
 				RNA_property_collection_next(&iter);
 			}
@@ -240,21 +247,27 @@
 		switch (in->type) {
 		case SOCK_FLOAT:
 			RNA_property_float_set(&ctx->ptr, (PropertyRNA*)in->base->nodedata, *(float*)buf);
+			RNA_property_update_main(G.main, ctx->scene, &ctx->ptr, (PropertyRNA*)in->base->nodedata);
 			break;
 		case SOCK_INT:
 			RNA_property_int_set(&ctx->ptr, (PropertyRNA*)in->base->nodedata, *(int*)buf);
+			RNA_property_update_main(G.main, ctx->scene, &ctx->ptr, (PropertyRNA*)in->base->nodedata);
 			break;
 		case SOCK_BOOL:
 			RNA_property_boolean_set(&ctx->ptr, (PropertyRNA*)in->base->nodedata, (int)(*(char*)buf));
+			RNA_property_update_main(G.main, ctx->scene, &ctx->ptr, (PropertyRNA*)in->base->nodedata);
 			break;
 		case SOCK_VECTOR:
 			RNA_property_float_set_array(&ctx->ptr, (PropertyRNA*)in->base->nodedata, (float*)buf);
+			RNA_property_update_main(G.main, ctx->scene, &ctx->ptr, (PropertyRNA*)in->base->nodedata);
 			break;
 		case SOCK_RGBA:
 			RNA_property_float_set_array(&ctx->ptr, (PropertyRNA*)in->base->nodedata, (float*)buf);
+			RNA_property_update_main(G.main, ctx->scene, &ctx->ptr, (PropertyRNA*)in->base->nodedata);
 			break;
 		case SOCK_STRING:
 			RNA_property_string_set(&ctx->ptr, (PropertyRNA*)in->base->nodedata, (char*)buf);
+			RNA_property_update_main(G.main, ctx->scene, &ctx->ptr, (PropertyRNA*)in->base->nodedata);
 			break;
 		}
 	}
@@ -288,10 +301,6 @@
 		for (i=1; i < node->totin; ++i) {
 			enqueue_input(execdata, &ctx, node->instack[i]);
 		}
-		
-		/* update */
-		
-		RNA_property_update_main();
 	}
 }
 

Modified: branches/particles-2010/source/blender/nodes/intern/SIM_util.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_util.c	2010-09-05 09:50:24 UTC (rev 31763)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_util.c	2010-09-05 11:06:50 UTC (rev 31764)
@@ -115,8 +115,9 @@
 	#endif
 }
 
-void sim_context_create(PointerRNA *ptr, PropertyRNA *prop, int key, SimDataContext *r_ctx)
+void sim_context_create(Scene *scene, PointerRNA *ptr, PropertyRNA *prop, int key, SimDataContext *r_ctx)
 {
+	r_ctx->scene = scene;
 	if (ptr && ptr->data && ptr->type) {
 		r_ctx->ptr = *ptr;
 		r_ctx->prop = prop;

Modified: branches/particles-2010/source/blender/nodes/intern/SIM_util.h
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_util.h	2010-09-05 09:50:24 UTC (rev 31763)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_util.h	2010-09-05 11:06:50 UTC (rev 31764)
@@ -69,12 +69,13 @@
 extern const char *cl_string_funcs;
 
 typedef struct SimDataContext {
+	Scene *scene;
 	PointerRNA ptr;
 	PropertyRNA *prop;
 	int key;
 } SimDataContext;
 
-void sim_context_create(struct PointerRNA *ptr, struct PropertyRNA *prop, int key, struct SimDataContext *r_ctx);
+void sim_context_create(struct Scene *scene, struct PointerRNA *ptr, struct PropertyRNA *prop, int key, struct SimDataContext *r_ctx);
 struct StructRNA *sim_context_type(struct SimDataContext *ctx);
 int sim_context_is_collection(struct SimDataContext *ctx);
 int sim_context_path_resolve(struct SimDataContext *self, const char *path, struct SimDataContext *r_ctx);

Modified: branches/particles-2010/source/blender/nodes/intern/node_tree_simulation.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/node_tree_simulation.c	2010-09-05 09:50:24 UTC (rev 31763)
+++ branches/particles-2010/source/blender/nodes/intern/node_tree_simulation.c	2010-09-05 11:06:50 UTC (rev 31764)
@@ -231,7 +231,7 @@
 	stack->base = sock;
 	stack->node = node;
 	stack->type = sock->type;
-	sim_context_create(NULL, NULL, 0, &stack->context);
+	sim_context_create(NULL, NULL, NULL, 0, &stack->context);
 }
 
 static void calc_stack_indexes_recursive(bNodeTree *ntree, int *totnode, int *totin, int *totout)
@@ -1778,7 +1778,7 @@
 	/* preferredSocketType */	preferredSocketType
 };
 
-void ntreeSimulationExecTree(bNodeTree *ntree, PointerRNA *self, float frame, float dframe, float time, float dtime)
+void ntreeSimulationExecTree(bNodeTree *ntree, Scene *scene, PointerRNA *self, float frame, float dframe, float time, float dtime)
 {
 	SimulationContext sim;
 	
@@ -1788,7 +1788,7 @@
 	printf("WITH_OPENCL disabled!\n");
 	#endif
 	
-	sim_context_create(self, NULL, 0, &sim.self);
+	sim_context_create(scene, self, NULL, 0, &sim.self);
 	sim.cfra = frame;
 	sim.dfra = dframe;
 	sim.time = time;





More information about the Bf-blender-cvs mailing list