[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