diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-03-22 14:59:36 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-03-22 14:59:36 +0300 |
commit | 09b1c681e16575ee82bcc3949728189cb968d927 (patch) | |
tree | 1d16d380f47a8932e59f2aab94d3dda448291e13 /source/blender/editors/space_view3d/drawobject.c | |
parent | 1e9bf0cfdb6c925b28af6f0330467e7d9d798c05 (diff) |
Sculpt Mode Bugfixes:
* #20833: layer brush doesn't work with multires.
* #20946: sculpt mode partially removes parts of the mesh in the viewport.
* #20420: grab brush stops after moving some distance.
* #20906: sculpt grab tool moves in wrong direction.
* #21132 and #21272: undo on object with subdivision surface modifier crashes.
* #21115: subsurf + multires + sculpting + undo causes crash.
* #20683: sculpt + multires apply + undo crash.
* #19094: wrong outline in solid mode.
Diffstat (limited to 'source/blender/editors/space_view3d/drawobject.c')
-rw-r--r-- | source/blender/editors/space_view3d/drawobject.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index b7de750e601..fa304c3ea8b 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -2237,7 +2237,7 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object else { if (cageDM!=finalDM) { UI_ThemeColorBlend(TH_WIRE, TH_BACK, 0.7); - finalDM->drawEdges(finalDM, 1); + finalDM->drawEdges(finalDM, 1, 0); } } @@ -2359,7 +2359,7 @@ static void draw_mesh_object_outline(View3D *v3d, Object *ob, DerivedMesh *dm) GPU_disable_material(); } else { - dm->drawEdges(dm, 0); + dm->drawEdges(dm, 0, 1); } glLineWidth(1.0); @@ -2459,7 +2459,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D glEnable(GL_LINE_STIPPLE); glLineStipple(1, 0x8888); - dm->drawEdges(dm, 1); + dm->drawEdges(dm, 1, 0); bglPolygonOffset(rv3d->dist, 0.0); glDepthMask(1); @@ -2486,9 +2486,11 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D int fast= (p->flags & PAINT_FAST_NAVIGATE) && (rv3d->rflag & RV3D_NAVIGATING); if(ob->sculpt->partial_redraw) { - sculpt_get_redraw_planes(planes, ar, rv3d, ob); - fpl = planes; - ob->sculpt->partial_redraw = 0; + if(ar->do_draw & RGN_DRAW_PARTIAL) { + sculpt_get_redraw_planes(planes, ar, rv3d, ob); + fpl = planes; + ob->sculpt->partial_redraw = 0; + } } dm->drawFacesSolid(dm, fpl, fast, GPU_enable_material); @@ -2627,7 +2629,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D glDepthMask(0); // disable write in zbuffer, selected edge wires show better } - dm->drawEdges(dm, (dt==OB_WIRE || totface==0)); + dm->drawEdges(dm, (dt==OB_WIRE || totface==0), 0); if (dt!=OB_WIRE && draw_wire==2) { glDepthMask(1); @@ -2970,7 +2972,7 @@ static void drawDispListshaded(ListBase *lb, Object *ob) static void drawCurveDMWired(Object *ob) { DerivedMesh *dm = ob->derivedFinal; - dm->drawEdges (dm, 1); + dm->drawEdges (dm, 1, 0); } /* return 1 when nothing was drawn */ @@ -6314,9 +6316,9 @@ static void draw_object_mesh_instance(Scene *scene, View3D *v3d, RegionView3D *r if(dt<=OB_WIRE) { if(dm) - dm->drawEdges(dm, 1); + dm->drawEdges(dm, 1, 0); else if(edm) - edm->drawEdges(edm, 1); + edm->drawEdges(edm, 1, 0); } else { if(outline) |