Revision: 15419
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15419
Author:   nicholasbishop
Date:     2008-07-03 22:16:24 +0200 (Thu, 03 Jul 2008)

Log Message:
-----------
Force an update of mesh disps before subdividing

Modified Paths:
--------------
    branches/soc-2008-nicholasbishop/source/blender/blenkernel/BKE_multires.h
    branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c
    branches/soc-2008-nicholasbishop/source/blender/src/buttons_editing.c

Modified: 
branches/soc-2008-nicholasbishop/source/blender/blenkernel/BKE_multires.h
===================================================================
--- branches/soc-2008-nicholasbishop/source/blender/blenkernel/BKE_multires.h   
2008-07-03 19:10:54 UTC (rev 15418)
+++ branches/soc-2008-nicholasbishop/source/blender/blenkernel/BKE_multires.h   
2008-07-03 20:16:24 UTC (rev 15419)
@@ -119,7 +119,7 @@
 
 struct DerivedMesh *multires_dm_create_from_derived(struct 
MultiresModifierData*, struct DerivedMesh*, int, int);
 
-void multiresModifier_subdivide(struct MultiresModifierData *mmd, struct Mesh 
*me);
+void multiresModifier_subdivide(struct MultiresModifierData *mmd, struct 
Object *ob);
 void multiresModifier_setLevel(void *mmd_v, void *ob_v);
 
 void multires_displacer_init(MultiresDisplacer *d, struct DerivedMesh *dm,

Modified: 
branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c
===================================================================
--- 
branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c    
    2008-07-03 19:10:54 UTC (rev 15418)
+++ 
branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c    
    2008-07-03 20:16:24 UTC (rev 15419)
@@ -1384,8 +1384,9 @@
        calc_face_ts_mat(out, orco[f->v1], orco[f->v2], orco[f->v3], (f->v4 ? 
orco[f->v4] : NULL));
 }
 
-void multiresModifier_subdivide(MultiresModifierData *mmd, Mesh *me)
+void multiresModifier_subdivide(MultiresModifierData *mmd, Object *ob)
 {
+       Mesh *me = get_mesh(ob);
        MDisps *mdisps;
        int i;
 
@@ -1394,6 +1395,8 @@
                return;
        }
 
+       multires_force_update(ob);
+
        ++mmd->lvl;
        ++mmd->totlvl;
 
@@ -1706,7 +1709,7 @@
 {
        if(ob->derivedFinal) {
                ob->derivedFinal->needsFree =1;
-               ob->derivedFinal->release(G.obedit->derivedFinal);
+               ob->derivedFinal->release(ob->derivedFinal);
                ob->derivedFinal = NULL;
        }
 }

Modified: branches/soc-2008-nicholasbishop/source/blender/src/buttons_editing.c
===================================================================
--- branches/soc-2008-nicholasbishop/source/blender/src/buttons_editing.c       
2008-07-03 19:10:54 UTC (rev 15418)
+++ branches/soc-2008-nicholasbishop/source/blender/src/buttons_editing.c       
2008-07-03 20:16:24 UTC (rev 15419)
@@ -1660,10 +1660,9 @@
 static void multiresModifier_subdivide_button(void *mmd_v, void *ob_v)
 {
        MultiresModifierData *mmd = mmd_v;
-       Mesh *me = get_mesh(ob_v);
 
-       if(mmd && me) {
-               multiresModifier_subdivide(mmd, me);
+       if(mmd && ob_v) {
+               multiresModifier_subdivide(mmd, ob_v);
                BIF_undo_push("Multires subdivide");
        }
 }


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

Reply via email to