[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31346] branches/particles-2010/source/ blender: Added a Main* parameter to the forechNodeTree callback in bNodeTreeTypeInfo .

Lukas Toenne lukas.toenne at googlemail.com
Sun Aug 15 14:17:03 CEST 2010


Revision: 31346
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31346
Author:   lukastoenne
Date:     2010-08-15 14:17:03 +0200 (Sun, 15 Aug 2010)

Log Message:
-----------
Added a Main* parameter to the forechNodeTree callback in bNodeTreeTypeInfo. This makes it more usable in readfile.c, where main can be from different sources.
Fixed a minor drawing bug.

Modified Paths:
--------------
    branches/particles-2010/source/blender/blenkernel/BKE_node.h
    branches/particles-2010/source/blender/blenkernel/intern/node.c
    branches/particles-2010/source/blender/blenloader/intern/readfile.c
    branches/particles-2010/source/blender/editors/space_view3d/drawobject.c
    branches/particles-2010/source/blender/nodes/intern/node_tree_composite.c
    branches/particles-2010/source/blender/nodes/intern/node_tree_shader.c
    branches/particles-2010/source/blender/nodes/intern/node_tree_simulation.c
    branches/particles-2010/source/blender/nodes/intern/node_tree_texture.c

Modified: branches/particles-2010/source/blender/blenkernel/BKE_node.h
===================================================================
--- branches/particles-2010/source/blender/blenkernel/BKE_node.h	2010-08-15 12:03:49 UTC (rev 31345)
+++ branches/particles-2010/source/blender/blenkernel/BKE_node.h	2010-08-15 12:17:03 UTC (rev 31346)
@@ -157,7 +157,7 @@
 	/* callbacks */
 	void (*freeCache)(struct bNodeTree *ntree);
 	void (*freeNodeCache)(struct bNodeTree *ntree, struct bNode *node);
-	void (*foreachNodeTree)(void *calldata, bNodeTreeCallback func);		/* iteration over all node trees */
+	void (*foreachNodeTree)(struct Main *main, void *calldata, bNodeTreeCallback func);		/* iteration over all node trees */
 	void (*beginExec)(struct bNodeTree *ntree);
 	void (*endExec)(struct bNodeTree *ntree);
 	void (*exec)(struct bNodeTree *ntree, void *callerdata, int thread);

Modified: branches/particles-2010/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/particles-2010/source/blender/blenkernel/intern/node.c	2010-08-15 12:03:49 UTC (rev 31345)
+++ branches/particles-2010/source/blender/blenkernel/intern/node.c	2010-08-15 12:17:03 UTC (rev 31346)
@@ -42,8 +42,8 @@
 
 #include "BKE_fcurve.h"
 #include "BKE_animsys.h" /* BKE_free_animdata only */
+#include "BKE_global.h"
 
-
 //#include "PIL_time.h"
 
 #include "MEM_guardedalloc.h"
@@ -674,7 +674,7 @@
 	/* group changed, so we rebuild the type definition */
 	ntreeMakeOwnType(ngroup);
 	
-	treetype->foreachNodeTree(ngroup, &nodeVerifyGroupCallback);
+	treetype->foreachNodeTree(G.main, ngroup, &nodeVerifyGroupCallback);
 }
 
 static void nodeGroupSocketUseFlagsCallback(void *calldata, ID *owner_id, bNodeTree *ntree)
@@ -714,7 +714,7 @@
 	}
 	
 	/* tag all thats in use */
-	treetype->foreachNodeTree(ngroup, &nodeGroupSocketUseFlagsCallback);
+	treetype->foreachNodeTree(G.main, ngroup, &nodeGroupSocketUseFlagsCallback);
 }
 
 /* finds a node based on its name */
@@ -1378,7 +1378,7 @@
 	cd.local = 0;
 	cd.lib = 0;
 	
