FreeType-2.1.10 API Reference
Module Management
Synopsis
#FT_Module_ClassFT_Module_Class #FT_New_LibraryFT_New_Library #FT_Renderer_ClassFT_Renderer_Class #FT_Add_ModuleFT_Add_Module #FT_Done_LibraryFT_Done_Library #FT_Get_RendererFT_Get_Renderer #FT_Get_ModuleFT_Get_Module #FT_Set_Debug_HookFT_Set_Debug_Hook #FT_Set_RendererFT_Set_Renderer #FT_Remove_ModuleFT_Remove_Module #FT_Add_Default_ModulesFT_Add_Default_Modules The definitions below are used to manage modules within FreeType. Modules can be added, upgraded, and removed at runtime.
FT_Module_Class 
  
typedef struct  FT_Module_Class_
  {
    
ft2-basic_types.html#FT_ULongFT_ULong                module_flags;
    
ft2-basic_types.html#FT_LongFT_Long                 module_size;
    
const ft2-basic_types.html#FT_StringFT_String *       module_name;
    
ft2-basic_types.html#FT_FixedFT_Fixed                module_version;
    
ft2-basic_types.html#FT_FixedFT_Fixed                module_requires;
    
const void*            module_interface;
    FT_Module_Constructor  module_init;
    FT_Module_Destructor   module_done;
    FT_Module_Requester    get_interface;
  } 
FT_Module_Class;
The module class descriptor.
fields module_flags Bit flags describing the module.
module_size The size of one module object/instance in bytes.
module_name The name of the module.
module_version The version, as a 16.16 fixed number (major.minor).
module_requires The version of FreeType this module requires (starts at version 2.0, i.e 0x20000)
module_init A function used to initialize (not create) a new module object.
module_done A function used to finalize (not destroy) a given module object
get_interface Queries a given module for a specific interface by name.
FT_Add_Module 
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  
FT_Add_Module( ft2-base_interface.html#FT_LibraryFT_Library               library,
                 
const ft2-module_management.html#FT_Module_ClassFT_Module_Class *  clazz );
Adds a new module to a given library instance.
inout library A handle to the library object.
input clazz A pointer to class descriptor for the module.
return FreeType error code. 0 means success.
note An error will be returned if a module already exists by that name, or if the module requires a version of FreeType that is too great.
FT_Get_Module 
  FT_EXPORT( 
ft2-base_interface.html#FT_ModuleFT_Module  )
  
FT_Get_Module( ft2-base_interface.html#FT_LibraryFT_Library    library,
                 
const char*  module_name );
Finds a module by its name.
input library A handle to the library object.
module_name The module's name (as an ASCII string).
return A module handle. 0 if none was found.
note You should better be familiar with FreeType internals to know which module to look for :-)
FT_Remove_Module 
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  
FT_Remove_Module( ft2-base_interface.html#FT_LibraryFT_Library   library,
                    
ft2-base_interface.html#FT_ModuleFT_Module    module );
Removes a given module from a library instance.
inout library A handle to a library object.
input module A handle to a module object.
return FreeType error code. 0 means success.
note The module object is destroyed by the function in case of success.
FT_New_Library 
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  
FT_New_Library( ft2-system_interface.html#FT_MemoryFT_Memory     memory,
                  
ft2-base_interface.html#FT_LibraryFT_Library   *alibrary );
This function is used to create a new FreeType library instance from a given memory object. It is thus possible to use libraries with distinct memory allocators within the same program.
input memory A handle to the original memory object.
output alibrary A pointer to handle of a new library object.
return FreeType error code. 0 means success.
FT_Done_Library 
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  
FT_Done_Library( ft2-base_interface.html#FT_LibraryFT_Library   library );
  
typedef void  (*FT_DebugHook_Func)( 
void*  arg );
Discards a given library object. This closes all drivers and discards all resource objects.
input library A handle to the target library.
return FreeType error code. 0 means success.
FT_Set_Debug_Hook 
  FT_EXPORT( 
void )
  
FT_Set_Debug_Hook( ft2-base_interface.html#FT_LibraryFT_Library          library,
                     
ft2-basic_types.html#FT_UIntFT_UInt             hook_index,
                     FT_DebugHook_Func  debug_hook );
Sets a debug hook function for debugging the interpreter of a font format.
inout library A handle to the library object.
input hook_index The index of the debug hook. You should use the values defined in ftobjs.h, e.g. FT_DEBUG_HOOK_TRUETYPE.
debug_hook The function used to debug the interpreter.
note Currently, four debug hook slots are available, but only two (for the TrueType and the Type 1 interpreter) are defined.
FT_Add_Default_Modules 
  FT_EXPORT( 
void )
  
FT_Add_Default_Modules( ft2-base_interface.html#FT_LibraryFT_Library   library );
Adds the set of default drivers to a given library object. This is only useful when you create a library object with FT_New_Library() (usually to plug a custom memory manager).
inout library A handle to a new library object.
FT_Renderer_Class 
  
typedef struct  FT_Renderer_Class_
  {
    
ft2-module_management.html#FT_Module_ClassFT_Module_Class        root;
    
ft2-basic_types.html#FT_Glyph_FormatFT_Glyph_Format        glyph_format;
    FT_Renderer_RenderFunc     render_glyph;
    FT_Renderer_TransformFunc  transform_glyph;
    FT_Renderer_GetCBoxFunc    get_glyph_cbox;
    FT_Renderer_SetModeFunc    set_mode;
    
ft2-raster.html#FT_Raster_FuncsFT_Raster_Funcs *           raster_class;
  } 
FT_Renderer_Class;
The renderer module class descriptor.
fields root The root FT_Module_Class fields.
glyph_format The glyph image format this renderer handles.
render_glyph A method used to render the image that is in a given glyph slot into a bitmap.
set_mode A method used to pass additional parameters.
raster_class For `FT_GLYPH_FORMAT_OUTLINE' renderers only, this is a pointer to its raster's class.
raster For `FT_GLYPH_FORMAT_OUTLINE' renderers only. this is a pointer to the corresponding raster object, if any.
FT_Get_Renderer 
  FT_EXPORT( 
ft2-base_interface.html#FT_RendererFT_Renderer  )
  
FT_Get_Renderer( ft2-base_interface.html#FT_LibraryFT_Library        library,
                   
ft2-basic_types.html#FT_Glyph_FormatFT_Glyph_Format   format );
Retrieves the current renderer for a given glyph format.
input library A handle to the library object.
format The glyph format.
return A renderer handle. 0 if none found.
note An error will be returned if a module already exists by that name, or if the module requires a version of FreeType that is too great.
To add a new renderer, simply use FT_Add_Module(). To retrieve a renderer by its name, use FT_Get_Module().
FT_Set_Renderer 
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  
FT_Set_Renderer( ft2-base_interface.html#FT_LibraryFT_Library      library,
                   
ft2-base_interface.html#FT_RendererFT_Renderer     renderer,
                   
ft2-basic_types.html#FT_UIntFT_UInt         num_params,
                   
ft2-base_interface.html#FT_ParameterFT_Parameter *  parameters );
Sets the current renderer to use, and set additional mode.
inout library A handle to the library object.
input renderer A handle to the renderer object.
num_params The number of additional parameters.
parameters Additional parameters.
return FreeType error code. 0 means success.
note In case of success, the renderer will be used to convert glyph images in the renderer's known format into bitmaps.
This doesn't change the current renderer for other formats.
