And now, for something totally different...naturally, a terrain engine can't hold one's attention forever.  I've taken a temporary break to revisit the GUI engine that I started some time ago and left in an embarrassing state.  I'd like to start making some stupid, simple game demos, just to have some fun with the engine...but I'd certainly need a tight GUI system for such a game.

So far, I've overhauled fonts, labels, edits, and buttons, and added basic windows and windowing.  Everything is shaping up nicely, or, at least, much better than last time. I ended up using a fairly interesting design pattern for the GUI elements, since I wanted to modularize functionality as much as possible without losing efficiency. To this end, I went with a templatized decorator pattern. As in, the c++ decorator pattern, but with templates, so that all code is generated at compile-time and any given GUI object (in theory) becomes the sum of all of its functional parts without the overhead of dynamic linking.