The documentation of QuesoGLC is based on the GLC specs. Therefore, the principles, functions, and generally speaking the API described hereafter apply to every implementation of GLC.
If you are new to GLC, may be you should begin with the First Steps tutorial ?
A GLC client is a program that uses OpenGL (henceforth, "GL") and GLC. A GLC library is a subroutine library that implements GLC. Like the GL Utilities (GLU), GLC is implemented on the client side of the GL client-server connection and performs all of its rendering by issuing GL commands.
A GLC context is an instantiation of GLC. When a client thread issues a GLC command, the thread's current GLC context executes the command.
A client can render a character by issuing the command glcRenderChar(). GLC finds a font that maps the character code to a character such as LATIN CAPITAL LETTER A, then uses one or more glyphs from the font to create a graphical layout that represents the character. Finally, GLC issues a sequence of GL commands to draw the layout. Glyph coordinates are defined in em units and are transformed during rendering to produce the desired mapping of the glyph state into the GL window coordinate system.
In addition to commands for rendering, the GLC API includes measurement commands that return certain metrics (e.g. bounding box) for a layout. Since the focus of GLC is on rendering and not modeling, the GLC API does not provide access to glyph shape data.
A font is a stylistically consistent set of glyphs that can be used to render some set of characters. Each font has a family name (e.g. Palatino) and a state variable that selects one of the faces (e.g. Regular, Italic, Bold, Bold Italic) that the font contains. A typeface is the combination of a family and a face (e.g. Palatino Bold).
A font is an instantiation of a master, which is a representation of the font that is stored outside of GLC in a standard format such as TrueType or Type1. A catalog is a named list of masters, which may be implemented as a file system directory containing master files. A list of catalog names defines the list of masters that can be instantiated in a GLC context.
Before issuing a GLC rendering command a client must issue GL commands directly to establish a GL state such that the GL commands issued by GLC produce the desired result. For example, before issuing a glcRenderChar() command a client may issue
glRasterPos() commands to establish the color and origin of the resulting layout.