This figure shows the general layout of the TextSuite library. The layout is quite easy and it's leaned on OpenGL. At the top of the library there are contexts. They are compareable with containers.
To use an context it must be bound to an thread. You only can bind one context to an thread and an context can bound to only one thread at the same time. The context is accessable only from the thread in which it was bound. After you have unbound the context you can bind them to an other thread.
Each of the contexts has it's own space for all settings, one renderer and several fonts and images. The contexts are completely seperated from each other. So it's not possible to share some settings or objects (fonts/images) between two different contexts.
The objects are also bound to the active renderer inside the context. You can't change the renderer without destroying all objects. But normally you don't want to change the renderer. ;-)