-	treetype->foreachNodeTree(&cd, &ntreeMakeLocal_CheckLocal);
+	treetype->foreachNodeTree(G.main, &cd, &ntreeMakeLocal_CheckLocal);
 	
 	/* if all users are local, we simply make tree local */
 	if(cd.local && cd.lib==0) {
@@ -1394,7 +1394,7 @@
 		
 
 		cd.new_id = &newtree->id;
-		treetype->foreachNodeTree(&cd, &ntreeMakeLocal_LinkNew);
+		treetype->foreachNodeTree(G.main, &cd, &ntreeMakeLocal_LinkNew);
 	}
 }
 

Modified: branches/particles-2010/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/particles-2010/source/blender/blenloader/intern/readfile.c	2010-08-15 12:03:49 UTC (rev 31345)
+++ branches/particles-2010/source/blender/blenloader/intern/readfile.c	2010-08-15 12:17:03 UTC (rev 31346)
@@ -2035,12 +2035,18 @@
 /* verify types for nodes and groups, all data has to be read */
 /* open = 0: appending/linking, open = 1: open new file (need to clean out dynamic
 * typedefs*/
+static void lib_verify_nodetree_cb(void *calldata, ID *owner_id, bNodeTree *ntree)
+{
+	ntreeVerifyTypes(ntree);
+}
 static void lib_verify_nodetree(Main *main, int open)
 {
 	Scene *sce;
 	Material *ma;
 	Tex *tx;
 	bNodeTree *ntree;
+	int i;
+	bNodeTreeTypeInfo *tti;
 	
 	/* this crashes blender on undo/redo
 		if(open==1) {
@@ -2054,21 +2060,11 @@
 		ntreeMakeOwnType(ntree);	/* for group usage */
 	}
 	
-	/* now verify all types in material trees, groups are set OK now */
-	for(ma= main->mat.first; ma; ma= ma->id.next) {
-		if(ma->nodetree)
-			ntreeVerifyTypes(ma->nodetree);
+	for (i = 0; i < NUM_NTREE_TYPES; ++i) {
+		tti = ntreeGetTypeInfo(i);
+		if (tti != NULL && tti->foreachNodeTree)
+			tti->foreachNodeTree(main, NULL, lib_verify_nodetree_cb);
 	}
-	/* and scene trees */
-	for(sce= main->scene.first; sce; sce= sce->id.next) {
-		if(sce->nodetree)
-			ntreeVerifyTypes(sce->nodetree);
-	}
-	/* and texture trees */
-	for(tx= main->tex.first; tx; tx= tx->id.next) {
-		if(tx->nodetree)
-			ntreeVerifyTypes(tx->nodetree);
-	}
 }
 
 

Modified: branches/particles-2010/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- branches/particles-2010/source/blender/editors/space_view3d/drawobject.c	2010-08-15 12:03:49 UTC (rev 31345)
+++ branches/particles-2010/source/blender/editors/space_view3d/drawobject.c	2010-08-15 12:17:03 UTC (rev 31346)
@@ -4210,6 +4210,8 @@
 	ParticleIterator pit;
 //	ParticlePage *page;
 //	int p, k;
+	float sel_col[3];
+	float nosel_col[3];
 	
 	if (proppos==NULL)
 		return;
@@ -4219,17 +4221,18 @@
 		glDisable(GL_DEPTH_TEST);
 	
 	/* get selection theme colors */
-//	UI_GetThemeColor3fv(TH_VERTEX_SELECT, sel_col);
-//	UI_GetThemeColor3fv(TH_VERTEX, nosel_col);
+	UI_GetThemeColor3fv(TH_VERTEX_SELECT, sel_col);
+	UI_GetThemeColor3fv(TH_VERTEX, nosel_col);
 	
 //	glEnableClientState(GL_VERTEX_ARRAY);
 //	glEnableClientState(GL_COLOR_ARRAY);
 	
-	glEnable(GL_COLOR_MATERIAL);
-	glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
-	glShadeModel(GL_SMOOTH);
+//	glEnable(GL_COLOR_MATERIAL);
+//	glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
+//	glShadeModel(GL_SMOOTH);
 	
