Blender Git Loki
Git Commits -> Revision 33df6aa
Revision 33df6aa by Antonis Ryakiotakis (master) May 13, 2014, 19:05 (GMT) |
Fix T39196, Dynamic Topology Undo Applied to Wrong Mesh Undoing nodes that do not belong to the current object will cause the saved bmesh log entry to be reverted instead. This entry can belong to another object though. This is easy to fix by enforcing name matching (this was borrowed by edit mode but can definitely be improved) between current object name and undo node name and deleting older entries. However there are complications. Deleting dyntopo entries in this way can leave a brush stroke as first dyntopo log entry. This can present issues if we attempt to delete that entry since it's deleted mesh elements may now have had their ids (which would still be valid at the time) cleaned up. This can result in crashing if we attempt to resculpt on the mesh. To fix this I have disabled releasing the deleted entries. This entanglement between bm_log and undo is quite volatile but I hope the system works better now. Also minor cleanup, fix unneeded check warning |
Commit Details:
Full Hash: 33df6aa12ea6f627b5b238e6eec64cffb2acdbd4
Parent Commit: 9531091
Lines Changed: +117, -14
11 Modified Paths:
/source/blender/blenlib/intern/boxpack2d.c (+1, -1) (Diff)
/source/blender/bmesh/intern/bmesh_log.c (+44, -2) (Diff)
/source/blender/bmesh/intern/bmesh_log.h (+3, -0) (Diff)
/source/blender/editors/include/ED_sculpt.h (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/paint_image.c (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/paint_image_proj.c (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/paint_intern.h (+1, -0) (Diff)
/source/blender/editors/sculpt_paint/paint_undo.c (+42, -5) (Diff)
/source/blender/editors/sculpt_paint/sculpt_undo.c (+21, -1) (Diff)
/source/blender/editors/space_image/image_ops.c (+1, -1) (Diff)
/source/blender/editors/util/undo.c (+1, -1) (Diff)
/source/blender/bmesh/intern/bmesh_log.c (+44, -2) (Diff)
/source/blender/bmesh/intern/bmesh_log.h (+3, -0) (Diff)
/source/blender/editors/include/ED_sculpt.h (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/paint_image.c (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/paint_image_proj.c (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/paint_intern.h (+1, -0) (Diff)
/source/blender/editors/sculpt_paint/paint_undo.c (+42, -5) (Diff)
/source/blender/editors/sculpt_paint/sculpt_undo.c (+21, -1) (Diff)
/source/blender/editors/space_image/image_ops.c (+1, -1) (Diff)
/source/blender/editors/util/undo.c (+1, -1) (Diff)