Pango utilizes a module architecture in which the language-specific and render-system-specific components are provided by loadable modules. Each loadable module supplies one or more engines. Each engine has an associated engine type and render type. These two types are represented by strings.
Each dynamically-loaded module exports several functions which provide the public C API. These functions are script_engine_list, script_engine_init and script_engine_exit, and script_engine_create. The latter three functions are used when creating engines from the module at run time, while the first function is used when building a catalog of all available modules.
Pango::Engine is the base class for all types of language and script specific engines. It has no functionality by itself.