Page 1 of 1

S*BASIC: pause window refresh until all drawing complete?

Posted: Mon Mar 07, 2022 6:32 pm
by Sparrowhawk
In S*BASIC, is it possible for a window (not the entire screen) to refresh only after all drawing operations to it have been completed?

I am building up a pseudo-3D scene of various items drawn from furthest away (scaled small) to nearest (scaled large) - ideally I'd like the window that is being drawn to appear complete all at once, rather than seeing the drawing commands take place.

Thanks.

Re: S*BASIC: pause window refresh until all drawing complete?

Posted: Mon Mar 07, 2022 6:56 pm
by tofro
Nope, not for a single window and not from S*BASIC, at least not that I would know of. (Other than using the Minerva second-screen feature)

Seeing how you ask, I understand you know you can switch off the display entirely by POKEing the display control register.

Re: S*BASIC: pause window refresh until all drawing complete?

Posted: Mon Mar 07, 2022 7:35 pm
by Sparrowhawk
Thanks for confirmation. I didn't think it would be possible but you never know unless you ask :D

Re: S*BASIC: pause window refresh until all drawing complete?

Posted: Mon Mar 07, 2022 10:35 pm
by mk79
Hm well, in theory it's possible to draw in the backing buffer and copy everything to the screen once it's finished. This is more or less what my PE background refresh routine does. But in practice there is no utility to handle this easily and a lot of hacking would be required. But I agree it could be an interesting feature.

Re: S*BASIC: pause window refresh until all drawing complete?

Posted: Mon Mar 07, 2022 11:14 pm
by pjw
mk79 wrote:Hm well, in theory it's possible to draw in the backing buffer and copy everything to the screen once it's finished.<>
I have tried to do this, but couldnt make it work. I wonder why. I'll have another go next time it becomes relevant - unless someone beats me to it, of course.