I did pretty good on my thesis writing, and decided to work on my engine for a while (I managed to go a whole three days without working on it, which is a BIG deal for me since I've worked on the engine nearly every day for ~7 years!). Following up from last time, I managed to separate out all of my different applications and how they instantiate all of the various engine components.
In the past, all of the engine components were created in a base 'Application' class. This was nice because it hid the details of creating the components from each application, but it was bad because you couldn't do anything specialized. Since the addition of my D3D11 renderer, I've been preparing to change this to let each application create the components that it wants. This also helps reduce my application's dependencies on libraries that it doesn't use (D3D9 vs. D3D11 for example). Now if I don't use it, I don't link to it which is a good thing.
At long last, I finally managed to get my constant buffers updating automatically based on parameter values that get set in my renderer. This allows any part of my application to specify a value and set it in the renderer (only vectors and matrices for now, but that's all I use in CBs anyways). When they are set, they have a name associated with them. Then when a shader is bound in the renderer, the renderer loops through the constant buffers by name in the shader, then uses reflection to get the names and types of each of the parameters within the buffer. These values are then looked up in the renderer, and copied into the constant buffer.
The system works phenomenally well - you can register any name you want for a parameter, and as long as it matches the name you specify in your shader and then it just works!
I also found out that I will be writing another article for a forthcoming version of Game Programming Gems - I'm pretty happy about that! I've written for ShaderX, gamedev.net, and also in the D3D10 online book linked to above, so this will be cool to add another publication to the list. It's still early in the process, so it will be a while before the book is finished. Even so, I'm really happy to be given the opportunity!