From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- .../docs/reference/ft2-module_management.html | 779 +++++++++++++++++++++ 1 file changed, 779 insertions(+) create mode 100644 modules/freetype2/docs/reference/ft2-module_management.html (limited to 'modules/freetype2/docs/reference/ft2-module_management.html') diff --git a/modules/freetype2/docs/reference/ft2-module_management.html b/modules/freetype2/docs/reference/ft2-module_management.html new file mode 100644 index 000000000..52d364781 --- /dev/null +++ b/modules/freetype2/docs/reference/ft2-module_management.html @@ -0,0 +1,779 @@ + + + + +FreeType-2.7.1 API Reference + + + + + +

FreeType-2.7.1 API Reference

+ +

Module Management

+

Synopsis

+ + + + + + + + + + +
FT_ModuleFT_Add_Default_ModulesFT_Renderer
FT_Module_Constructor FT_Renderer_Class
FT_Module_DestructorFT_Property_Set 
FT_Module_RequesterFT_Property_GetFT_Get_Renderer
FT_Module_Class FT_Set_Renderer
 FT_New_Library 
FT_Add_ModuleFT_Done_LibraryFT_Set_Debug_Hook
FT_Get_ModuleFT_Reference_Library 
FT_Remove_Module FT_Driver
+ + +

The definitions below are used to manage modules within FreeType. Modules can be added, upgraded, and removed at runtime. Additionally, some module properties can be controlled also.

+

Here is a list of possible values of the ‘module_name’ field in the FT_Module_Class structure.

+
+  autofitter
+  bdf
+  cff
+  gxvalid
+  otvalid
+  pcf
+  pfr
+  psaux
+  pshinter
+  psnames
+  raster1
+  sfnt
+  smooth, smooth-lcd, smooth-lcdv
+  truetype
+  type1
+  type42
+  t1cid
+  winfonts
+
+

Note that the FreeType Cache sub-system is not a FreeType module.

+ +
+

FT_Module

+

Defined in FT_FREETYPE_H (freetype/freetype.h).

+
+  typedef struct FT_ModuleRec_*  FT_Module;
+
+ +

A handle to a given FreeType module object. Each module can be a font driver, a renderer, or anything else that provides services to the formers.

+ +
+
+ +
+

FT_Module_Constructor

+

Defined in FT_MODULE_H (freetype/ftmodapi.h).

+
+  typedef FT_Error
+  (*FT_Module_Constructor)( FT_Module  module );
+
+ +

A function used to initialize (not create) a new module object.

+ +

input

+ + +
module +

The module to initialize.

+
+ +
+
+ +
+

FT_Module_Destructor

+

Defined in FT_MODULE_H (freetype/ftmodapi.h).

+
+  typedef void
+  (*FT_Module_Destructor)( FT_Module  module );
+
+ +

A function used to finalize (not destroy) a given module object.

+ +

input

+ + +
module +

The module to finalize.

+
+ +
+
+ +
+

FT_Module_Requester

+

Defined in FT_MODULE_H (freetype/ftmodapi.h).

+
+  typedef FT_Module_Interface
+  (*FT_Module_Requester)( FT_Module    module,
+                          const char*  name );
+
+ +

A function used to query a given module for a specific interface.

+ +

input

+ + + +
module +

The module to be searched.

+
name +

The name of the interface in the module.

+
+ +
+
+ +
+

FT_Module_Class

+

Defined in FT_MODULE_H (freetype/ftmodapi.h).

