Second itteration of global undo system. Now based on:

- file-to-memory save
- incremental difference steps (compression)

everthing has been tightly coded to use minimum of memcpy or allocs. In
fact this system works with a single full buffer (=file) in memory, and undosteps as differences from it.
Speed gain is factor 4-8 faster. I've added it in CTRL+ALT+T timer menu for
a test. Please note the gain is especially in the undo-storing, not in
retrieving undo.

Also new: file read option to skip UI read (file menu). This now also is
default for the undo system.
This commit is contained in:
2004-09-05 13:43:51 +00:00
parent 61e4707bdb
commit bf83f6ddd8
18 changed files with 570 additions and 249 deletions

View File

@@ -3091,7 +3091,7 @@ static int ui_do_block(uiBlock *block, uiEvent *uevent)
if(inside || uevent->event!=LEFTMOUSE) {
butevent= ui_do_button(block, but, uevent);
if(but->type!=BLOCK) BIF_write_undo(but->str);
if(but->type!=BLOCK && but->type!=MENU) BIF_write_undo(but->str);
if(butevent) addqueue(block->winq, UI_BUT_EVENT, (short)butevent);