About three weeks ago, I put the finishing touches on the Direct3D 9 renderer for Zafehouse 2. Previously, the game exclusively used GDI+, the default graphics API for .NET. Now it runs on a bizarre fusion, with Direct3D performing compositing and GDI+ painting the final image onto the screen.
Well, except when I use native GDI calls to paint instead. Actually, now that I think about it, GDI+ doesn’t do a heck of a lot for Zafehouse 2 anymore.
Now, this change raises a number of questions: Why not use Direct3D for the entire process? Why change APIs in the first place? Isn’t the Direct2D API in DirectX 10+ basically what you’re describing?
These are all fair questions, and I’m going to try to answer them.