In this recipe, we will render a simple Latin text in the 3D space. For this, we can create a texture bitmap for each character and render it in a quad geometry (rectangle) shape. However, creating each character bitmap could be expensive in terms of memory management and performance because it is required to load several bitmaps in the texture memory. Instead, the better solution is to create a big texture embedded with all characters in it and use their texture coordinates to map them on the geometry quad.
An overview of the process to render fonts using the FreeType library is as follows:
Initialize the FreeType library. This initializes the necessary FreeType data structure.
Load the font face. This loads the font file and generates the font style (font face) information.
Specify the font size. With the specified size of the font, create an empty texture big enough to contain all glyphs. In order to make the texture backward compatible with OpenGL...