@ChrisH
ChrisH wrote:broadblues wrote:only custom screens can / should be double buffered
Something else to missing list of limitations of ChangeScreenBuffer() !
I imagine that allowing public screens to be double-buffered would be a nightmare. Those "foreign" programs would have no knowledge of the double-buffering, and so wouldn't know when the buffer swap was going to occur. It also isn't practical to redraw windows every frame. So, they'd all have to render to off-screen bitmaps which would then be composited onto the screen. At this point, the benefit of having a double-buffered screen would be almost gone. I say "almost," because it would still eliminate tearing artifacts. To top it off, the decision of when the screen compositing should be handled would be a complex/impossible one, unless intuition took over full maintenance of that screen (i.e., it calls ChangeScreenBuffer(), etc., and not your program). All-in-all, I don't think that relaxing this restriction would be a sensible thing to do.
Thinking about this a bit more, the same reasons also apply to why having any windows on double-buffered screens isn't particularly practical. Those windows would either have to be redrawn every frame (impractical), or rendered to an off-screen bitmap, and then blitted in before swapping the buffer (in which case double-buffering is almost redundant). Multiple windows and application-controlled double-buffering don't work together.
Please do take the time to submit bugzilla tickets against the SDK documentation for those items that you think need clarification.
Hans