| Index: include/freetype/ftmodapi.h
|
| diff --git a/include/freetype/ftmodapi.h b/include/freetype/ftmodapi.h
|
| index 8f2e01794750c391efcdb111f3cff11e69206361..8abffb558f12a9b38be720c1f5af05f4492ddcbd 100644
|
| --- a/include/freetype/ftmodapi.h
|
| +++ b/include/freetype/ftmodapi.h
|
| @@ -4,7 +4,7 @@
|
| /* */
|
| /* FreeType modules public interface (specification). */
|
| /* */
|
| -/* Copyright 1996-2001, 2002, 2003, 2006, 2008, 2009, 2010 by */
|
| +/* Copyright 1996-2003, 2006, 2008-2010, 2012, 2013 by */
|
| /* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
| /* */
|
| /* This file is part of the FreeType project, and may only be used, */
|
| @@ -42,11 +42,38 @@ FT_BEGIN_HEADER
|
| /* Module Management */
|
| /* */
|
| /* <Abstract> */
|
| - /* How to add, upgrade, and remove modules from FreeType. */
|
| + /* How to add, upgrade, remove, and control modules from FreeType. */
|
| /* */
|
| /* <Description> */
|
| /* 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, raster5 */
|
| + /* sfnt */
|
| + /* smooth, smooth-lcd, smooth-lcdv */
|
| + /* truetype */
|
| + /* type1 */
|
| + /* type42 */
|
| + /* t1cid */
|
| + /* winfonts */
|
| + /* } */
|
| + /* */
|
| + /* Note that the FreeType Cache sub-system is not a FreeType module. */
|
| /* */
|
| /*************************************************************************/
|
|
|
| @@ -118,7 +145,7 @@ FT_BEGIN_HEADER
|
| /* A function used to query a given module for a specific interface. */
|
| /* */
|
| /* <Input> */
|
| - /* module :: The module to finalize. */
|
| + /* module :: The module to be searched. */
|
| /* */
|
| /* name :: The name of the interface in the module. */
|
| /* */
|
| @@ -249,6 +276,137 @@ FT_BEGIN_HEADER
|
| FT_Module module );
|
|
|
|
|
| + /**********************************************************************
|
| + *
|
| + * @function:
|
| + * FT_Property_Set
|
| + *
|
| + * @description:
|
| + * 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 which 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_EXPORT( FT_Error )
|
| + FT_Property_Set( FT_Library library,
|
| + const FT_String* module_name,
|
| + const FT_String* property_name,
|
| + const void* value );
|
| +
|
| +
|
| + /**********************************************************************
|
| + *
|
| + * @function:
|
| + * FT_Property_Get
|
| + *
|
| + * @description:
|
| + * 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 which 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_EXPORT( FT_Error )
|
| + FT_Property_Get( FT_Library library,
|
| + const FT_String* module_name,
|
| + const FT_String* property_name,
|
| + void* value );
|
| +
|
| +
|
| /*************************************************************************/
|
| /* */
|
| /* <Function> */
|
| @@ -430,13 +588,13 @@ FT_BEGIN_HEADER
|
| * scale glyph components with bytecode instructions. It produces
|
| * bad output for most other fonts.
|
| *
|
| - * FT_TRUETYPE_ENGINE_TYPE_PATENTED ::
|
| + * FT_TRUETYPE_ENGINE_TYPE_PATENTED ::
|
| * The library implements a bytecode interpreter that covers
|
| * the full instruction set of the TrueType virtual machine (this
|
| * was governed by patents until May 2010, hence the name).
|
| *
|
| * @since:
|
| - * 2.2
|
| + * 2.2
|
| *
|
| */
|
| typedef enum FT_TrueTypeEngineType_
|
|
|