diff options
author | Ton Roosendaal <ton@blender.org> | 2004-09-05 17:43:51 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2004-09-05 17:43:51 +0400 |
commit | bf83f6ddd87a76d30339057118f23c5651f9eff4 (patch) | |
tree | d28c5dbec49a60b2060dda9f17f48d08b404f806 /source/blender/src/editscreen.c | |
parent | 61e4707bdb6e9f64db0520c47f398d68e9322937 (diff) |
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.
Diffstat (limited to 'source/blender/src/editscreen.c')
-rw-r--r-- | source/blender/src/editscreen.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/source/blender/src/editscreen.c b/source/blender/src/editscreen.c index b8f26bddbef..b9aed992686 100644 --- a/source/blender/src/editscreen.c +++ b/source/blender/src/editscreen.c @@ -554,11 +554,14 @@ void markdirty_all() ScrArea *sa; for (sa= G.curscreen->areabase.first; sa; sa= sa->next) { - scrarea_queue_winredraw(sa); - sa->win_swap &= ~WIN_FRONT_OK; - - scrarea_queue_headredraw(sa); - sa->head_swap &= ~WIN_FRONT_OK; + if(sa->win) { + scrarea_queue_winredraw(sa); + sa->win_swap &= ~WIN_FRONT_OK; + } + if(sa->headwin) { + scrarea_queue_headredraw(sa); + sa->head_swap &= ~WIN_FRONT_OK; + } } } @@ -1870,6 +1873,7 @@ void setscreen(bScreen *sc) sa= sa->next; } } + else if(G.curscreen) markdirty_all(); /* at least redraw */ if (G.curscreen != sc) { mywinset(sc->mainwin); @@ -1916,7 +1920,7 @@ void setscreen(bScreen *sc) sa->cursor= CURSOR_STD; } - + G.scene= sc->scene; countall(); |