Just for the record I work with both but I do consider them to be wildly different types of operating environments filling ultimately different needs. I use Cygwin a lot with Windows but there is nothing in the Linux world that really encourages the development of monolithic platforms for Linux.
Originally Posted by Alfonse Reinheart
Not to nitpick but I am aware of that. I don't use GTK for the record. But I do appreciate glib. But I've never developed a windowed app for X (so I don't know what is required to integrate with the window managers; full disclosure)
If you use GTK, you have a dependency on Pango because GTK uses Pango for its text layout. It uses LibXML2 for its XML reading, so you have another dependency there. And so on. That's how things work in the not-Windows world: you pick your libraries and use them. Some of these are provided by the system. Some of these are provided by you.
Exactly. It's not a project (sourcecode) dependency. It's under the hood.
Functionally, there's no difference between having a dependency on Pango and having a dependency on Uniscribe. The only practical difference is that in the Pango case, you have to link to the library explicitly, while in the Uniscribe case, you don't.
Well yeah. OpenGL doesn't open any file formats. Fonts are files. So obviously rendering text is not implemented at the level of the OpenGL spec. But nevertheless it's important to make graphics accessible and text mindlessly multilingual. IMO it's pretty ridiculous that a consumer card cannot draw lines in 2012. But even I will admit that line drawing is less integral than drawing text, and there are legitimate, albeit pretty ridiculous, reasons for not implementing line drawing in hardware. Still it should be standard, especially as GPUs and CPUs become more and more integrated in mainboards. We shouldn't be having a discussion about drawing text in 2012. Printf like drawing should not introduce a new library to a project. That's just my opinion.
OpenGL is supposed to be a relatively thin wrapper around graphics hardware, in order to achieve a reasonable abstraction and allow for a reasonable platform-neutral interface to that hardware. OpenGL's job is not to make it easy to do complex things. It's job is to make it possible to do complex things. If something can be layered on top of OpenGL, then it should be.
Search for D3DX.
You won't find any font rendering functions in D3D either, for similar reasons.