Basically works like such:
This system accounts for the following:
Seems like a good system, and is working fine, pretty easy to implement too once you gather all the cold-hard fact about what a device can 'really' support.
So with that part of the graphics core done (initialization and management) I am going to move on to Input and Sound
Ive used DirectSound before, so it should be a huge hassle, however my emphasis this time around is 'absolutely' iron-clad code, no bugs, well tested, etc. etc.
So to achive that ususaly means lots of documentation digging and of course loads of testing (turning sound card off, different sound cards, etc. etc.), plus graceful feature degrading. The audio will be implemented much like in Flare3, in that it will be a totaly streaming audio system (no large static buffers), buffers will likely be 1 second in size (or optimal size if i can find that in the devcaps) and will be recycled (a store of buffers that can grow but not shrink, and can be reused (less memory alloc/free) Like before we will be using ogg, because it is simply a wonderful developer-friendly file format.
Input is another story, a lot of complaints in MW was inability to control motion with the Keyboard, also others would have liked to use a joystick. While I am not positive, I am going to try and set-up a system that allows for more flexiable control options. Depending on what I find it may only be (control mouse via joystick, which is probably not what people want) All in all DirectInput is new to me so I will need to learn what all is involved in it.