CLIM mail archive

[Prev][Next][Index][Thread]

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.

ba

Brian H. Anderson                     (206) 234-0881
Boeing Commercial Airplane Co.        bha@ata.ca.boeing.com
P.O. Box 3707 M.S. 6A-PX
Seattle, Wa. 98124-2207

References:

Main Index | Thread Index