Thanks, that means a lot to me! I was lucky to find good code examples to borrow from.
The blanking inverval event was the hardest part for sure, I've wondered for a long time how you're supposed to do that without a library like SDL. I used DwmFlush() at first, then only found D3DKMTWaitForVerticalBlankEvent() after googling for more info on DwmFlush(), and it definitely works better.
I'll try D3DKMTGetScanLine()! I noticed it's flickering during some games' loading screens, I've been guessing the Sleep(2) might be causing that.
I noticed for one game that a white moving object was leaving a pretty extreme "echo" in its wake, I'm guessing that's what the image retention is? I'll try out your suggestion for that too.
That makes me wonder if a virtualized monitor driver could sleep for periods shorter than 1 ms? That always seemed like a strange limitation to me. I wasn't sure if doing a busyloop on a thread with really high priority was okay to do or not, since as far as I know it can't sleep for 0.1 ms.
Thanks for peeking at my code, this stuff's pretty fun!
deama wrote:I tried yours but I get a lot of flickering?
I tried it on another computer and also saw that same nasty flickering. I think the program is basically tuned for my monitor right now. With luck Chief's suggestion will make it work well, I'll try.
EDIT: I got an e-mail saying I got a private message here from someone, but my account is too new to view it. Whoever it was, I wanted to let you know!