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) */ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs