[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13796] trunk/blender/source/blender/ blenkernel/intern/cdderivedmesh.c:

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Feb 21 14:15:21 CET 2008


Revision: 13796
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13796
Author:   blendix
Date:     2008-02-21 14:15:21 +0100 (Thu, 21 Feb 2008)

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

Fix for bug #8321: crash with fluidsim in shaded draw mode.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c

Modified: trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2008-02-21 11:34:39 UTC (rev 13795)
+++ trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2008-02-21 13:15:21 UTC (rev 13796)
@@ -52,6 +52,7 @@
 
 #include "DNA_mesh_types.h"
 #include "DNA_meshdata_types.h"
+#include "DNA_object_fluidsim.h"
 #include "DNA_object_types.h"
 #include "DNA_scene_types.h"
 
@@ -746,18 +747,24 @@
 {
 	CDDerivedMesh *cddm = cdDM_create("CDDM_from_mesh dm");
 	DerivedMesh *dm = &cddm->dm;
-	int i, *index;
+	int i, *index, alloctype;
 
-	/* this does a referenced copy, the only new layers being ORIGINDEX */
+	/* this does a referenced copy, the only new layers being ORIGINDEX,
+	 * with an exception for fluidsim */
 
 	DM_init(dm, mesh->totvert, mesh->totedge, mesh->totface);
 	dm->deformedOnly = 1;
 
-	CustomData_merge(&mesh->vdata, &dm->vertData, CD_MASK_MESH, CD_REFERENCE,
+	if(ob->fluidsimSettings && ob->fluidsimSettings->meshSurface)
+		alloctype= CD_DUPLICATE;
+	else
+		alloctype= CD_REFERENCE;
+
+	CustomData_merge(&mesh->vdata, &dm->vertData, CD_MASK_MESH, alloctype,
 	                 mesh->totvert);
-	CustomData_merge(&mesh->edata, &dm->edgeData, CD_MASK_MESH, CD_REFERENCE,
+	CustomData_merge(&mesh->edata, &dm->edgeData, CD_MASK_MESH, alloctype,
 	                 mesh->totedge);
-	CustomData_merge(&mesh->fdata, &dm->faceData, CD_MASK_MESH, CD_REFERENCE,
+	CustomData_merge(&mesh->fdata, &dm->faceData, CD_MASK_MESH, alloctype,
 	                 mesh->totface);
 
 	cddm->mvert = CustomData_get_layer(&dm->vertData, CD_MVERT);





More information about the Bf-blender-cvs mailing list