Blender Git Loki
Git Commits -> Revision 6c8b356
Revision 6c8b356 by Bastien Montagne (undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks) January 10, 2020, 10:10 (GMT) |
undoexp: Fix major flaw in general logic of unchanged data detection. Am not sure why it seemed to work that well so far... But using marker saying that data did not change between n-2 and n-1 step when undoing from n to n-1 is not really smart. Fixed that by adding a 'is_identical_future' flag to memfile chunks, which is set when storing the next undo step. And then using undo direction to decide which flag to use to detect unchanged data. This seesm to work to some extend, although for some reason very most recent undo step seems to be evaluated when doing the first undo, not sure why... Need to test that with actual working undo code in undo-experiments-idnames branch anyway. |
Commit Details:
Full Hash: 6c8b356203ed3cb330c6f6fa8354eafe46509687
Parent Commit: 209b2d7
Lines Changed: +47, -16
10 Modified Paths:
/source/blender/blenkernel/BKE_blender_undo.h (+3, -1) (Diff)
/source/blender/blenkernel/intern/blender_undo.c (+4, -3) (Diff)
/source/blender/blenkernel/intern/blendfile.c (+1, -2) (Diff)
/source/blender/blenloader/BLO_readfile.h (+4, -1) (Diff)
/source/blender/blenloader/BLO_undofile.h (+4, -0) (Diff)
/source/blender/blenloader/intern/readblenentry.c (+3, -3) (Diff)
/source/blender/blenloader/intern/readfile.c (+14, -2) (Diff)
/source/blender/blenloader/intern/readfile.h (+6, -1) (Diff)
/source/blender/blenloader/intern/undofile.c (+2, -0) (Diff)
/source/blender/editors/undo/memfile_undo.c (+6, -3) (Diff)
/source/blender/blenkernel/intern/blender_undo.c (+4, -3) (Diff)
/source/blender/blenkernel/intern/blendfile.c (+1, -2) (Diff)
/source/blender/blenloader/BLO_readfile.h (+4, -1) (Diff)
/source/blender/blenloader/BLO_undofile.h (+4, -0) (Diff)
/source/blender/blenloader/intern/readblenentry.c (+3, -3) (Diff)
/source/blender/blenloader/intern/readfile.c (+14, -2) (Diff)
/source/blender/blenloader/intern/readfile.h (+6, -1) (Diff)
/source/blender/blenloader/intern/undofile.c (+2, -0) (Diff)
/source/blender/editors/undo/memfile_undo.c (+6, -3) (Diff)