Mu0n
Well-known member
Context: I'm trying to refresh a Mac Plus' whole screen 512x342 (for starters..., I will reduce that size going forward) by installing a VBL Task whose purpose is to CopyBits the contents of an offscreen bitmap to the screen bits of what is shown. Of course, the best way to do this is to limit the rectangle size of data to be copied over to be as small as possible and only refresh what's truly moving - I know about that. I also know that the routine gets faster if you use a rectangle width that's a power of 2. However, I want to see if it's feasible to get it smooth first in the worst case, then assess how small I have to go down to.
Without divulging too much (I want to bring this app as a surprise to the community), the graphics that are moving are not simple predictable shapes, but at least the background they'll be moving over is going to be very straightforward (either all black, or all white). The moving graphics is going to be too numerous and too spread out to go with the "repair current state, then paste in new state" of these objects - my intuition is just to paste over the whole section with the new state.
What I'm asking: in your mind, is it already impossible to do this fluidly for a full screen?
If it's not possible, do you have a sense of how large this can happen every vbl cycle?
Can I get a compromise and wait a few refresh cycles (each 16.67 ms) before drawing the new state?
Without divulging too much (I want to bring this app as a surprise to the community), the graphics that are moving are not simple predictable shapes, but at least the background they'll be moving over is going to be very straightforward (either all black, or all white). The moving graphics is going to be too numerous and too spread out to go with the "repair current state, then paste in new state" of these objects - my intuition is just to paste over the whole section with the new state.
What I'm asking: in your mind, is it already impossible to do this fluidly for a full screen?
If it's not possible, do you have a sense of how large this can happen every vbl cycle?
Can I get a compromise and wait a few refresh cycles (each 16.67 ms) before drawing the new state?