diff options
author | Joseph Eagar <joeedh@gmail.com> | 2011-05-12 21:47:26 +0400 |
---|---|---|
committer | Joseph Eagar <joeedh@gmail.com> | 2011-05-12 21:47:26 +0400 |
commit | 6dc8a64d3eb1d3990a4c79770068daa13014f941 (patch) | |
tree | 0647fbbc344b312f5433492978f71013eaeacbda /source/blender | |
parent | 33bfcb26b8997d68adbfbf5931e2157a6ba9fbce (diff) |
=bmesh= fixed non-multires sculpt; excluding the DAG update won't work here, since the tesselation has to be recalculated.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/bmesh/operators/bevel.c | 3 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt.c | 5 |
2 files changed, 5 insertions, 3 deletions
diff --git a/source/blender/bmesh/operators/bevel.c b/source/blender/bmesh/operators/bevel.c index df56740830d..319a3d00771 100644 --- a/source/blender/bmesh/operators/bevel.c +++ b/source/blender/bmesh/operators/bevel.c @@ -427,7 +427,8 @@ void bmesh_bevel_exec(BMesh *bm, BMOperator *op) } e = BM_Make_Edge(bm, firstv, lastv, bm_firstfaceloop(faces[i])->e, 1); - BM_Copy_Attributes(bm, bm, bm_firstfaceloop(faces[i])->prev->e, e); + if (bm_firstfaceloop(faces[i])->prev->e != e) + BM_Copy_Attributes(bm, bm, bm_firstfaceloop(faces[i])->prev->e, e); BLI_array_append(edges, e); f = BM_Make_Ngon(bm, verts[0], verts[1], edges, BLI_array_count(verts), 0); diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 0f514ff4e8f..5b55095fdf9 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -1414,7 +1414,7 @@ static void do_nudge_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); - + BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) { if(sculpt_brush_test(&test, vd.co)) { const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, an, vd.no, vd.fno); @@ -3390,8 +3390,9 @@ static void sculpt_flush_update(bContext *C) if(ob->derivedFinal) /* VBO no longer valid */ GPU_drawobject_free(ob->derivedFinal); + DAG_id_tag_update(&ob->id, OB_RECALC_DATA); + if(ss->modifiers_active) { - DAG_id_tag_update(&ob->id, OB_RECALC_DATA); ED_region_tag_redraw(ar); } else { |