> That is exactly the major limitation to the MCL graphics package:
> THERE IS NOTHING LIKE A BMP WINDOW, e.g. a window which "remembers"
> what you have drawn to it and is able to refresh, redisplay, etc. The
> only way to accomplish this is to actually record (in your own code)
> all actions taken to the window, then erase it, then redraw
> everything. This is something about MCL which is very primitive and
> very disturbing when trying to do a port.
There are many examples on the MCL CD for how to do this--most use
offscreen GWorlds. One of the easiest to use (IMHO) is
scrolling-gworld-windows.lisp by Kazushi Minagawa on the MCL 3.9 (and
presumably 4.0) CDs. It makes a graphics window very much like you
describe: you can draw to it and it remembers the new pixels, properly
refreshes them (by doing a fast bitmap copy when necessary), and scrolls.
As long as you do all your drawing within a with-focused-gworld (see the
code for examples of how to use this macro), the drawing operations will
be remembered.
--
Shannon Spires
<sandia.gov at svspire>