Font Rendering
Any thoughts on how we should do the font rendering stuff? libfreetype? pango? bitmaps? Or should we switch to a GUI framework like CEGUI?
I'd say to switch to a GUI framework like CEGUI.
Okay, guess I'll make a new branch and try to get CEGUI up and running there for a start :)
We tried to use CEGUI for HighRiseDev, and it seemed way more complex than necessary. Perhaps things have changed since then, or you have a better idea of how these things work, so taking a look at it might still be worthwhile. Most games use a custom GUI toolkit, afaik, and I started to write one for OpenTower. However, writing a GUI toolkit is hard, and doesn't really solve the problems other toolkits have. It's a bit surprising that a better GUI toolkit doesn't exist for C++ and OpenGL, considering it's such a common combination.
Well, there is another toolkit, but it doesn't have full Linux/Mac support. It's quite lightweight and coded in full C++. It's made by the guy who works on Garry's Mod because he wants something lightweight and no bull. https://code.google.com/p/gwen/
Gwen looks nicer to me, but what portions don't work on Mac/Linux?
I'm not sure, it's mainly because of little things (it was written on Windows using VS, some stuff is VS-specific), but things like using _min instead of a macro. I've toyed with it, it's a new project, it just hasn't been fully ported to Linux yet. I don't think anything's stopping it, it just doesn't have much attention.
Yeah writing a GUI toolkit is gruesome… It's unfortunate that things like GTK+ don't have an OpenGL Backend. My personal favorite toolkit would be CEGUI at the moment as it is well-tested and known to work on every platform Ogre3D runs on, which is virtually anything. I especially like the text rendering stuff. Thinking about where OpenSkyscraper might go in the Deluxe edition we'll probably need some powerful GUI.
For font rendering, you could use SDL_ttf and also, for PNG support, SDL_image. This may remove the dependency required on OpenGL. Also, both addon libraries are multi-platform.
SFML has similar facilities as well, but having basic font and image rendering is quite a ways off from having an entire GUI toolkit. Granted, a lot of the GUI will probably have to be created in that "raw" fashion, since CEGUI probably won't do a great job of the main gameplay screen (although it will be quite useful for option/pause screens).