[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36499] branches/particles-2010/source/ blender: do_versions for node socket default values.
Lukas Toenne
lukas.toenne at googlemail.com
Thu May 5 15:29:17 CEST 2011
Revision: 36499
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36499
Author: lukastoenne
Date: 2011-05-05 13:29:16 +0000 (Thu, 05 May 2011)
Log Message:
-----------
do_versions for node socket default values. These are now stored in a custom struct for each type and need to be converted from the bNodeStack data.
Modified Paths:
--------------
branches/particles-2010/source/blender/blenloader/CMakeLists.txt
branches/particles-2010/source/blender/blenloader/intern/readfile.c
branches/particles-2010/source/blender/makesdna/DNA_node_types.h
Modified: branches/particles-2010/source/blender/blenloader/CMakeLists.txt
===================================================================
--- branches/particles-2010/source/blender/blenloader/CMakeLists.txt 2011-05-05 10:36:43 UTC (rev 36498)
+++ branches/particles-2010/source/blender/blenloader/CMakeLists.txt 2011-05-05 13:29:16 UTC (rev 36499)
@@ -31,6 +31,7 @@
../makesdna
../readblenfile
../makesrna
+ ../nodes
../render/extern/include
../../../intern/guardedalloc
${ZLIB_INCLUDE_DIRS}
Modified: branches/particles-2010/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/particles-2010/source/blender/blenloader/intern/readfile.c 2011-05-05 10:36:43 UTC (rev 36498)
+++ branches/particles-2010/source/blender/blenloader/intern/readfile.c 2011-05-05 13:29:16 UTC (rev 36499)
@@ -142,6 +142,8 @@
#include "RNA_access.h"
#include "RNA_types.h"
+#include "intern/node_socket.h"
+
#include "readfile.h"
#include "PIL_time.h"
@@ -6887,6 +6889,50 @@
do_version_bone_roll_256(child);
}
+static void do_versions_socket_default_value(bNodeSocket *sock)
+{
+ bNodeSocketValueFloat *valfloat;
+ bNodeSocketValueVector *valvector;
+ bNodeSocketValueRGBA *valrgba;
+
+ switch (sock->type) {
+ case SOCK_VALUE:
+ valfloat = sock->default_value = MEM_callocN(sizeof(bNodeSocketValueFloat), "default socket value");
+ valfloat->value = sock->ns.vec[0];
+ valfloat->min = sock->ns.min;
+ valfloat->max = sock->ns.max;
+ valfloat->subtype = PROP_NONE;
+ break;
+ case SOCK_VECTOR:
+ valvector = sock->default_value = MEM_callocN(sizeof(bNodeSocketValueVector), "default socket value");
+ copy_v3_v3(valvector->value, sock->ns.vec);
+ valvector->min = sock->ns.min;
+ valvector->max = sock->ns.max;
+ valvector->subtype = PROP_NONE;
+ break;
+ case SOCK_RGBA:
+ valrgba = sock->default_value = MEM_callocN(sizeof(bNodeSocketValueRGBA), "default socket value");
+ copy_v4_v4(valrgba->value, sock->ns.vec);
+ break;
+ }
+}
+
+static void do_versions_nodetree_default_value(bNodeTree *ntree)
+{
+ bNode *node;
+ bNodeSocket *sock;
+ for (node=ntree->nodes.first; node; node=node->next) {
+ for (sock=node->inputs.first; sock; sock=sock->next)
+ do_versions_socket_default_value(sock);
+ for (sock=node->outputs.first; sock; sock=sock->next)
+ do_versions_socket_default_value(sock);
+ }
+ for (sock=ntree->inputs.first; sock; sock=sock->next)
+ do_versions_socket_default_value(sock);
+ for (sock=ntree->outputs.first; sock; sock=sock->next)
+ do_versions_socket_default_value(sock);
+}
+
static void do_versions(FileData *fd, Library *lib, Main *main)
{
/* WATCH IT!!!: pointers from libdata have not been converted */
@@ -11688,6 +11734,25 @@
}
}
+ {
+ /* Convert default socket values from bNodeStack */
+ Scene *sce;
+ Material *mat;
+ Tex *tex;
+ bNodeTree *ntree;
+ for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next)
+ do_versions_nodetree_default_value(ntree);
+ for (sce=main->scene.first; sce; sce=sce->id.next)
+ if (sce->nodetree)
+ do_versions_nodetree_default_value(sce->nodetree);
+ for (mat=main->mat.first; mat; mat=mat->id.next)
+ if (mat->nodetree)
+ do_versions_nodetree_default_value(mat->nodetree);
+ for (tex=main->tex.first; tex; tex=tex->id.next)
+ if (tex->nodetree)
+ do_versions_nodetree_default_value(tex->nodetree);
+ }
+
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
/* WATCH IT 2!: Userdef struct init has to be in editors/interface/resources.c! */
Modified: branches/particles-2010/source/blender/makesdna/DNA_node_types.h
===================================================================
--- branches/particles-2010/source/blender/makesdna/DNA_node_types.h 2011-05-05 10:36:43 UTC (rev 36498)
+++ branches/particles-2010/source/blender/makesdna/DNA_node_types.h 2011-05-05 13:29:16 UTC (rev 36499)
@@ -99,8 +99,6 @@
float locx, locy;
void *default_value; /* default input value used for unlinked sockets */
- /* XXX don't remove, will be needed for do_versions later */
-// bNodeStack ns; /* DEPRECATED custom data for inputs, only UI writes in this */
/* execution data */
short stack_index; /* local stack index */
@@ -114,6 +112,9 @@
struct bNodeSocket *groupsock;
struct bNodeLink *link; /* a link pointer, set in nodeSolveOrder() */
+
+ /* DEPRECATED only needed for do_versions */
+ bNodeStack ns; /* custom data for inputs, only UI writes in this */
} bNodeSocket;
/* socket side (input/output) */
More information about the Bf-blender-cvs
mailing list