[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16152] branches/soc-2008-nicholasbishop/ source/blender/blenkernel/intern/multires.c: Little performance fix; was recalculating some data unneccesarily
Nicholas Bishop
nicholasbishop at gmail.com
Sun Aug 17 19:18:25 CEST 2008
Revision: 16152
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16152
Author: nicholasbishop
Date: 2008-08-17 19:18:25 +0200 (Sun, 17 Aug 2008)
Log Message:
-----------
Little performance fix; was recalculating some data unneccesarily
Modified Paths:
--------------
branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c
Modified: branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c
===================================================================
--- branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c 2008-08-17 17:16:49 UTC (rev 16151)
+++ branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c 2008-08-17 17:18:25 UTC (rev 16152)
@@ -1207,10 +1207,9 @@
mdisps = CustomData_get_layer(&me->fdata, CD_MDISPS);
if(mdisps) {
- SubsurfModifierData smd;
const int lvl = MultiresDM_get_lvl(dm);
const int totlvl = MultiresDM_get_totlvl(dm);
- DerivedMesh *orig, *subco_dm;
+ DerivedMesh *orig;
mvert = CDDM_get_verts(dm);
medge = MultiresDM_get_mesh(dm)->medge;
@@ -1220,10 +1219,9 @@
if(lvl < totlvl) {
/* Propagate disps upwards */
- DerivedMesh *final;
- MVert *verts_new;
+ DerivedMesh *final, *subco_dm;
+ MVert *verts_new = NULL, *cur_lvl_orig_verts = NULL;
MultiresModifierData mmd;
- MVert *cur_lvl_orig_verts = NULL;
/* Regenerate the current level's vertex coordinates without sculpting */
mmd.totlvl = totlvl;
@@ -1241,18 +1239,13 @@
multires_subdisp(orig, me, final, lvl, totlvl, dm->getNumVerts(dm), dm->getNumEdges(dm),
dm->getNumFaces(dm), 1);
- }
- else {
- /* Regenerate the current level's vertex coordinates without displacements */
- memset(&smd, 0, sizeof(SubsurfModifierData));
- smd.levels = lvl - 1;
- subco_dm = subsurf_make_derived_from_derived_with_multires(orig, &smd, NULL, 0, NULL, 0, 0);
- multiresModifier_disp_run(dm, CDDM_get_verts(subco_dm), 1);
+ subco_dm->release(subco_dm);
}
+ else
+ multiresModifier_disp_run(dm, MultiresDM_get_subco(dm), 1);
orig->release(orig);
- subco_dm->release(subco_dm);
}
}
More information about the Bf-blender-cvs
mailing list