[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Sprites
I have implemented a software version of the hardware "sprites" capability
that comes with most micro-computers. Irregularly-shaped glyphs (icons)
are displayed in a window with a virtual z-depth. Glyphs in front overwrite
those in the back. A glyph can be pulled out of or inserted into the middle
of a staggered stack of glyphs, and the system does the right thing--it goes
behind the parts of the ones in front, but it overwrites part of the ones in
back. It's done using white masks for each glyph; the masks clip each other
in a private buffer, and only what's left gets sent to the screen.
Currently, these are output simply as graphics, not as presentations. I'd
like to be able to output the glyphs as presentations (using dw:with-output-
as-presentation), but the sprites change places so often that the output
history would become too full to be useable. So, I need to be able to delete
presentations from the history. However, the recommended methods,
graphics:replacing-graphics-presentation, and graphics:erase-graphics-presentation,
change the screen as well as changing the history. Erasing will incorrectly
delete more recent overwriting parts, while "deleting" and having the screen
redisplay the presentation history will take too long. How can I delete
presentations from the output history without modifying the screen?
...On page 7B-274, the macros "dw:with-output-recording-disabled" and
"dw:with-output-recording-enabled" are mentioned, and could be promising.
However, I was unable to find them in the documentation. This appears to
be a bug.
Thank you, John Myers~~
- Follow-Ups:
- Sprites
- From: Barry Margolin <barmar@THINK.COM>