Ok, I've got the framework class done.
As it is all you need to do to get D3D up and running is simply run the code as is. This is only the EXE right now - I'll release the sources later.
I want to test this on several systems before I release it to the newbs for game dev.
The last thing we need is this board to get flooded with posts about why the framework doesn't work.
The idea here is that you simply have 3 functions for the game.
Setup() - all setup is done here
Display() - scene is drawn here
Shutdown() - everything allocated in setup is released here.
Upon exiting the message loop the framework will shutdown and release the IDirect3DDevice9 pointer as well as delete the global D3D9 object. The IDirect3D9 pointer is relased shortly after creation inside of D3DFrameWork::Init().
All you must do to use this framework is to add code to Setup(), Display(), and Shutdown(). I took this idea from one of my books....but I revised it a little bit. There is a global D3D9 object that represents the entire device. It is global for simplicity sake and not much would be gained by hiding it.
Please test this code as is to see if it works on your system. It should fire up Direct3D, clear the screen to black and sit there. Press ESC to exit the program.
You should not receive any errors from Windows about this program when it closes. If you do...let me know.
After I verify that it works well on most systems (it should work on all) I will place the framework inside of a DLL and you will simply need to d/l the DLL and link with it in your projects. This will protect my framework code from needless tampering.