-	glPointSize(2.0f);
+	glColor3fv(sel_col);
+	glPointSize(UI_GetThemeValuef(TH_VERTEX_SIZE));
 	glBegin(GL_POINTS);
 	for (pit_init(&pit, pset); pit.pa; pit_next(&pit)) {
 		pos = pset_parprop(pit.pa, proppos);

Modified: branches/particles-2010/source/blender/nodes/intern/node_tree_composite.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/node_tree_composite.c	2010-08-15 12:03:49 UTC (rev 31345)
+++ branches/particles-2010/source/blender/nodes/intern/node_tree_composite.c	2010-08-15 12:17:03 UTC (rev 31346)
@@ -44,10 +44,10 @@
 #include "CMP_node.h"
 #include "intern/CMP_util.h"	/* stupid include path... */
 
-static void foreachNodeTree(void *calldata, bNodeTreeCallback func)
+static void foreachNodeTree(Main *main, void *calldata, bNodeTreeCallback func)
 {
 	Scene *sce;
-	for(sce= G.main->scene.first; sce; sce= sce->id.next) {
+	for(sce= main->scene.first; sce; sce= sce->id.next) {
 		if(sce->nodetree) {
 			func(calldata, &sce->id, sce->nodetree);
 		}

Modified: branches/particles-2010/source/blender/nodes/intern/node_tree_shader.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/node_tree_shader.c	2010-08-15 12:03:49 UTC (rev 31345)
+++ branches/particles-2010/source/blender/nodes/intern/node_tree_shader.c	2010-08-15 12:17:03 UTC (rev 31346)
@@ -37,10 +37,10 @@
 
 #include "node_util.h"
 
-static void foreachNodeTree(void *calldata, bNodeTreeCallback func)
+static void foreachNodeTree(Main *main, void *calldata, bNodeTreeCallback func)
 {
 	Material *ma;
-	for(ma= G.main->mat.first; ma; ma= ma->id.next) {
+	for(ma= main->mat.first; ma; ma= ma->id.next) {
 		if(ma->nodetree) {
 			func(calldata, &ma->id, ma->nodetree);
 		}

Modified: branches/particles-2010/source/blender/nodes/intern/node_tree_simulation.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/node_tree_simulation.c	2010-08-15 12:03:49 UTC (rev 31345)
+++ branches/particles-2010/source/blender/nodes/intern/node_tree_simulation.c	2010-08-15 12:17:03 UTC (rev 31346)
@@ -43,11 +43,11 @@
 #include "SIM_util.h"
 
 
-static void foreachNodeTree(void *calldata, bNodeTreeCallback func)
+static void foreachNodeTree(Main *main, void *calldata, bNodeTreeCallback func)
 {
 	/* TODO could this be more efficient? is that necessary? */
 	Object *ob;
-	for(ob= G.main->object.first; ob; ob= ob->id.next) {
+	for(ob= main->object.first; ob; ob= ob->id.next) {
 		ModifierData *md= modifiers_findByType(ob, eModifierType_NodeTree);
 		if (md) {
 			NodeTreeModifierData *ntmd= (NodeTreeModifierData*)md;

Modified: branches/particles-2010/source/blender/nodes/intern/node_tree_texture.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/node_tree_texture.c	2010-08-15 12:03:49 UTC (rev 31345)
+++ branches/particles-2010/source/blender/nodes/intern/node_tree_texture.c	2010-08-15 12:17:03 UTC (rev 31346)
@@ -38,10 +38,10 @@
 #include "node_util.h"
 
 
-static void foreachNodeTree(void *calldata, bNodeTreeCallback func)
+static void foreachNodeTree(Main *main, void *calldata, bNodeTreeCallback func)
 {
 	Tex *tx;
-	for(tx= G.main->tex.first; tx; tx= tx->id.next) {
+	for(tx= main->tex.first; tx; tx= tx->id.next) {
 		if(tx->nodetree) {
 			func(calldata, &tx->id, tx->nodetree);
 		}





More information about the Bf-blender-cvs mailing list