Hello! I'm Kevin Reems (the guy who wrote BltTest). About a week ago I replaced my Radeon with a GeForce4Ti4800. I was shocked when I fired up my current project only to see that four year old bug still exists even in the beast I just spent $175 on.
Needless to say I started working on a workaround and discovered what you already have.. the issue only happens when the blt is to a surface in video memory.
Obviously you'd want your primary or backbuffer(s) in video memory so the solution I've come up with is to do two blts.
The first to a surface in system memory. This is when you do your scaling, mirroring etc.
Then you blt That image to your destination in video memory (using BltFast if you'd like).
Last night I got bored and wondered if anyone else has their nuts in a vice due to this issue and stumbled on
http://www.gapidraw.com/gf2/ which is a page I wrote back when GeForce2's were considered badass. So I've been looking into this site and think you guys really got something cool going on here.
I figured if someone took the time to host this page then there must be others looking for a fix or at least an explination. No doubt there's people who are new to programming and think their graphics look like ass because of something wrong with their code.
Without furthor ado, I've released BltTest2.
http://members.cox.net/kreems/dev/BltTest2.zip
This is a cleaned up version of BltTest1. It also features the workaround. The source code is included as are VisualC project files. It's kept as simple as possible. I don't think Borland users should have trouble getting the source to compile.
Please feel free to distribute this file.
I appreciate that the webmaster at gapidraw left my page unedited but if you wish to update the links or add a link to BltTest2 that's fine by me.
I don't currently have a domain so my addresses will probably change within a year. My current e-mail is
kreems@cox.net if anyone has questions or comments.
-LBt1st