02-10-2024, 11:52 PM
Asking the other devs, and checking the source, it does seem as if QB64PE likes to do this type of efficient copying -- when it can.
When can it do this:
Always for 256 color screens, but it'll do flip/scale/mirror separately first for a performance hit.
For 32-bit screens when it's a direct copy and _DontBlend is set, and there's no flipping, mirroring going on.
If it's got to scale or flip (in either mode), it'll do that first, and then do a direct copy as long as it doesn't have to do blending.
When can't it do this:
For certain if it's got to blend two colors together. Note that this is when _BLEND is on, not when you just cross your toes and think, "Welp, this doesn't need to be blended." Be certain to tell the machine when it doesn't need to blend colors (such as when all your images are 255 alpha), or else it's going to always assume that it's got to.
So flipping/rotating *is* going to affect the speed, but the overall amount depends on various factors such as blending or not taking place.
When can it do this:
Always for 256 color screens, but it'll do flip/scale/mirror separately first for a performance hit.
For 32-bit screens when it's a direct copy and _DontBlend is set, and there's no flipping, mirroring going on.
If it's got to scale or flip (in either mode), it'll do that first, and then do a direct copy as long as it doesn't have to do blending.
When can't it do this:
For certain if it's got to blend two colors together. Note that this is when _BLEND is on, not when you just cross your toes and think, "Welp, this doesn't need to be blended." Be certain to tell the machine when it doesn't need to blend colors (such as when all your images are 255 alpha), or else it's going to always assume that it's got to.
So flipping/rotating *is* going to affect the speed, but the overall amount depends on various factors such as blending or not taking place.