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);
        }
 }
 


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to