[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13567] trunk/blender/source/blender:

Brecht Van Lommel brechtvanlommel at pandora.be
Mon Feb 4 22:17:16 CET 2008


Revision: 13567
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13567
Author:   blendix
Date:     2008-02-04 22:17:15 +0100 (Mon, 04 Feb 2008)

Log Message:
-----------

Bugfix for recent alphaover premul commit, crashed existing files
and on adding a new node, maybe the commit was incomplete?

Modified Paths:
--------------
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2008-02-04 19:59:31 UTC (rev 13566)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2008-02-04 21:17:15 UTC (rev 13567)
@@ -4633,6 +4633,26 @@
 	}
 }
 
+static void ntree_version_245(bNodeTree *ntree)
+{
+	bNode *node;
+	NodeTwoFloats *ntf;
+
+	if(ntree->type==NTREE_COMPOSIT) {
+		for(node= ntree->nodes.first; node; node= node->next) {
+			if(node->type == CMP_NODE_ALPHAOVER) {
+				if(!node->storage) {
+					ntf= MEM_callocN(sizeof(NodeTwoFloats), "NodeTwoFloats");
+					node->storage= ntf;
+					if(node->custom1)
+						ntf->x= 1.0f;
+				}
+			}
+		}
+	}
+}
+
+
 static void do_versions(FileData *fd, Library *lib, Main *main)
 {
 	/* WATCH IT!!!: pointers from libdata have not been converted */
@@ -6789,6 +6809,7 @@
 		ParticleSettings *part;
 		World *wrld;
 		Mesh *me;
+		bNodeTree *ntree;
 		
 		/* unless the file was created 2.44.3 but not 2.45, update the constraints */
 		if ( !(main->versionfile==244 && main->subversionfile==3) &&
@@ -6973,6 +6994,13 @@
 				wrld->ao_approx_error= 0.25f;
 		}
 
+		for(sce= main->scene.first; sce; sce= sce->id.next)
+			if(sce->nodetree)
+				ntree_version_245(sce->nodetree);
+
+		for(ntree=main->nodetree.first; ntree; ntree= ntree->id.next)
+			ntree_version_245(sce->nodetree);
+
 		if (main->versionfile < 245 || main->subversionfile < 12)
 		{
 			/* initialize skeleton generation toolsettings */

Modified: trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c	2008-02-04 19:59:31 UTC (rev 13566)
+++ trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c	2008-02-04 21:17:15 UTC (rev 13567)
@@ -135,6 +135,11 @@
 	}
 }
 
+static void node_alphaover_init(bNode* node)
+{
+   node->storage= MEM_callocN(sizeof(NodeTwoFloats), "NodeTwoFloats");
+}
+
 bNodeType cmp_node_alphaover= {
 	/* *next,*prev */	NULL, NULL,
 	/* type code   */	CMP_NODE_ALPHAOVER,
@@ -146,7 +151,7 @@
 	/* storage     */	"NodeTwoFloats",
 	/* execfunc    */	node_composit_exec_alphaover,
 	/* butfunc     */	NULL,
-	/* initfunc    */	NULL,
+	/* initfunc    */	node_alphaover_init,
 	/* freestoragefunc    */	node_free_standard_storage,
 	/* copystoragefunc    */	node_copy_standard_storage,
 	/* id          */	NULL





More information about the Bf-blender-cvs mailing list