[mcclim-devel] incremental redisplay slowness and local patches

Christophe Rhodes csr21 at cam.ac.uk
Wed Feb 8 17:03:34 UTC 2006


Hi,

As some of you know, the tablature application suffers from scaling
problems in incremental redisplay because of the precision of the
algorithm.  While the spatial-trees stuff might solve this in the end,
at the moment we are working around it by a conservative
incremental-redisplay.

In the interest of minimizing divergence from CVS McCLIM, we would
like to have that incremental-redisplay as a different method,
specialized on an application class.  However, our first try (define a
new output record type) was a failure, as incremental-redisplay itself
is actually called on a stream, not on an output record; we could
specialize redisplay, but then we would have to duplicate a whole load
of stuff.

We do know that the stream we want to call our own method for
incremental-redisplay on is one obtained by OPEN-WINDOW-STREAM, and we
control the place where this is called.  Our current code, then, is
  (change-class (open-window-stream ...) 'tabcode-window-stream)
with
  (defclass tabcode-window-stream (climi::window-stream) ())

This, however, uses a scary clim-internals internal symbol.  That's
fine up to a point, but it would be better from our point of view if
there were a way of doing this in a documented way; is there a
spec-blessed way of having a custom incremental-redisplay method
called?  Alternatively, can climi::window-stream be documented and
exported?  Any other ideas?

Cheers,

Christophe



More information about the mcclim-devel mailing list