CLIM mail archive
Moving objects and incremental redisplay
> Here are my 2 cents on this issue.
> 1. There is at least one bug in coordinate-sorted-set output histories
> that cause output records to get "lost" via the sorting algorithm.
> This bug can be found by running scigraph and deleting the line
> :OUTPUT-RECORD (MAKE-INSTANCE 'CLIM:R-TREE-OUTPUT-HISTORY)
> from scigraph/frame.lisp. It can be seen by trying to drag a graph
> annotation. When you "let go", the most common problem I have heard
> is (a) the annotation loses its sensitivity and (b) replay of output
> records starts losing.
> This bug can cause incremental redisplay to lose, though it is not
> a bug in incremental redisplay per se.
Since I am not dragging output records, this is probably not biting
me. I set the position of the object, then let incremental redisplay
change the displayed position on the screen. Because I am drawing
arcs, when I change the position of an object, I need to recompute the
arc coordinates too.
> 2. Beyond #1, most of the problems I have had with incremental redisplay
> since clim 2.0 beta have turned out to be bugs in my own code. This
> is based on quite a variety of experiences. It is certainly more reliable
> than clim 1.1 and dynamic windows.
Whew! I can attest to that too!
> 3. Nevertheless, proper care and feeding of incremental redisplay
> caching points is VERY HARD. It takes a good model of what incremental
> redisplay does, and even so it is hard to debug because clim takes
> over completely once all the output records have been generated once.
> There is clearly a need for lots of documentation, rules of thumb,
> clim lore, good examples, and prayer here.
I second that one.
> 4. For simple problems, proper incremental redisplay can take as long
> to set up as "rolling your own". Therefore I think its value is
> for problems that are not simple, such as graphs (the hierarchical kind).
I would like to see some simple examples of rolling your own. Maybe
the thing that I am working on could be used to create such an
example. It is completely separate from the application that it needs
to eventually go into. Its just been my experimental testbed. I
suppose the idiom for using the graph formatting engine to compute a
set of default coordinates for a graph would be interesting as an
example also. I've put quite a bit of work into it so far.
Brian H. Anderson (206) 234-0881
Boeing Commercial Airplane Co. email@example.com
P.O. Box 3707 M.S. 6A-PX
Seattle, Wa. 98124-2207
Main Index |