"Applied Concepts in Microcomputer Graphics" by Bruce A. Artwick
Bean
Posts: 8,129
in Propeller 1
I happened across this book in a local bookstore (yes, they do still exist) for $5 so I bought it.
I see that it is available on amazon on about $5 too.
If you are interested in graphics it is well worth your "lunch money".
http://www.amazon.com/gp/offer-listing/0130393223
Anyway in the book he talks about a "hardware screen erase" where a flag is set by the main program which makes the video driver erase the video memory as it is displaying it (I assume it displays and THEN erases). I guess a flag is set at the end of the screen update to signal to the main program that the screen erase has been complete.
I have never heard of this before and I was wondering if anyone has seen any Propeller video drivers that do this ? It sounds like it would be pretty easy to implement. It could be expanded to fill video memory with any particular value.
Bean
I see that it is available on amazon on about $5 too.
If you are interested in graphics it is well worth your "lunch money".
http://www.amazon.com/gp/offer-listing/0130393223
Anyway in the book he talks about a "hardware screen erase" where a flag is set by the main program which makes the video driver erase the video memory as it is displaying it (I assume it displays and THEN erases). I guess a flag is set at the end of the screen update to signal to the main program that the screen erase has been complete.
I have never heard of this before and I was wondering if anyone has seen any Propeller video drivers that do this ? It sounds like it would be pretty easy to implement. It could be expanded to fill video memory with any particular value.
Bean
Comments
On some machines, like an Apple, or Coco having reads be transparent to the CPU, one could clear while drawing, but that was about as expensive as xor type tricks were. Same goes for just clearing known screen regions, or partial buffering.
The latter is done by dividing the screen into regions. Draw only that region, then clear it, draw next, etc... on machines that allow for paging vram in sections, you can trade image integrity for the perception of a higher frame rate.
Or, on faster things like the Prop, you can divide into strips horizontally, clear and draw in less than a frame. Work your way across and the user sees a high rate, but with image tearing at times. I called this ripple draw. Useful when the whole screen can't be drawn in less than a frame and there is only room for small buffers, or no buffers. I have an example using graphics demo here somewhere.
On the Prop, I've done it (clear while drawing), but it didn't make a lot of sense. Just use a COG and blast the RAM clear at the right time. This can overlap drawing on a bitmap, and comes for free as part of sprites and tiles as those use line buffers anyway.
Timing HUB writes makes for specific size draw loops. Adding an extra HUB op rarely makes sense when another COG gets it for free anyway.