+
+  typedef struct  FT_Module_Class_
+  {
+    FT_ULong               module_flags;
+    FT_Long                module_size;
+    const FT_String*       module_name;
+    FT_Fixed               module_version;
+    FT_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, as a 16.16 fixed number (major.minor). Starts at version 2.0, i.e., 0x20000.

+
module_init +

The initializing function.

+
module_done +

The finalizing function.

+
get_interface +

The interface requesting function.

+
+ +
+
+ +
+

FT_Add_Module

+

Defined in FT_MODULE_H (freetype/ftmodapi.h).

+
+  FT_EXPORT( FT_Error )
+  FT_Add_Module( FT_Library              library,
+                 const FT_Module_Class*  clazz );
+
+ +

Add 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

+

Defined in FT_MODULE_H (freetype/ftmodapi.h).

+
+  FT_EXPORT( FT_Module )
+  FT_Get_Module( FT_Library   library,
+                 const char*  module_name );
+
+ +

Find 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

+

FreeType's internal modules aren't documented very well, and you should look up the source code for details.

+ +
+
+ +
+

FT_Remove_Module

+

Defined in FT_MODULE_H (freetype/ftmodapi.h).

+
+  FT_EXPORT( FT_Error )
+  FT_Remove_Module( FT_Library  library,
+                    FT_Module   module );
+
+ +

Remove 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_Add_Default_Modules

+

Defined in FT_MODULE_H (freetype/ftmodapi.h).

+
+  FT_EXPORT( void )
+  FT_Add_Default_Modules( FT_Library  library );
+
+ +

Add 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_Property_Set

+

Defined in FT_MODULE_H (freetype/ftmodapi.h).

+
+  FT_EXPORT( FT_Error )
+  FT_Property_Set( FT_Library        library,
+                   const FT_String*  module_name,
+                   const FT_String*  property_name,
+                   const void*       value );
+
+ +

Set a property for a given module.

+ +

input

+ + + + + +
library +

A handle to the library the module is part of.

+
module_name +

The module name.

+
property_name +

The property name. Properties are described in the ‘Synopsis’ subsection of the module's documentation.

+

Note that only a few modules have properties.

+
value +

A generic pointer to a variable or structure that gives the new value of the property. The exact definition of ‘value’ is dependent on the property; see the ‘Synopsis’ subsection of the module's documentation.

+
+ +

return

+

FreeType error code. 0 means success.

+ +

note

+

If ‘module_name’ isn't a valid module name, or ‘property_name’ doesn't specify a valid property, or if ‘value’ doesn't represent a valid value for the given property, an error is returned.

+

The following example sets property ‘bar’ (a simple integer) in module ‘foo’ to value 1.

+
+  FT_UInt  bar;
+
+
+  bar = 1;
+  FT_Property_Set( library, "foo", "bar", &bar );
+
+

Note that the FreeType Cache sub-system doesn't recognize module property changes. To avoid glyph lookup confusion within the cache you should call FTC_Manager_Reset to completely flush the cache if a module property gets changed after FTC_Manager_New has been called.

+

It is not possible to set properties of the FreeType Cache sub-system itself with FT_Property_Set; use ?FTC_Property_Set? instead.

+ +

since

+

2.4.11

+ +
+
+ +
+

FT_Property_Get

+

Defined in FT_MODULE_H (freetype/ftmodapi.h).

+
+  FT_EXPORT( FT_Error )
+  FT_Property_Get( FT_Library        library,
+                   const FT_String*  module_name,
+                   const FT_String*  property_name,
+                   void*             value );
+
+ +

Get a module's property value.

+ +

input

+ + + + +
library +

A handle to the library the module is part of.

+
module_name +

The module name.

+
property_name +

The property name. Properties are described in the ‘Synopsis’ subsection of the module's documentation.

+
+ +

inout

+ + +
value +

A generic pointer to a variable or structure that gives the value of the property. The exact definition of ‘value’ is dependent on the property; see the ‘Synopsis’ subsection of the module's documentation.

+
+ +

return

+

FreeType error code. 0 means success.

+ +

note

+

If ‘module_name’ isn't a valid module name, or ‘property_name’ doesn't specify a valid property, or if ‘value’ doesn't represent a valid value for the given property, an error is returned.

+

The following example gets property ‘baz’ (a range) in module ‘foo’.

+
+  typedef  range_
+  {
+    FT_Int32  min;
+    FT_Int32  max;
+
+  } range;
+
+  range  baz;
+
+
+  FT_Property_Get( library, "foo", "baz", &baz );
+
+

It is not possible to retrieve properties of the FreeType Cache sub-system with FT_Property_Get; use ?FTC_Property_Get? instead.

+ +

since

+

2.4.11

+ +
+
+ +
+

FT_New_Library

+

Defined in FT_MODULE_H (freetype/ftmodapi.h).

+
+  FT_EXPORT( FT_Error )
+  FT_New_Library( FT_Memory    memory,
+                  FT_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. Note, however, that the used FT_Memory structure is expected to remain valid for the life of the FT_Library object.

+

Normally, you would call this function (followed by a call to FT_Add_Default_Modules or a series of calls to FT_Add_Module) instead of FT_Init_FreeType to initialize the FreeType library.

+

Don't use FT_Done_FreeType but FT_Done_Library to destroy a library instance.

+ +

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.

+ +

note

+

See the discussion of reference counters in the description of FT_Reference_Library.

+ +
+
+ +
+

FT_Done_Library

+

Defined in FT_MODULE_H (freetype/ftmodapi.h).

+
+  FT_EXPORT( FT_Error )
+  FT_Done_Library( FT_Library  library );
+
+ +

Discard 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.

+ +

note

+

See the discussion of reference counters in the description of FT_Reference_Library.

+ +
+
+ +
+

FT_Reference_Library

+

Defined in FT_MODULE_H (freetype/ftmodapi.h).

+
+  FT_EXPORT( FT_Error )
+  FT_Reference_Library( FT_Library  library );
+
+ +

A counter gets initialized to 1 at the time an FT_Library structure is created. This function increments the counter. FT_Done_Library then only destroys a library if the counter is 1, otherwise it simply decrements the counter.

+

This function helps in managing life-cycles of structures that reference FT_Library objects.

+ +

input

+ + +
library +

A handle to a target library object.

+
+ +

return

+

FreeType error code. 0 means success.

+ +

since

+

2.4.2

+ +
+
+ +
+

FT_Renderer

+

Defined in FT_FREETYPE_H (freetype/freetype.h).

+
+  typedef struct FT_RendererRec_*  FT_Renderer;
+
+ +

A handle to a given FreeType renderer. A renderer is a special module in charge of converting a glyph image to a bitmap, when necessary. Each renderer supports a given glyph image format, and one or more target surface depths.

+ +
+
+ +
+

FT_Renderer_Class

+

Defined in FT_RENDER_H (freetype/ftrender.h).

+
+  typedef struct  FT_Renderer_Class_
+  {
+    FT_Module_Class            root;
+
+    FT_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;
+
+    FT_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.

+
transform_glyph +

A method used to transform the image that is in a given glyph slot.

+
get_glyph_cbox +

A method used to access the glyph's cbox.

+
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.

+
+ +
+
+ +
+

FT_Get_Renderer

+

Defined in FT_RENDER_H (freetype/ftrender.h).

+
+  FT_EXPORT( FT_Renderer )
+  FT_Get_Renderer( FT_Library       library,
+                   FT_Glyph_Format  format );
+
+ +

Retrieve 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

+

Defined in FT_RENDER_H (freetype/ftrender.h).

+
+  FT_EXPORT( FT_Error )
+  FT_Set_Renderer( FT_Library     library,
+                   FT_Renderer    renderer,
+                   FT_UInt        num_params,
+                   FT_Parameter*  parameters );
+
+ +

Set 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.

+

Currently, no FreeType renderer module uses ‘parameters’; you should thus always pass NULL as the value.

+ +
+
+ +
+

FT_Set_Debug_Hook

+

Defined in FT_MODULE_H (freetype/ftmodapi.h).

+
+  FT_EXPORT( void )
+  FT_Set_Debug_Hook( FT_Library         library,
+                     FT_UInt            hook_index,
+                     FT_DebugHook_Func  debug_hook );
+
+ +

Set 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.

+

Since the internal headers of FreeType are no longer installed, the symbol ‘FT_DEBUG_HOOK_TRUETYPE’ isn't available publicly. This is a bug and will be fixed in a forthcoming release.

+ +
+
+ +
+

FT_Driver

+

Defined in FT_FREETYPE_H (freetype/freetype.h).

+
+  typedef struct FT_DriverRec_*  FT_Driver;
+
+ +

A handle to a given FreeType font driver object. Each font driver is a special module capable of creating faces from font files.

+ +
+
+ + + -- cgit v1.2.3