[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