parent
fe82b5a122
commit
c9bd739a8b
|
@ -102,7 +102,7 @@ Use UI font variant if available, because it has tight vertical metrics and good
|
|||
## freetype
|
||||
|
||||
- Upstream: https://www.freetype.org
|
||||
- Version: 2.8.1
|
||||
- Version: 2.9.1
|
||||
- License: FreeType License (BSD-like)
|
||||
|
||||
Files extracted from upstream source:
|
||||
|
|
|
@ -163,7 +163,7 @@ Legal Terms
|
|||
|
||||
Our home page can be found at
|
||||
|
||||
http://www.freetype.org
|
||||
https://www.freetype.org
|
||||
|
||||
|
||||
--- end of FTL.TXT ---
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* ANSI-specific configuration file (specification only). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -73,11 +73,11 @@ FT_BEGIN_HEADER
|
|||
|
||||
/* The size of an `int' type. */
|
||||
#if FT_UINT_MAX == 0xFFFFUL
|
||||
#define FT_SIZEOF_INT (16 / FT_CHAR_BIT)
|
||||
#define FT_SIZEOF_INT ( 16 / FT_CHAR_BIT )
|
||||
#elif FT_UINT_MAX == 0xFFFFFFFFUL
|
||||
#define FT_SIZEOF_INT (32 / FT_CHAR_BIT)
|
||||
#define FT_SIZEOF_INT ( 32 / FT_CHAR_BIT )
|
||||
#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL
|
||||
#define FT_SIZEOF_INT (64 / FT_CHAR_BIT)
|
||||
#define FT_SIZEOF_INT ( 64 / FT_CHAR_BIT )
|
||||
#else
|
||||
#error "Unsupported size of `int' type!"
|
||||
#endif
|
||||
|
@ -85,11 +85,11 @@ FT_BEGIN_HEADER
|
|||
/* The size of a `long' type. A five-byte `long' (as used e.g. on the */
|
||||
/* DM642) is recognized but avoided. */
|
||||
#if FT_ULONG_MAX == 0xFFFFFFFFUL
|
||||
#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT)
|
||||
#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
|
||||
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL
|
||||
#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT)
|
||||
#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
|
||||
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL
|
||||
#define FT_SIZEOF_LONG (64 / FT_CHAR_BIT)
|
||||
#define FT_SIZEOF_LONG ( 64 / FT_CHAR_BIT )
|
||||
#else
|
||||
#error "Unsupported size of `long' type!"
|
||||
#endif
|
||||
|
@ -236,12 +236,12 @@ FT_BEGIN_HEADER
|
|||
|
||||
#endif
|
||||
|
||||
#if FT_SIZEOF_INT == (32 / FT_CHAR_BIT)
|
||||
#if FT_SIZEOF_INT == ( 32 / FT_CHAR_BIT )
|
||||
|
||||
typedef signed int FT_Int32;
|
||||
typedef unsigned int FT_UInt32;
|
||||
|
||||
#elif FT_SIZEOF_LONG == (32 / FT_CHAR_BIT)
|
||||
#elif FT_SIZEOF_LONG == ( 32 / FT_CHAR_BIT )
|
||||
|
||||
typedef signed long FT_Int32;
|
||||
typedef unsigned long FT_UInt32;
|
||||
|
@ -252,12 +252,12 @@ FT_BEGIN_HEADER
|
|||
|
||||
|
||||
/* look up an integer type that is at least 32 bits */
|
||||
#if FT_SIZEOF_INT >= (32 / FT_CHAR_BIT)
|
||||
#if FT_SIZEOF_INT >= ( 32 / FT_CHAR_BIT )
|
||||
|
||||
typedef int FT_Fast;
|
||||
typedef unsigned int FT_UFast;
|
||||
|
||||
#elif FT_SIZEOF_LONG >= (32 / FT_CHAR_BIT)
|
||||
#elif FT_SIZEOF_LONG >= ( 32 / FT_CHAR_BIT )
|
||||
|
||||
typedef long FT_Fast;
|
||||
typedef unsigned long FT_UFast;
|
||||
|
@ -267,7 +267,7 @@ FT_BEGIN_HEADER
|
|||
|
||||
/* determine whether we have a 64-bit int type for platforms without */
|
||||
/* Autoconf */
|
||||
#if FT_SIZEOF_LONG == (64 / FT_CHAR_BIT)
|
||||
#if FT_SIZEOF_LONG == ( 64 / FT_CHAR_BIT )
|
||||
|
||||
/* FT_LONG64 must be defined if a 64-bit type is available */
|
||||
#define FT_LONG64
|
||||
|
@ -365,6 +365,14 @@ FT_BEGIN_HEADER
|
|||
#endif
|
||||
|
||||
|
||||
/* Use FT_LOCAL and FT_LOCAL_DEF to declare and define, respectively, */
|
||||
/* a function that gets used only within the scope of a module. */
|
||||
/* Normally, both the header and source code files for such a */
|
||||
/* function are within a single module directory. */
|
||||
/* */
|
||||
/* Intra-module arrays should be tagged with FT_LOCAL_ARRAY and */
|
||||
/* FT_LOCAL_ARRAY_DEF. */
|
||||
/* */
|
||||
#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
|
||||
|
||||
#define FT_LOCAL( x ) static x
|
||||
|
@ -386,6 +394,12 @@ FT_BEGIN_HEADER
|
|||
#define FT_LOCAL_ARRAY_DEF( x ) const x
|
||||
|
||||
|
||||
/* Use FT_BASE and FT_BASE_DEF to declare and define, respectively, */
|
||||
/* functions that are used in more than a single module. In the */
|
||||
/* current setup this implies that the declaration is in a header */
|
||||
/* file in the `include/freetype/internal' directory, and the */
|
||||
/* function body is in a file in `src/base'. */
|
||||
/* */
|
||||
#ifndef FT_BASE
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -408,14 +422,63 @@ FT_BEGIN_HEADER
|
|||
#endif /* !FT_BASE_DEF */
|
||||
|
||||
|
||||
/* When compiling FreeType as a DLL or DSO with hidden visibility */
|
||||
/* some systems/compilers need a special attribute in front OR after */
|
||||
/* the return type of function declarations. */
|
||||
/* */
|
||||
/* Two macros are used within the FreeType source code to define */
|
||||
/* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */
|
||||
/* */
|
||||
/* FT_EXPORT( return_type ) */
|
||||
/* */
|
||||
/* is used in a function declaration, as in */
|
||||
/* */
|
||||
/* FT_EXPORT( FT_Error ) */
|
||||
/* FT_Init_FreeType( FT_Library* alibrary ); */
|
||||
/* */
|
||||
/* */
|
||||
/* FT_EXPORT_DEF( return_type ) */
|
||||
/* */
|
||||
/* is used in a function definition, as in */
|
||||
/* */
|
||||
/* FT_EXPORT_DEF( FT_Error ) */
|
||||
/* FT_Init_FreeType( FT_Library* alibrary ) */
|
||||
/* { */
|
||||
/* ... some code ... */
|
||||
/* return FT_Err_Ok; */
|
||||
/* } */
|
||||
/* */
|
||||
/* You can provide your own implementation of FT_EXPORT and */
|
||||
/* FT_EXPORT_DEF here if you want. */
|
||||
/* */
|
||||
/* To export a variable, use FT_EXPORT_VAR. */
|
||||
/* */
|
||||
#ifndef FT_EXPORT
|
||||
|
||||
#ifdef __cplusplus
|
||||
#ifdef FT2_BUILD_LIBRARY
|
||||
|
||||
#if defined( _WIN32 ) && ( defined( _DLL ) || defined( DLL_EXPORT ) )
|
||||
#define FT_EXPORT( x ) __declspec( dllexport ) x
|
||||
#elif defined( __GNUC__ ) && __GNUC__ >= 4
|
||||
#define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x
|
||||
#elif defined( __cplusplus )
|
||||
#define FT_EXPORT( x ) extern "C" x
|
||||
#else
|
||||
#define FT_EXPORT( x ) extern x
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#if defined( FT2_DLLIMPORT )
|
||||
#define FT_EXPORT( x ) __declspec( dllimport ) x
|
||||
#elif defined( __cplusplus )
|
||||
#define FT_EXPORT( x ) extern "C" x
|
||||
#else
|
||||
#define FT_EXPORT( x ) extern x
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* !FT_EXPORT */
|
||||
|
||||
|
||||
|
@ -440,6 +503,7 @@ FT_BEGIN_HEADER
|
|||
|
||||
#endif /* !FT_EXPORT_VAR */
|
||||
|
||||
|
||||
/* The following macros are needed to compile the library with a */
|
||||
/* C++ compiler and with 16bit compilers. */
|
||||
/* */
|
||||
|
@ -451,7 +515,13 @@ FT_BEGIN_HEADER
|
|||
/* functions which are accessed by (global) function pointers. */
|
||||
/* */
|
||||
/* */
|
||||
/* FT_CALLBACK_DEF is used to _define_ a callback function. */
|
||||
/* FT_CALLBACK_DEF is used to _define_ a callback function, */
|
||||
/* located in the same source code file as the structure that uses */
|
||||
/* it. */
|
||||
/* */
|
||||
/* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare */
|
||||
/* and define a callback function, respectively, in a similar way */
|
||||
/* as FT_BASE and FT_BASE_DEF work. */
|
||||
/* */
|
||||
/* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
|
||||
/* contains pointers to callback functions. */
|
||||
|
@ -471,6 +541,16 @@ FT_BEGIN_HEADER
|
|||
#endif
|
||||
#endif /* FT_CALLBACK_DEF */
|
||||
|
||||
#ifndef FT_BASE_CALLBACK
|
||||
#ifdef __cplusplus
|
||||
#define FT_BASE_CALLBACK( x ) extern "C" x
|
||||
#define FT_BASE_CALLBACK_DEF( x ) extern "C" x
|
||||
#else
|
||||
#define FT_BASE_CALLBACK( x ) extern x
|
||||
#define FT_BASE_CALLBACK_DEF( x ) x
|
||||
#endif
|
||||
#endif /* FT_BASE_CALLBACK */
|
||||
|
||||
#ifndef FT_CALLBACK_TABLE
|
||||
#ifdef __cplusplus
|
||||
#define FT_CALLBACK_TABLE extern "C"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Build macros of the FreeType 2 library. */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -315,6 +315,19 @@
|
|||
#define FT_RENDER_H <freetype/ftrender.h>
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
*
|
||||
* @macro:
|
||||
* FT_DRIVER_H
|
||||
*
|
||||
* @description:
|
||||
* A macro used in #include statements to name the file containing
|
||||
* structures and macros related to the driver modules.
|
||||
*
|
||||
*/
|
||||
#define FT_DRIVER_H <freetype/ftdriver.h>
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
*
|
||||
* @macro:
|
||||
|
@ -324,8 +337,10 @@
|
|||
* A macro used in #include statements to name the file containing
|
||||
* structures and macros related to the auto-hinting module.
|
||||
*
|
||||
* Deprecated since version 2.9; use @FT_DRIVER_H instead.
|
||||
*
|
||||
*/
|
||||
#define FT_AUTOHINTER_H <freetype/ftautoh.h>
|
||||
#define FT_AUTOHINTER_H FT_DRIVER_H
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
|
@ -337,8 +352,10 @@
|
|||
* A macro used in #include statements to name the file containing
|
||||
* structures and macros related to the CFF driver module.
|
||||
*
|
||||
* Deprecated since version 2.9; use @FT_DRIVER_H instead.
|
||||
*
|
||||
*/
|
||||
#define FT_CFF_DRIVER_H <freetype/ftcffdrv.h>
|
||||
#define FT_CFF_DRIVER_H FT_DRIVER_H
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
|
@ -350,8 +367,10 @@
|
|||
* A macro used in #include statements to name the file containing
|
||||
* structures and macros related to the TrueType driver module.
|
||||
*
|
||||
* Deprecated since version 2.9; use @FT_DRIVER_H instead.
|
||||
*
|
||||
*/
|
||||
#define FT_TRUETYPE_DRIVER_H <freetype/ftttdrv.h>
|
||||
#define FT_TRUETYPE_DRIVER_H FT_DRIVER_H
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
|
@ -363,8 +382,10 @@
|
|||
* A macro used in #include statements to name the file containing
|
||||
* structures and macros related to the PCF driver module.
|
||||
*
|
||||
* Deprecated since version 2.9; use @FT_DRIVER_H instead.
|
||||
*
|
||||
*/
|
||||
#define FT_PCF_DRIVER_H <freetype/ftpcfdrv.h>
|
||||
#define FT_PCF_DRIVER_H FT_DRIVER_H
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
|
@ -554,63 +575,6 @@
|
|||
#define FT_CACHE_H <freetype/ftcache.h>
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
*
|
||||
* @macro:
|
||||
* FT_CACHE_IMAGE_H
|
||||
*
|
||||
* @description:
|
||||
* A macro used in #include statements to name the file containing the
|
||||
* `glyph image' API of the FreeType~2 cache sub-system.
|
||||
*
|
||||
* It is used to define a cache for @FT_Glyph elements. You can also
|
||||
* use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to
|
||||
* store small glyph bitmaps, as it will use less memory.
|
||||
*
|
||||
* This macro is deprecated. Simply include @FT_CACHE_H to have all
|
||||
* glyph image-related cache declarations.
|
||||
*
|
||||
*/
|
||||
#define FT_CACHE_IMAGE_H FT_CACHE_H
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
*
|
||||
* @macro:
|
||||
* FT_CACHE_SMALL_BITMAPS_H
|
||||
*
|
||||
* @description:
|
||||
* A macro used in #include statements to name the file containing the
|
||||
* `small bitmaps' API of the FreeType~2 cache sub-system.
|
||||
*
|
||||
* It is used to define a cache for small glyph bitmaps in a relatively
|
||||
* memory-efficient way. You can also use the API defined in
|
||||
* @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images,
|
||||
* including scalable outlines.
|
||||
*
|
||||
* This macro is deprecated. Simply include @FT_CACHE_H to have all
|
||||
* small bitmaps-related cache declarations.
|
||||
*
|
||||
*/
|
||||
#define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
*
|
||||
* @macro:
|
||||
* FT_CACHE_CHARMAP_H
|
||||
*
|
||||
* @description:
|
||||
* A macro used in #include statements to name the file containing the
|
||||
* `charmap' API of the FreeType~2 cache sub-system.
|
||||
*
|
||||
* This macro is deprecated. Simply include @FT_CACHE_H to have all
|
||||
* charmap-based cache declarations.
|
||||
*
|
||||
*/
|
||||
#define FT_CACHE_CHARMAP_H FT_CACHE_H
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
*
|
||||
* @macro:
|
||||
|
@ -760,17 +724,6 @@
|
|||
#define FT_LCD_FILTER_H <freetype/ftlcdfil.h>
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
*
|
||||
* @macro:
|
||||
* FT_UNPATENTED_HINTING_H
|
||||
*
|
||||
* @description:
|
||||
* Deprecated.
|
||||
*/
|
||||
#define FT_UNPATENTED_HINTING_H <freetype/ttunpat.h>
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
*
|
||||
* @macro:
|
||||
|
@ -809,25 +762,30 @@
|
|||
|
||||
/* */
|
||||
|
||||
/* These header files don't need to be included by the user. */
|
||||
#define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
|
||||
#define FT_PARAMETER_TAGS_H <freetype/ftparams.h>
|
||||
|
||||
/* Deprecated macros. */
|
||||
#define FT_UNPATENTED_HINTING_H <freetype/ftparams.h>
|
||||
#define FT_TRUETYPE_UNPATENTED_H <freetype/ftparams.h>
|
||||
|
||||
/* FT_CACHE_H is the only header file needed for the cache subsystem. */
|
||||
#define FT_CACHE_IMAGE_H FT_CACHE_H
|
||||
#define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H
|
||||
#define FT_CACHE_CHARMAP_H FT_CACHE_H
|
||||
|
||||
/* The internals of the cache sub-system are no longer exposed. We */
|
||||
/* default to FT_CACHE_H at the moment just in case, but we know of */
|
||||
/* no rogue client that uses them. */
|
||||
/* */
|
||||
#define FT_CACHE_MANAGER_H <freetype/ftcache.h>
|
||||
#define FT_CACHE_INTERNAL_MRU_H <freetype/ftcache.h>
|
||||
#define FT_CACHE_INTERNAL_MANAGER_H <freetype/ftcache.h>
|
||||
#define FT_CACHE_INTERNAL_CACHE_H <freetype/ftcache.h>
|
||||
#define FT_CACHE_INTERNAL_GLYPH_H <freetype/ftcache.h>
|
||||
#define FT_CACHE_INTERNAL_IMAGE_H <freetype/ftcache.h>
|
||||
#define FT_CACHE_INTERNAL_SBITS_H <freetype/ftcache.h>
|
||||
|
||||
|
||||
#define FT_INCREMENTAL_H <freetype/ftincrem.h>
|
||||
|
||||
#define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h>
|
||||
#define FT_CACHE_MANAGER_H FT_CACHE_H
|
||||
#define FT_CACHE_INTERNAL_MRU_H FT_CACHE_H
|
||||
#define FT_CACHE_INTERNAL_MANAGER_H FT_CACHE_H
|
||||
#define FT_CACHE_INTERNAL_CACHE_H FT_CACHE_H
|
||||
#define FT_CACHE_INTERNAL_GLYPH_H FT_CACHE_H
|
||||
#define FT_CACHE_INTERNAL_IMAGE_H FT_CACHE_H
|
||||
#define FT_CACHE_INTERNAL_SBITS_H FT_CACHE_H
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* User-selectable configuration macros (specification only). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -75,19 +75,21 @@ FT_BEGIN_HEADER
|
|||
/*************************************************************************/
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*#***********************************************************************/
|
||||
/* */
|
||||
/* If you enable this configuration option, FreeType recognizes an */
|
||||
/* environment variable called `FREETYPE_PROPERTIES', which can be used */
|
||||
/* to control the various font drivers and modules. The controllable */
|
||||
/* properties are listed in the section `Controlling FreeType Modules' */
|
||||
/* in the reference's table of contents; currently there are properties */
|
||||
/* for the auto-hinter (file `ftautoh.h'), CFF (file `ftcffdrv.h'), */
|
||||
/* TrueType (file `ftttdrv.h'), and PCF (file `ftpcfdrv.h'). */
|
||||
/* properties are listed in the section @properties. */
|
||||
/* */
|
||||
/* You have to undefine this configuration option on platforms that lack */
|
||||
/* the concept of environment variables (and thus don't have the */
|
||||
/* `getenv' function), for example Windows CE. */
|
||||
/* */
|
||||
/* `FREETYPE_PROPERTIES' has the following syntax form (broken here into */
|
||||
/* multiple lines for better readability). */
|
||||
/* */
|
||||
/* { */
|
||||
/* <optional whitespace> */
|
||||
/* <module-name1> ':' */
|
||||
/* <property-name1> '=' <property-value1> */
|
||||
|
@ -95,6 +97,7 @@ FT_BEGIN_HEADER
|
|||
/* <module-name2> ':' */
|
||||
/* <property-name2> '=' <property-value2> */
|
||||
/* ... */
|
||||
/* } */
|
||||
/* */
|
||||
/* Example: */
|
||||
/* */
|
||||
|
@ -211,6 +214,10 @@ FT_BEGIN_HEADER
|
|||
/* Do not #undef this macro here since the build system might define */
|
||||
/* it for certain configurations only. */
|
||||
/* */
|
||||
/* If you use a build system like cmake or the `configure' script, */
|
||||
/* options set by those programs have precendence, overwriting the */
|
||||
/* value here with the configured one. */
|
||||
/* */
|
||||
/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */
|
||||
|
||||
|
||||
|
@ -227,6 +234,10 @@ FT_BEGIN_HEADER
|
|||
/* */
|
||||
/* Define this macro if you want to enable this `feature'. */
|
||||
/* */
|
||||
/* If you use a build system like cmake or the `configure' script, */
|
||||
/* options set by those programs have precendence, overwriting the */
|
||||
/* value here with the configured one. */
|
||||
/* */
|
||||
/* #define FT_CONFIG_OPTION_USE_BZIP2 */
|
||||
|
||||
|
||||
|
@ -252,6 +263,10 @@ FT_BEGIN_HEADER
|
|||
/* */
|
||||
/* Define this macro if you want to enable this `feature'. */
|
||||
/* */
|
||||
/* If you use a build system like cmake or the `configure' script, */
|
||||
/* options set by those programs have precendence, overwriting the */
|
||||
/* value here with the configured one. */
|
||||
/* */
|
||||
/* #define FT_CONFIG_OPTION_USE_PNG */
|
||||
|
||||
|
||||
|
@ -265,51 +280,13 @@ FT_BEGIN_HEADER
|
|||
/* */
|
||||
/* Define this macro if you want to enable this `feature'. */
|
||||
/* */
|
||||
/* If you use a build system like cmake or the `configure' script, */
|
||||
/* options set by those programs have precendence, overwriting the */
|
||||
/* value here with the configured one. */
|
||||
/* */
|
||||
/* #define FT_CONFIG_OPTION_USE_HARFBUZZ */
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* DLL export compilation */
|
||||
/* */
|
||||
/* When compiling FreeType as a DLL, some systems/compilers need a */
|
||||
/* special keyword in front OR after the return type of function */
|
||||
/* declarations. */
|
||||
/* */
|
||||
/* Two macros are used within the FreeType source code to define */
|
||||
/* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */
|
||||
/* */
|
||||
/* FT_EXPORT( return_type ) */
|
||||
/* */
|
||||
/* is used in a function declaration, as in */
|
||||
/* */
|
||||
/* FT_EXPORT( FT_Error ) */
|
||||
/* FT_Init_FreeType( FT_Library* alibrary ); */
|
||||
/* */
|
||||
/* */
|
||||
/* FT_EXPORT_DEF( return_type ) */
|
||||
/* */
|
||||
/* is used in a function definition, as in */
|
||||
/* */
|
||||
/* FT_EXPORT_DEF( FT_Error ) */
|
||||
/* FT_Init_FreeType( FT_Library* alibrary ) */
|
||||
/* { */
|
||||
/* ... some code ... */
|
||||
/* return FT_Err_Ok; */
|
||||
/* } */
|
||||
/* */
|
||||
/* You can provide your own implementation of FT_EXPORT and */
|
||||
/* FT_EXPORT_DEF here if you want. If you leave them undefined, they */
|
||||
/* will be later automatically defined as `extern return_type' to */
|
||||
/* allow normal compilation. */
|
||||
/* */
|
||||
/* Do not #undef these macros here since the build system might define */
|
||||
/* them for certain configurations only. */
|
||||
/* */
|
||||
/* #define FT_EXPORT(x) extern x */
|
||||
/* #define FT_EXPORT_DEF(x) x */
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Glyph Postscript Names handling */
|
||||
|
@ -678,7 +655,7 @@ FT_BEGIN_HEADER
|
|||
/* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be */
|
||||
/* defined. */
|
||||
/* */
|
||||
/* [1] http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */
|
||||
/* [1] https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */
|
||||
/* */
|
||||
/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 1 */
|
||||
#define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2
|
||||
|
@ -698,7 +675,7 @@ FT_BEGIN_HEADER
|
|||
/* composite flags array which can be used to disambiguate, but old */
|
||||
/* fonts will not have them. */
|
||||
/* */
|
||||
/* http://www.microsoft.com/typography/otspec/glyf.htm */
|
||||
/* https://www.microsoft.com/typography/otspec/glyf.htm */
|
||||
/* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html */
|
||||
/* */
|
||||
#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
|
||||
|
@ -795,6 +772,16 @@ FT_BEGIN_HEADER
|
|||
#undef T1_CONFIG_OPTION_NO_MM_SUPPORT
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* T1_CONFIG_OPTION_OLD_ENGINE controls whether the pre-Adobe Type 1 */
|
||||
/* engine gets compiled into FreeType. If defined, it is possible to */
|
||||
/* switch between the two engines using the `hinting-engine' property of */
|
||||
/* the type1 driver module. */
|
||||
/* */
|
||||
/* #define T1_CONFIG_OPTION_OLD_ENGINE */
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/**** ****/
|
||||
|
@ -810,8 +797,8 @@ FT_BEGIN_HEADER
|
|||
/* possible to set up the default values of the four control points that */
|
||||
/* define the stem darkening behaviour of the (new) CFF engine. For */
|
||||
/* more details please read the documentation of the */
|
||||
/* `darkening-parameters' property of the cff driver module (file */
|
||||
/* `ftcffdrv.h'), which allows the control at run-time. */
|
||||
/* `darkening-parameters' property (file `ftdriver.h'), which allows the */
|
||||
/* control at run-time. */
|
||||
/* */
|
||||
/* Do *not* undefine these macros! */
|
||||
/* */
|
||||
|
@ -899,7 +886,7 @@ FT_BEGIN_HEADER
|
|||
/* */
|
||||
/* This experimental option is active only if the rendering mode is */
|
||||
/* FT_RENDER_MODE_LIGHT; you can switch warping on and off with the */
|
||||
/* `warping' property of the auto-hinter (see file `ftautoh.h' for more */
|
||||
/* `warping' property of the auto-hinter (see file `ftdriver.h' for more */
|
||||
/* information; by default it is switched off). */
|
||||
/* */
|
||||
#define AF_CONFIG_OPTION_USE_WARPER
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
/* ANSI-specific library and header configuration file (specification */
|
||||
/* only). */
|
||||
/* */
|
||||
/* Copyright 2002-2017 by */
|
||||
/* Copyright 2002-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType high-level API and common types (specification only). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -138,6 +138,7 @@ FT_BEGIN_HEADER
|
|||
/* FT_FACE_FLAG_TRICKY */
|
||||
/* FT_FACE_FLAG_KERNING */
|
||||
/* FT_FACE_FLAG_MULTIPLE_MASTERS */
|
||||
/* FT_FACE_FLAG_VARIATION */
|
||||
/* FT_FACE_FLAG_GLYPH_NAMES */
|
||||
/* FT_FACE_FLAG_EXTERNAL_STREAM */
|
||||
/* FT_FACE_FLAG_HINTER */
|
||||
|
@ -147,14 +148,16 @@ FT_BEGIN_HEADER
|
|||
/* FT_HAS_KERNING */
|
||||
/* FT_HAS_FIXED_SIZES */
|
||||
/* FT_HAS_GLYPH_NAMES */
|
||||
/* FT_HAS_MULTIPLE_MASTERS */
|
||||
/* FT_HAS_COLOR */
|
||||
/* FT_HAS_MULTIPLE_MASTERS */
|
||||
/* */
|
||||
/* FT_IS_SFNT */
|
||||
/* FT_IS_SCALABLE */
|
||||
/* FT_IS_FIXED_WIDTH */
|
||||
/* FT_IS_CID_KEYED */
|
||||
/* FT_IS_TRICKY */
|
||||
/* FT_IS_NAMED_INSTANCE */
|
||||
/* FT_IS_VARIATION */
|
||||
/* */
|
||||
/* FT_STYLE_FLAG_BOLD */
|
||||
/* FT_STYLE_FLAG_ITALIC */
|
||||
|
@ -648,7 +651,7 @@ FT_BEGIN_HEADER
|
|||
/* FT_ENCODING_MS_SYMBOL :: */
|
||||
/* Microsoft Symbol encoding, used to encode mathematical symbols */
|
||||
/* and wingdings. For more information, see */
|
||||
/* `http://www.microsoft.com/typography/otspec/recom.htm', */
|
||||
/* `https://www.microsoft.com/typography/otspec/recom.htm', */
|
||||
/* `http://www.kostis.net/charsets/symbol.htm', and */
|
||||
/* `http://www.kostis.net/charsets/wingding.htm'. */
|
||||
/* */
|
||||
|
@ -657,7 +660,7 @@ FT_BEGIN_HEADER
|
|||
/* */
|
||||
/* FT_ENCODING_SJIS :: */
|
||||
/* Shift JIS encoding for Japanese. More info at */
|
||||
/* `http://en.wikipedia.org/wiki/Shift_JIS'. See note on */
|
||||
/* `https://en.wikipedia.org/wiki/Shift_JIS'. See note on */
|
||||
/* multi-byte encodings below. */
|
||||
/* */
|
||||
/* FT_ENCODING_PRC :: */
|
||||
|
@ -673,7 +676,7 @@ FT_BEGIN_HEADER
|
|||
/* Corresponds to the Korean encoding system known as Extended */
|
||||
/* Wansung (MS Windows code page 949). */
|
||||
/* For more information see */
|
||||
/* `http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit949.txt'. */
|
||||
/* `https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit949.txt'. */
|
||||
/* */
|
||||
/* FT_ENCODING_JOHAB :: */
|
||||
/* The Korean standard character set (KS~C 5601-1992), which */
|
||||
|
@ -721,11 +724,12 @@ FT_BEGIN_HEADER
|
|||
/* Same as FT_ENCODING_JOHAB. Deprecated. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* By default, FreeType automatically synthesizes a Unicode charmap */
|
||||
/* for PostScript fonts, using their glyph name dictionaries. */
|
||||
/* However, it also reports the encodings defined explicitly in the */
|
||||
/* font file, for the cases when they are needed, with the Adobe */
|
||||
/* values as well. */
|
||||
/* By default, FreeType enables a Unicode charmap and tags it with */
|
||||
/* FT_ENCODING_UNICODE when it is either provided or can be generated */
|
||||
/* from PostScript glyph name dictionaries in the font file. */
|
||||
/* All other encodings are considered legacy and tagged only if */
|
||||
/* explicitly defined in the font file. Otherwise, FT_ENCODING_NONE */
|
||||
/* is used. */
|
||||
/* */
|
||||
/* FT_ENCODING_NONE is set by the BDF and PCF drivers if the charmap */
|
||||
/* is neither Unicode nor ISO-8859-1 (otherwise it is set to */
|
||||
|
@ -749,7 +753,7 @@ FT_BEGIN_HEADER
|
|||
/* @FT_Get_CMap_Language_ID to query the Mac language ID that may */
|
||||
/* be needed to be able to distinguish Apple encoding variants. See */
|
||||
/* */
|
||||
/* http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt */
|
||||
/* https://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt */
|
||||
/* */
|
||||
/* to get an idea how to do that. Basically, if the language ID */
|
||||
/* is~0, don't use it, otherwise subtract 1 from the language ID. */
|
||||
|
@ -888,34 +892,41 @@ FT_BEGIN_HEADER
|
|||
/* are set to~0 if there is only one face in */
|
||||
/* the font file. */
|
||||
/* */
|
||||
/* Bits 16-30 are relevant to GX and OpenType */
|
||||
/* variation fonts only, holding the named */
|
||||
/* instance index for the current face index */
|
||||
/* (starting with value~1; value~0 indicates */
|
||||
/* font access without a named instance). For */
|
||||
/* non-variation fonts, bits 16-30 are */
|
||||
/* ignored. If we have the third named */
|
||||
/* instance of face~4, say, `face_index' is */
|
||||
/* set to 0x00030004. */
|
||||
/* [Since 2.6.1] Bits 16-30 are relevant to GX */
|
||||
/* and OpenType variation fonts only, holding */
|
||||
/* the named instance index for the current */
|
||||
/* face index (starting with value~1; value~0 */
|
||||
/* indicates font access without a named */
|
||||
/* instance). For non-variation fonts, bits */
|
||||
/* 16-30 are ignored. If we have the third */
|
||||
/* named instance of face~4, say, `face_index' */
|
||||
/* is set to 0x00030004. */
|
||||
/* */
|
||||
/* Bit 31 is always zero (this is, */
|
||||
/* `face_index' is always a positive value). */
|
||||
/* */
|
||||
/* [Since 2.9] Changing the design coordinates */
|
||||
/* with @FT_Set_Var_Design_Coordinates or */
|
||||
/* @FT_Set_Var_Blend_Coordinates does not */
|
||||
/* influence the named instance index value */
|
||||
/* (only @FT_Set_Named_Instance does that). */
|
||||
/* */
|
||||
/* face_flags :: A set of bit flags that give important */
|
||||
/* information about the face; see */
|
||||
/* @FT_FACE_FLAG_XXX for the details. */
|
||||
/* */
|
||||
/* style_flags :: The lower 16~bits contain a set of bit */
|
||||
/* flags indicating the style of the face; see */
|
||||
/* @FT_STYLE_FLAG_XXX for the details. Bits */
|
||||
/* 16-30 hold the number of named instances */
|
||||
/* available for the current face if we have a */
|
||||
/* GX or OpenType variation (sub)font. Bit 31 */
|
||||
/* is always zero (this is, `style_flags' is */
|
||||
/* always a positive value). Note that a */
|
||||
/* variation font has always at least one */
|
||||
/* named instance, namely the default */
|
||||
/* instance. */
|
||||
/* @FT_STYLE_FLAG_XXX for the details. */
|
||||
/* */
|
||||
/* [Since 2.6.1] Bits 16-30 hold the number */
|
||||
/* of named instances available for the */
|
||||
/* current face if we have a GX or OpenType */
|
||||
/* variation (sub)font. Bit 31 is always zero */
|
||||
/* (this is, `style_flags' is always a */
|
||||
/* positive value). Note that a variation */
|
||||
/* font has always at least one named */
|
||||
/* instance, namely the default instance. */
|
||||
/* */
|
||||
/* num_glyphs :: The number of glyphs in the face. If the */
|
||||
/* face is scalable and has sbits (see */
|
||||
|
@ -1052,6 +1063,9 @@ FT_BEGIN_HEADER
|
|||
/* `descender', `height', `underline_position', and */
|
||||
/* `underline_thickness'. */
|
||||
/* */
|
||||
/* Especially for TrueType fonts see also the documentation for */
|
||||
/* @FT_Size_Metrics. */
|
||||
/* */
|
||||
typedef struct FT_FaceRec_
|
||||
{
|
||||
FT_Long num_faces;
|
||||
|
@ -1162,7 +1176,7 @@ FT_BEGIN_HEADER
|
|||
/* interpolating between them. Supported formats are Adobe MM, */
|
||||
/* TrueType GX, and OpenType variation fonts. */
|
||||
/* */
|
||||
/* See the multiple-masters specific API for details. */
|
||||
/* See section @multiple_masters for API details. */
|
||||
/* */
|
||||
/* FT_FACE_FLAG_GLYPH_NAMES :: */
|
||||
/* The face contains glyph names, which can be retrieved using */
|
||||
|
@ -1212,8 +1226,15 @@ FT_BEGIN_HEADER
|
|||
/* tricky fonts; they are hard-coded in file `ttobjs.c'. */
|
||||
/* */
|
||||
/* FT_FACE_FLAG_COLOR :: */
|
||||
/* The face has color glyph tables. To access color glyphs use */
|
||||
/* @FT_LOAD_COLOR. */
|
||||
/* [Since 2.5.1] The face has color glyph tables. To access color */
|
||||
/* glyphs use @FT_LOAD_COLOR. */
|
||||
/* */
|
||||
/* FT_FACE_FLAG_VARIATION :: */
|
||||
/* [Since 2.9] Set if the current face (or named instance) has been */
|
||||
/* altered with @FT_Set_MM_Design_Coordinates, */
|
||||
/* @FT_Set_Var_Design_Coordinates, or */
|
||||
/* @FT_Set_Var_Blend_Coordinates. This flag is unset by a call to */
|
||||
/* @FT_Set_Named_Instance. */
|
||||
/* */
|
||||
#define FT_FACE_FLAG_SCALABLE ( 1L << 0 )
|
||||
#define FT_FACE_FLAG_FIXED_SIZES ( 1L << 1 )
|
||||
|
@ -1230,6 +1251,7 @@ FT_BEGIN_HEADER
|
|||
#define FT_FACE_FLAG_CID_KEYED ( 1L << 12 )
|
||||
#define FT_FACE_FLAG_TRICKY ( 1L << 13 )
|
||||
#define FT_FACE_FLAG_COLOR ( 1L << 14 )
|
||||
#define FT_FACE_FLAG_VARIATION ( 1L << 15 )
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
|
@ -1391,11 +1413,37 @@ FT_BEGIN_HEADER
|
|||
* A macro that returns true whenever a face object is a named instance
|
||||
* of a GX or OpenType variation font.
|
||||
*
|
||||
* [Since 2.9] Changing the design coordinates with
|
||||
* @FT_Set_Var_Design_Coordinates or @FT_Set_Var_Blend_Coordinates does
|
||||
* not influence the return value of this macro (only
|
||||
* @FT_Set_Named_Instance does that).
|
||||
*
|
||||
* @since:
|
||||
* 2.7
|
||||
*
|
||||
*/
|
||||
#define FT_IS_NAMED_INSTANCE( face ) \
|
||||
( (face)->face_index & 0x7FFF0000L )
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
*
|
||||
* @macro:
|
||||
* FT_IS_VARIATION( face )
|
||||
*
|
||||
* @description:
|
||||
* A macro that returns true whenever a face object has been altered
|
||||
* by @FT_Set_MM_Design_Coordinates, @FT_Set_Var_Design_Coordinates, or
|
||||
* @FT_Set_Var_Blend_Coordinates.
|
||||
*
|
||||
* @since:
|
||||
* 2.9
|
||||
*
|
||||
*/
|
||||
#define FT_IS_VARIATION( face ) \
|
||||
( (face)->face_flags & FT_FACE_FLAG_VARIATION )
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
*
|
||||
* @macro:
|
||||
|
@ -1437,6 +1485,9 @@ FT_BEGIN_HEADER
|
|||
* A macro that returns true whenever a face object contains
|
||||
* tables for color glyphs.
|
||||
*
|
||||
* @since:
|
||||
* 2.5.1
|
||||
*
|
||||
*/
|
||||
#define FT_HAS_COLOR( face ) \
|
||||
( (face)->face_flags & FT_FACE_FLAG_COLOR )
|
||||
|
@ -1534,7 +1585,7 @@ FT_BEGIN_HEADER
|
|||
/* to the following. */
|
||||
/* */
|
||||
/* { */
|
||||
/* scaled_ascender = FT_MulFix( face->root.ascender, */
|
||||
/* scaled_ascender = FT_MulFix( face->ascender, */
|
||||
/* size_metrics->y_scale ); */
|
||||
/* } */
|
||||
/* */
|
||||
|
@ -1548,6 +1599,43 @@ FT_BEGIN_HEADER
|
|||
/* */
|
||||
/* The `FT_Size_Metrics' structure is valid for bitmap fonts also. */
|
||||
/* */
|
||||
/* */
|
||||
/* *TrueType* *fonts* *with* *native* *bytecode* *hinting* */
|
||||
/* */
|
||||
/* All applications that handle TrueType fonts with native hinting */
|
||||
/* must be aware that TTFs expect different rounding of vertical font */
|
||||
/* dimensions. The application has to cater for this, especially if */
|
||||
/* it wants to rely on a TTF's vertical data (for example, to */
|
||||
/* properly align box characters vertically). */
|
||||
/* */
|
||||
/* Only the application knows _in_ _advance_ that it is going to use */
|
||||
/* native hinting for TTFs! FreeType, on the other hand, selects the */
|
||||
/* hinting mode not at the time of creating an @FT_Size object but */
|
||||
/* much later, namely while calling @FT_Load_Glyph. */
|
||||
/* */
|
||||
/* Here is some pseudo code that illustrates a possible solution. */
|
||||
/* */
|
||||
/* { */
|
||||
/* font_format = FT_Get_Font_Format( face ); */
|
||||
/* */
|
||||
/* if ( !strcmp( font_format, "TrueType" ) && */
|
||||
/* do_native_bytecode_hinting ) */
|
||||
/* { */
|
||||
/* ascender = ROUND( FT_MulFix( face->ascender, */
|
||||
/* size_metrics->y_scale ) ); */
|
||||
/* descender = ROUND( FT_MulFix( face->descender, */
|
||||
/* size_metrics->y_scale ) ); */
|
||||
/* } */
|
||||
/* else */
|
||||
/* { */
|
||||
/* ascender = size_metrics->ascender; */
|
||||
/* descender = size_metrics->descender; */
|
||||
/* } */
|
||||
/* */
|
||||
/* height = size_metrics->height; */
|
||||
/* max_advance = size_metrics->max_advance; */
|
||||
/* } */
|
||||
/* */
|
||||
typedef struct FT_Size_Metrics_
|
||||
{
|
||||
FT_UShort x_ppem; /* horizontal pixels per EM */
|
||||
|
@ -1689,17 +1777,13 @@ FT_BEGIN_HEADER
|
|||
/* @FT_GLYPH_FORMAT_COMPOSITE, but other values */
|
||||
/* are possible. */
|
||||
/* */
|
||||
/* bitmap :: This field is used as a bitmap descriptor */
|
||||
/* when the slot format is */
|
||||
/* @FT_GLYPH_FORMAT_BITMAP. Note that the */
|
||||
/* address and content of the bitmap buffer can */
|
||||
/* change between calls of @FT_Load_Glyph and a */
|
||||
/* few other functions. */
|
||||
/* bitmap :: This field is used as a bitmap descriptor. */
|
||||
/* Note that the address and content of the */
|
||||
/* bitmap buffer can change between calls of */
|
||||
/* @FT_Load_Glyph and a few other functions. */
|
||||
/* */
|
||||
/* bitmap_left :: The bitmap's left bearing expressed in */
|
||||
/* integer pixels. Only valid if the format is */
|
||||
/* @FT_GLYPH_FORMAT_BITMAP, this is, if the */
|
||||
/* glyph slot contains a bitmap. */
|
||||
/* integer pixels. */
|
||||
/* */
|
||||
/* bitmap_top :: The bitmap's top bearing expressed in integer */
|
||||
/* pixels. This is the distance from the */
|
||||
|
@ -1746,7 +1830,9 @@ FT_BEGIN_HEADER
|
|||
/* If @FT_Load_Glyph is called with default flags (see */
|
||||
/* @FT_LOAD_DEFAULT) the glyph image is loaded in the glyph slot in */
|
||||
/* its native format (e.g., an outline glyph for TrueType and Type~1 */
|
||||
/* formats). */
|
||||
/* formats). [Since 2.9] The prospective bitmap metrics are */
|
||||
/* calculated according to @FT_LOAD_TARGET_XXX and other flags even */
|
||||
/* for the outline glyph, even if @FT_LOAD_RENDER is not set. */
|
||||
/* */
|
||||
/* This image can later be converted into a bitmap by calling */
|
||||
/* @FT_Render_Glyph. This function searches the current renderer for */
|
||||
|
@ -1895,8 +1981,8 @@ FT_BEGIN_HEADER
|
|||
/* */
|
||||
/* If compilation option FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES is */
|
||||
/* set, this function reads the `FREETYPE_PROPERTIES' environment */
|
||||
/* variable to control driver properties. See sections @auto_hinter, */
|
||||
/* @cff_driver, @pcf_driver, and @tt_driver for more. */
|
||||
/* variable to control driver properties. See section @properties */
|
||||
/* for more. */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Init_FreeType( FT_Library *alibrary );
|
||||
|
@ -1977,8 +2063,8 @@ FT_BEGIN_HEADER
|
|||
/* data :: A pointer to the parameter data. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* The ID and function of parameters are driver-specific. See the */
|
||||
/* various FT_PARAM_TAG_XXX flags for more information. */
|
||||
/* The ID and function of parameters are driver-specific. See */
|
||||
/* section @parameter_tags for more information. */
|
||||
/* */
|
||||
typedef struct FT_Parameter_
|
||||
{
|
||||
|
@ -2155,14 +2241,14 @@ FT_BEGIN_HEADER
|
|||
/* with value~0). Set it to~0 if there is only one */
|
||||
/* face in the font file. */
|
||||
/* */
|
||||
/* Bits 16-30 are relevant to GX and OpenType variation */
|
||||
/* fonts only, specifying the named instance index for */
|
||||
/* the current face index (starting with value~1; */
|
||||
/* value~0 makes FreeType ignore named instances). For */
|
||||
/* non-variation fonts, bits 16-30 are ignored. */
|
||||
/* Assuming that you want to access the third named */
|
||||
/* instance in face~4, `face_index' should be set to */
|
||||
/* 0x00030004. If you want to access face~4 without */
|
||||
/* [Since 2.6.1] Bits 16-30 are relevant to GX and */
|
||||
/* OpenType variation fonts only, specifying the named */
|
||||
/* instance index for the current face index (starting */
|
||||
/* with value~1; value~0 makes FreeType ignore named */
|
||||
/* instances). For non-variation fonts, bits 16-30 are */
|
||||
/* ignored. Assuming that you want to access the third */
|
||||
/* named instance in face~4, `face_index' should be set */
|
||||
/* to 0x00030004. If you want to access face~4 without */
|
||||
/* variation handling, simply set `face_index' to */
|
||||
/* value~4. */
|
||||
/* */
|
||||
|
@ -2748,6 +2834,10 @@ FT_BEGIN_HEADER
|
|||
/* since its glyph indices are not listed in any of the font's */
|
||||
/* charmaps. */
|
||||
/* */
|
||||
/* If no active cmap is set up (i.e., `face->charmap' is zero), the */
|
||||
/* call to @FT_Get_Char_Index is omitted, and the function behaves */
|
||||
/* identically to @FT_Load_Glyph. */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Load_Char( FT_Face face,
|
||||
FT_ULong char_code,
|
||||
|
@ -2869,26 +2959,26 @@ FT_BEGIN_HEADER
|
|||
* Disable the auto-hinter. See also the note below.
|
||||
*
|
||||
* FT_LOAD_COLOR ::
|
||||
* Load embedded color bitmap images. The resulting color bitmaps,
|
||||
* if available, will have the @FT_PIXEL_MODE_BGRA format. If the
|
||||
* flag is not set and color bitmaps are found, they are converted
|
||||
* to 256-level gray bitmaps transparently, using the
|
||||
* [Since 2.5] Load embedded color bitmap images. The resulting color
|
||||
* bitmaps, if available, will have the @FT_PIXEL_MODE_BGRA format.
|
||||
* If the flag is not set and color bitmaps are found, they are
|
||||
* converted to 256-level gray bitmaps transparently, using the
|
||||
* @FT_PIXEL_MODE_GRAY format.
|
||||
*
|
||||
* FT_LOAD_COMPUTE_METRICS ::
|
||||
* Compute glyph metrics from the glyph data, without the use of
|
||||
* bundled metrics tables (for example, the `hdmx' table in TrueType
|
||||
* fonts). This flag is mainly used by font validating or font
|
||||
* editing applications, which need to ignore, verify, or edit those
|
||||
* tables.
|
||||
* [Since 2.6.1] Compute glyph metrics from the glyph data, without
|
||||
* the use of bundled metrics tables (for example, the `hdmx' table in
|
||||
* TrueType fonts). This flag is mainly used by font validating or
|
||||
* font editing applications, which need to ignore, verify, or edit
|
||||
* those tables.
|
||||
*
|
||||
* Currently, this flag is only implemented for TrueType fonts.
|
||||
*
|
||||
* FT_LOAD_BITMAP_METRICS_ONLY ::
|
||||
* Request loading of the metrics and bitmap image information of a
|
||||
* (possibly embedded) bitmap glyph without allocating or copying
|
||||
* the bitmap image data itself. No effect if the target glyph is
|
||||
* not a bitmap image.
|
||||
* [Since 2.7.1] Request loading of the metrics and bitmap image
|
||||
* information of a (possibly embedded) bitmap glyph without
|
||||
* allocating or copying the bitmap image data itself. No effect if
|
||||
* the target glyph is not a bitmap image.
|
||||
*
|
||||
* This flag unsets @FT_LOAD_RENDER.
|
||||
*
|
||||
|
@ -2980,7 +3070,7 @@ FT_BEGIN_HEADER
|
|||
*
|
||||
* Advance widths are rounded to integer values; however, using the
|
||||
* `lsb_delta' and `rsb_delta' fields of @FT_GlyphSlotRec, it is
|
||||
* possible to get fractional advance widths for sub-pixel positioning
|
||||
* possible to get fractional advance widths for subpixel positioning
|
||||
* (which is recommended to use).
|
||||
*
|
||||
* If configuration option AF_CONFIG_OPTION_TT_SIZE_METRICS is active,
|
||||
|
@ -3119,13 +3209,13 @@ FT_BEGIN_HEADER
|
|||
/* opacity). */
|
||||
/* */
|
||||
/* FT_RENDER_MODE_LCD :: */
|
||||
/* This mode corresponds to horizontal RGB and BGR sub-pixel */
|
||||
/* This mode corresponds to horizontal RGB and BGR subpixel */
|
||||
/* displays like LCD screens. It produces 8-bit bitmaps that are */
|
||||
/* 3~times the width of the original glyph outline in pixels, and */
|
||||
/* which use the @FT_PIXEL_MODE_LCD mode. */
|
||||
/* */
|
||||
/* FT_RENDER_MODE_LCD_V :: */
|
||||
/* This mode corresponds to vertical RGB and BGR sub-pixel displays */
|
||||
/* This mode corresponds to vertical RGB and BGR subpixel displays */
|
||||
/* (like PDA screens, rotated LCD displays, etc.). It produces */
|
||||
/* 8-bit bitmaps that are 3~times the height of the original */
|
||||
/* glyph outline in pixels and use the @FT_PIXEL_MODE_LCD_V mode. */
|
||||
|
@ -3471,7 +3561,14 @@ FT_BEGIN_HEADER
|
|||
/* retrieve it. FreeType follows Adobe TechNote #5902, `Generating */
|
||||
/* PostScript Names for Fonts Using OpenType Font Variations'. */
|
||||
/* */
|
||||
/* http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/font/pdfs/5902.AdobePSNameGeneration.html */
|
||||
/* https://download.macromedia.com/pub/developer/opentype/tech-notes/5902.AdobePSNameGeneration.html */
|
||||
/* */
|
||||
/* [Since 2.9] Special PostScript names for named instances are only */
|
||||
/* returned if the named instance is set with @FT_Set_Named_Instance */
|
||||
/* (and the font has corresponding entries in its `fvar' table). If */
|
||||
/* @FT_IS_VARIATION returns true, the algorithmically derived */
|
||||
/* PostScript name is provided, not looking up special entries for */
|
||||
/* named instances. */
|
||||
/* */
|
||||
FT_EXPORT( const char* )
|
||||
FT_Get_Postscript_Name( FT_Face face );
|
||||
|
@ -3702,17 +3799,17 @@ FT_BEGIN_HEADER
|
|||
* Note that only a subset of the available properties can be
|
||||
* controlled.
|
||||
*
|
||||
* * Stem darkening (@FT_PARAM_TAG_STEM_DARKENING, corresponding to the
|
||||
* property `no-stem-darkening' provided by the `autofit' and `cff'
|
||||
* modules; see @no-stem-darkening[autofit] and
|
||||
* @no-stem-darkening[cff]).
|
||||
* * @FT_PARAM_TAG_STEM_DARKENING (stem darkening, corresponding to the
|
||||
* property `no-stem-darkening' provided by the `autofit', `cff',
|
||||
* `type1', and `t1cid' modules; see @no-stem-darkening).
|
||||
*
|
||||
* * LCD filter weights (@FT_PARAM_TAG_LCD_FILTER_WEIGHTS, corresponding
|
||||
* * @FT_PARAM_TAG_LCD_FILTER_WEIGHTS (LCD filter weights, corresponding
|
||||
* to function @FT_Library_SetLcdFilterWeights).
|
||||
*
|
||||
* * Seed value for the CFF `random' operator
|
||||
* (@FT_PARAM_TAG_RANDOM_SEED, corresponding to the `random-seed'
|
||||
* property provided by the `cff' module; see @random-seed).
|
||||
* * @FT_PARAM_TAG_RANDOM_SEED (seed value for the CFF, Type~1, and CID
|
||||
* `random' operator, corresponding to the `random-seed' property
|
||||
* provided by the `cff', `type1', and `t1cid' modules; see
|
||||
* @random-seed).
|
||||
*
|
||||
* Pass NULL as `data' in @FT_Parameter for a given tag to reset the
|
||||
* option and use the library or module default again.
|
||||
|
@ -3775,6 +3872,9 @@ FT_BEGIN_HEADER
|
|||
* FT_Face_Properties( face, 1, &property );
|
||||
* }
|
||||
*
|
||||
* @since:
|
||||
* 2.8
|
||||
*
|
||||
*/
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Face_Properties( FT_Face face,
|
||||
|
@ -3899,7 +3999,7 @@ FT_BEGIN_HEADER
|
|||
/* and subsetting restrictions associated with a font. */
|
||||
/* */
|
||||
/* See */
|
||||
/* http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf */
|
||||
/* https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf */
|
||||
/* for more details. */
|
||||
/* */
|
||||
/* <Values> */
|
||||
|
@ -3999,9 +4099,9 @@ FT_BEGIN_HEADER
|
|||
/* Sequences' (IVS), collected in the `Ideographic Variation */
|
||||
/* Database' (IVD). */
|
||||
/* */
|
||||
/* http://unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt */
|
||||
/* http://unicode.org/reports/tr37/ */
|
||||
/* http://unicode.org/ivd/ */
|
||||
/* https://unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt */
|
||||
/* https://unicode.org/reports/tr37/ */
|
||||
/* https://unicode.org/ivd/ */
|
||||
/* */
|
||||
/* To date (January 2017), the character with the most ideographic */
|
||||
/* variations is U+9089, having 32 such IVS. */
|
||||
|
@ -4456,7 +4556,7 @@ FT_BEGIN_HEADER
|
|||
*
|
||||
*/
|
||||
#define FREETYPE_MAJOR 2
|
||||
#define FREETYPE_MINOR 8
|
||||
#define FREETYPE_MINOR 9
|
||||
#define FREETYPE_PATCH 1
|
||||
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Quick computation of advance widths (specification only). */
|
||||
/* */
|
||||
/* Copyright 2008-2017 by */
|
||||
/* Copyright 2008-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType exact bbox computation (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -61,7 +61,7 @@ FT_BEGIN_HEADER
|
|||
/* Compute the exact bounding box of an outline. This is slower */
|
||||
/* than computing the control box. However, it uses an advanced */
|
||||
/* algorithm that returns _very_ quickly when the two boxes */
|
||||
/* coincide. Otherwise, the outline Bézier arcs are traversed to */
|
||||
/* coincide. Otherwise, the outline Bezier arcs are traversed to */
|
||||
/* extract their extrema. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType API for accessing BDF-specific strings (specification). */
|
||||
/* */
|
||||
/* Copyright 2002-2017 by */
|
||||
/* Copyright 2002-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType utility functions for bitmaps (specification). */
|
||||
/* */
|
||||
/* Copyright 2004-2017 by */
|
||||
/* Copyright 2004-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -97,7 +97,7 @@ FT_BEGIN_HEADER
|
|||
FT_EXPORT( FT_Error )
|
||||
FT_Bitmap_Copy( FT_Library library,
|
||||
const FT_Bitmap *source,
|
||||
FT_Bitmap *target);
|
||||
FT_Bitmap *target );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Bzip2-compressed stream support. */
|
||||
/* */
|
||||
/* Copyright 2010-2017 by */
|
||||
/* Copyright 2010-2018 by */
|
||||
/* Joel Klinghed. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType Cache subsystem (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -540,13 +540,6 @@ FT_BEGIN_HEADER
|
|||
FTC_FaceID face_id );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Section> */
|
||||
/* cache_subsystem */
|
||||
/* */
|
||||
/*************************************************************************/
|
||||
|
||||
/*************************************************************************
|
||||
*
|
||||
* @type:
|
||||
|
@ -623,14 +616,6 @@ FT_BEGIN_HEADER
|
|||
FT_UInt32 char_code );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Section> */
|
||||
/* cache_subsystem */
|
||||
/* */
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
|
|
@ -76,8 +76,11 @@
|
|||
/* <Sections> */
|
||||
/* auto_hinter */
|
||||
/* cff_driver */
|
||||
/* t1_cid_driver */
|
||||
/* tt_driver */
|
||||
/* pcf_driver */
|
||||
/* properties */
|
||||
/* parameter_tags */
|
||||
/* */
|
||||
/***************************************************************************/
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType API for accessing CID font information (specification). */
|
||||
/* */
|
||||
/* Copyright 2007-2017 by */
|
||||
/* Copyright 2007-2018 by */
|
||||
/* Dereg Clegg and Michael Toftdal. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -87,7 +87,7 @@ FT_BEGIN_HEADER
|
|||
FT_Get_CID_Registry_Ordering_Supplement( FT_Face face,
|
||||
const char* *registry,
|
||||
const char* *ordering,
|
||||
FT_Int *supplement);
|
||||
FT_Int *supplement );
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType error codes (specification). */
|
||||
/* */
|
||||
/* Copyright 2002-2017 by */
|
||||
/* Copyright 2002-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType error code handling (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Support functions for font formats. */
|
||||
/* */
|
||||
/* Copyright 2002-2017 by */
|
||||
/* Copyright 2002-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Access of TrueType's `gasp' table (specification). */
|
||||
/* */
|
||||
/* Copyright 2007-2017 by */
|
||||
/* Copyright 2007-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -29,6 +29,9 @@
|
|||
#endif
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* @section:
|
||||
|
@ -131,6 +134,8 @@
|
|||
/* */
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
#endif /* FTGASP_H_ */
|
||||
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType convenience functions to handle glyphs (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -347,10 +347,10 @@ FT_BEGIN_HEADER
|
|||
/* */
|
||||
/* <Description> */
|
||||
/* Return a glyph's `control box'. The control box encloses all the */
|
||||
/* outline's points, including Bézier control points. Though it */
|
||||
/* outline's points, including Bezier control points. Though it */
|
||||
/* coincides with the exact bounding box for most glyphs, it can be */
|
||||
/* slightly larger in some situations (like when rotating an outline */
|
||||
/* that contains Bézier outside arcs). */
|
||||
/* that contains Bezier outside arcs). */
|
||||
/* */
|
||||
/* Computing the control box is very fast, while getting the bounding */
|
||||
/* box can take much more time as it needs to walk over all segments */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType API for validating TrueTypeGX/AAT tables (specification). */
|
||||
/* */
|
||||
/* Copyright 2004-2017 by */
|
||||
/* Copyright 2004-2018 by */
|
||||
/* Masatake YAMATO, Redhat K.K, */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
|
@ -101,15 +101,15 @@ FT_BEGIN_HEADER
|
|||
* The number of tables checked in this module. Use it as a parameter
|
||||
* for the `table-length' argument of function @FT_TrueTypeGX_Validate.
|
||||
*/
|
||||
#define FT_VALIDATE_GX_LENGTH (FT_VALIDATE_GX_LAST_INDEX + 1)
|
||||
#define FT_VALIDATE_GX_LENGTH ( FT_VALIDATE_GX_LAST_INDEX + 1 )
|
||||
|
||||
/* */
|
||||
|
||||
/* Up to 0x1000 is used by otvalid.
|
||||
Ox2xxx is reserved for feature OT extension. */
|
||||
#define FT_VALIDATE_GX_START 0x4000
|
||||
#define FT_VALIDATE_GX_BITFIELD( tag ) \
|
||||
( FT_VALIDATE_GX_START << FT_VALIDATE_##tag##_INDEX )
|
||||
#define FT_VALIDATE_GX_START 0x4000
|
||||
#define FT_VALIDATE_GX_BITFIELD( tag ) \
|
||||
( FT_VALIDATE_GX_START << FT_VALIDATE_##tag##_INDEX )
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Gzip-compressed stream support. */
|
||||
/* */
|
||||
/* Copyright 2002-2017 by */
|
||||
/* Copyright 2002-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -129,6 +129,9 @@ FT_BEGIN_HEADER
|
|||
* @note:
|
||||
* This function may return `FT_Err_Unimplemented_Feature' if your build
|
||||
* of FreeType was not compiled with zlib support.
|
||||
*
|
||||
* @since:
|
||||
* 2.5.1
|
||||
*/
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Gzip_Uncompress( FT_Memory memory,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
/* FreeType glyph image formats and default raster interface */
|
||||
/* (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -169,13 +169,13 @@ FT_BEGIN_HEADER
|
|||
/* @FT_RENDER_MODE_LCD_V. */
|
||||
/* */
|
||||
/* FT_PIXEL_MODE_BGRA :: */
|
||||
/* An image with four 8-bit channels per pixel, representing a */
|
||||
/* color image (such as emoticons) with alpha channel. For each */
|
||||
/* pixel, the format is BGRA, which means, the blue channel comes */
|
||||
/* first in memory. The color channels are pre-multiplied and in */
|
||||
/* the sRGB colorspace. For example, full red at half-translucent */
|
||||
/* opacity will be represented as `00,00,80,80', not `00,00,FF,80'. */
|
||||
/* See also @FT_LOAD_COLOR. */
|
||||
/* [Since 2.5] An image with four 8-bit channels per pixel, */
|
||||
/* representing a color image (such as emoticons) with alpha */
|
||||
/* channel. For each pixel, the format is BGRA, which means, the */
|
||||
/* blue channel comes first in memory. The color channels are */
|
||||
/* pre-multiplied and in the sRGB colorspace. For example, full */
|
||||
/* red at half-translucent opacity will be represented as */
|
||||
/* `00,00,80,80', not `00,00,FF,80'. See also @FT_LOAD_COLOR. */
|
||||
/* */
|
||||
typedef enum FT_Pixel_Mode_
|
||||
{
|
||||
|
@ -301,11 +301,11 @@ FT_BEGIN_HEADER
|
|||
/* each outline point's type. */
|
||||
/* */
|
||||
/* If bit~0 is unset, the point is `off' the curve, */
|
||||
/* i.e., a Bézier control point, while it is `on' if */
|
||||
/* i.e., a Bezier control point, while it is `on' if */
|
||||
/* set. */
|
||||
/* */
|
||||
/* Bit~1 is meaningful for `off' points only. If set, */
|
||||
/* it indicates a third-order Bézier arc control point; */
|
||||
/* it indicates a third-order Bezier arc control point; */
|
||||
/* and a second-order control point if unset. */
|
||||
/* */
|
||||
/* If bit~2 is set, bits 5-7 contain the drop-out mode */
|
||||
|
@ -532,7 +532,7 @@ FT_BEGIN_HEADER
|
|||
/* A function pointer type used to describe the signature of a `conic */
|
||||
/* to' function during outline walking or decomposition. */
|
||||
/* */
|
||||
/* A `conic to' is emitted to indicate a second-order Bézier arc in */
|
||||
/* A `conic to' is emitted to indicate a second-order Bezier arc in */
|
||||
/* the outline. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
|
@ -564,12 +564,12 @@ FT_BEGIN_HEADER
|
|||
/* A function pointer type used to describe the signature of a `cubic */
|
||||
/* to' function during outline walking or decomposition. */
|
||||
/* */
|
||||
/* A `cubic to' is emitted to indicate a third-order Bézier arc. */
|
||||
/* A `cubic to' is emitted to indicate a third-order Bezier arc. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
/* control1 :: A pointer to the first Bézier control point. */
|
||||
/* control1 :: A pointer to the first Bezier control point. */
|
||||
/* */
|
||||
/* control2 :: A pointer to the second Bézier control point. */
|
||||
/* control2 :: A pointer to the second Bezier control point. */
|
||||
/* */
|
||||
/* to :: A pointer to the target end point. */
|
||||
/* */
|
||||
|
@ -595,16 +595,16 @@ FT_BEGIN_HEADER
|
|||
/* */
|
||||
/* <Description> */
|
||||
/* A structure to hold various function pointers used during outline */
|
||||
/* decomposition in order to emit segments, conic, and cubic Béziers. */
|
||||
/* decomposition in order to emit segments, conic, and cubic Beziers. */
|
||||
/* */
|
||||
/* <Fields> */
|
||||
/* move_to :: The `move to' emitter. */
|
||||
/* */
|
||||
/* line_to :: The segment emitter. */
|
||||
/* */
|
||||
/* conic_to :: The second-order Bézier arc emitter. */
|
||||
/* conic_to :: The second-order Bezier arc emitter. */
|
||||
/* */
|
||||
/* cubic_to :: The third-order Bézier arc emitter. */
|
||||
/* cubic_to :: The third-order Bezier arc emitter. */
|
||||
/* */
|
||||
/* shift :: The shift that is applied to coordinates before they */
|
||||
/* are sent to the emitter. */
|
||||
|
@ -701,7 +701,7 @@ FT_BEGIN_HEADER
|
|||
/* */
|
||||
/* FT_GLYPH_FORMAT_OUTLINE :: */
|
||||
/* The glyph image is a vectorial outline made of line segments */
|
||||
/* and Bézier arcs; it can be described as an @FT_Outline; you */
|
||||
/* and Bezier arcs; it can be described as an @FT_Outline; you */
|
||||
/* generally want to access the `outline' field of the */
|
||||
/* @FT_GlyphSlotRec structure to read it. */
|
||||
/* */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType incremental loading (specification). */
|
||||
/* */
|
||||
/* Copyright 2002-2017 by */
|
||||
/* Copyright 2002-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -21,6 +21,7 @@
|
|||
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
#include FT_PARAMETER_TAGS_H
|
||||
|
||||
#ifdef FREETYPE_H
|
||||
#error "freetype.h of FreeType 1 has been loaded!"
|
||||
|
@ -331,18 +332,6 @@ FT_BEGIN_HEADER
|
|||
typedef FT_Incremental_InterfaceRec* FT_Incremental_Interface;
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* @constant:
|
||||
* FT_PARAM_TAG_INCREMENTAL
|
||||
*
|
||||
* @description:
|
||||
* A constant used as the tag of @FT_Parameter structures to indicate
|
||||
* an incremental loading object to be used by FreeType.
|
||||
*
|
||||
*/
|
||||
#define FT_PARAM_TAG_INCREMENTAL FT_MAKE_TAG( 'i', 'n', 'c', 'r' )
|
||||
|
||||
/* */
|
||||
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
/* FreeType API for color filtering of subpixel bitmap glyphs */
|
||||
/* (specification). */
|
||||
/* */
|
||||
/* Copyright 2006-2017 by */
|
||||
/* Copyright 2006-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -22,6 +22,7 @@
|
|||
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
#include FT_PARAMETER_TAGS_H
|
||||
|
||||
#ifdef FREETYPE_H
|
||||
#error "freetype.h of FreeType 1 has been loaded!"
|
||||
|
@ -280,23 +281,6 @@ FT_BEGIN_HEADER
|
|||
unsigned char *weights );
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @constant:
|
||||
* FT_PARAM_TAG_LCD_FILTER_WEIGHTS
|
||||
*
|
||||
* @description:
|
||||
* An @FT_Parameter tag to be used with @FT_Face_Properties. The
|
||||
* corresponding argument specifies the five LCD filter weights for a
|
||||
* given face (if using @FT_LOAD_TARGET_LCD, for example), overriding
|
||||
* the global default values or the values set up with
|
||||
* @FT_Library_SetLcdFilterWeights.
|
||||
*
|
||||
*/
|
||||
#define FT_PARAM_TAG_LCD_FILTER_WEIGHTS \
|
||||
FT_MAKE_TAG( 'l', 'c', 'd', 'f' )
|
||||
|
||||
|
||||
/*
|
||||
* @type:
|
||||
* FT_LcdFiveTapFilter
|
||||
|
@ -305,6 +289,9 @@ FT_BEGIN_HEADER
|
|||
* A typedef for passing the five LCD filter weights to
|
||||
* @FT_Face_Properties within an @FT_Parameter structure.
|
||||
*
|
||||
* @since:
|
||||
* 2.8
|
||||
*
|
||||
*/
|
||||
#define FT_LCD_FILTER_FIVE_TAPS 5
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Generic list support for FreeType (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* LZW-compressed stream support. */
|
||||
/* */
|
||||
/* Copyright 2004-2017 by */
|
||||
/* Copyright 2004-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Additional Mac-specific API. */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType Multiple Master font interface (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -286,7 +286,7 @@ FT_BEGIN_HEADER
|
|||
/* <Output> */
|
||||
/* amaster :: The variation descriptor. */
|
||||
/* Allocates a data structure, which the user must */
|
||||
/* deallocate with `free' after use. */
|
||||
/* deallocate with a call to @FT_Done_MM_Var after use. */
|
||||
/* */
|
||||
/* <Return> */
|
||||
/* FreeType error code. 0~means success. */
|
||||
|
@ -296,6 +296,26 @@ FT_BEGIN_HEADER
|
|||
FT_MM_Var* *amaster );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Function> */
|
||||
/* FT_Done_MM_Var */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* Free the memory allocated by @FT_Get_MM_Var. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
/* library :: A handle of the face's parent library object that was */
|
||||
/* used in the call to @FT_Get_MM_Var to create `amaster'. */
|
||||
/* */
|
||||
/* <Return> */
|
||||
/* FreeType error code. 0~means success. */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Done_MM_Var( FT_Library library,
|
||||
FT_MM_Var *amaster );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Function> */
|
||||
|
@ -323,9 +343,13 @@ FT_BEGIN_HEADER
|
|||
/* FreeType error code. 0~means success. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* To reset all axes to the default values, call the function with */
|
||||
/* `num_coords' set to zero and `coords' set to NULL (new feature in */
|
||||
/* FreeType version 2.8.1). */
|
||||
/* [Since 2.8.1] To reset all axes to the default values, call the */
|
||||
/* function with `num_coords' set to zero and `coords' set to NULL. */
|
||||
/* */
|
||||
/* [Since 2.9] If `num_coords' is larger than zero, this function */
|
||||
/* sets the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags' */
|
||||
/* field (i.e., @FT_IS_VARIATION will return true). If `num_coords' */
|
||||
/* is zero, this bit flag gets unset. */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Set_MM_Design_Coordinates( FT_Face face,
|
||||
|
@ -358,9 +382,15 @@ FT_BEGIN_HEADER
|
|||
/* FreeType error code. 0~means success. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* To reset all axes to the default values, call the function with */
|
||||
/* `num_coords' set to zero and `coords' set to NULL (new feature in */
|
||||
/* FreeType version 2.8.1). */
|
||||
/* [Since 2.8.1] To reset all axes to the default values, call the */
|
||||
/* function with `num_coords' set to zero and `coords' set to NULL. */
|
||||
/* [Since 2.9] `Default values' means the currently selected named */
|
||||
/* instance (or the base font if no named instance is selected). */
|
||||
/* */
|
||||
/* [Since 2.9] If `num_coords' is larger than zero, this function */
|
||||
/* sets the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags' */
|
||||
/* field (i.e., @FT_IS_VARIATION will return true). If `num_coords' */
|
||||
/* is zero, this bit flag gets unset. */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Set_Var_Design_Coordinates( FT_Face face,
|
||||
|
@ -392,6 +422,9 @@ FT_BEGIN_HEADER
|
|||
/* <Return> */
|
||||
/* FreeType error code. 0~means success. */
|
||||
/* */
|
||||
/* <Since> */
|
||||
/* 2.7.1 */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Get_Var_Design_Coordinates( FT_Face face,
|
||||
FT_UInt num_coords,
|
||||
|
@ -427,9 +460,15 @@ FT_BEGIN_HEADER
|
|||
/* FreeType error code. 0~means success. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* To reset all axes to the default values, call the function with */
|
||||
/* `num_coords' set to zero and `coords' set to NULL (new feature in */
|
||||
/* FreeType version 2.8.1). */
|
||||
/* [Since 2.8.1] To reset all axes to the default values, call the */
|
||||
/* function with `num_coords' set to zero and `coords' set to NULL. */
|
||||
/* [Since 2.9] `Default values' means the currently selected named */
|
||||
/* instance (or the base font if no named instance is selected). */
|
||||
/* */
|
||||
/* [Since 2.9] If `num_coords' is larger than zero, this function */
|
||||
/* sets the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags' */
|
||||
/* field (i.e., @FT_IS_VARIATION will return true). If `num_coords' */
|
||||
/* is zero, this bit flag gets unset. */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Set_MM_Blend_Coordinates( FT_Face face,
|
||||
|
@ -462,6 +501,9 @@ FT_BEGIN_HEADER
|
|||
/* <Return> */
|
||||
/* FreeType error code. 0~means success. */
|
||||
/* */
|
||||
/* <Since> */
|
||||
/* 2.7.1 */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Get_MM_Blend_Coordinates( FT_Face face,
|
||||
FT_UInt num_coords,
|
||||
|
@ -490,6 +532,9 @@ FT_BEGIN_HEADER
|
|||
/* <Description> */
|
||||
/* This is another name of @FT_Get_MM_Blend_Coordinates. */
|
||||
/* */
|
||||
/* <Since> */
|
||||
/* 2.7.1 */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Get_Var_Blend_Coordinates( FT_Face face,
|
||||
FT_UInt num_coords,
|
||||
|
@ -509,6 +554,9 @@ FT_BEGIN_HEADER
|
|||
/* FT_VAR_AXIS_FLAG_HIDDEN :: */
|
||||
/* The variation axis should not be exposed to user interfaces. */
|
||||
/* */
|
||||
/* <Since> */
|
||||
/* 2.8.1 */
|
||||
/* */
|
||||
#define FT_VAR_AXIS_FLAG_HIDDEN 1
|
||||
|
||||
|
||||
|
@ -534,11 +582,51 @@ FT_BEGIN_HEADER
|
|||
/* <Return> */
|
||||
/* FreeType error code. 0~means success. */
|
||||
/* */
|
||||
/* <Since> */
|
||||
/* 2.8.1 */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Get_Var_Axis_Flags( FT_MM_Var* master,
|
||||
FT_UInt axis_index,
|
||||
FT_UInt* flags );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Function> */
|
||||
/* FT_Set_Named_Instance */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* Set or change the current named instance. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
/* face :: A handle to the source face. */
|
||||
/* */
|
||||
/* instance_index :: The index of the requested instance, starting */
|
||||
/* with value 1. If set to value 0, FreeType */
|
||||
/* switches to font access without a named */
|
||||
/* instance. */
|
||||
/* */
|
||||
/* <Return> */
|
||||
/* FreeType error code. 0~means success. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* The function uses the value of `instance_index' to set bits 16-30 */
|
||||
/* of the face's `face_index' field. It also resets any variation */
|
||||
/* applied to the font, and the @FT_FACE_FLAG_VARIATION bit of the */
|
||||
/* face's `face_flags' field gets reset to zero (i.e., */
|
||||
/* @FT_IS_VARIATION will return false). */
|
||||
/* */
|
||||
/* For Adobe MM fonts (which don't have named instances) this */
|
||||
/* function simply resets the current face to the default instance. */
|
||||
/* */
|
||||
/* <Since> */
|
||||
/* 2.9 */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Set_Named_Instance( FT_Face face,
|
||||
FT_UInt instance_index );
|
||||
|
||||
/* */
|
||||
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType modules public interface (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -323,16 +323,15 @@ FT_BEGIN_HEADER
|
|||
* The module name.
|
||||
*
|
||||
* property_name ::
|
||||
* The property name. Properties are described in the `Synopsis'
|
||||
* subsection of the module's documentation.
|
||||
* The property name. Properties are described in section
|
||||
* @properties.
|
||||
*
|
||||
* 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.
|
||||
* dependent on the property; see section @properties.
|
||||
*
|
||||
* @return:
|
||||
* FreeType error code. 0~means success.
|
||||
|
@ -390,15 +389,14 @@ FT_BEGIN_HEADER
|
|||
* The module name.
|
||||
*
|
||||
* property_name ::
|
||||
* The property name. Properties are described in the `Synopsis'
|
||||
* subsection of the module's documentation.
|
||||
* The property name. Properties are described in section
|
||||
* @properties.
|
||||
*
|
||||
* @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.
|
||||
* dependent on the property; see section @properties.
|
||||
*
|
||||
* @return:
|
||||
* FreeType error code. 0~means success.
|
||||
|
@ -446,8 +444,8 @@ FT_BEGIN_HEADER
|
|||
/* <Description> */
|
||||
/* If compilation option FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES is */
|
||||
/* set, this function reads the `FREETYPE_PROPERTIES' environment */
|
||||
/* variable to control driver properties. See sections @auto_hinter, */
|
||||
/* @cff_driver, @pcf_driver, and @tt_driver for more. */
|
||||
/* variable to control driver properties. See section @properties */
|
||||
/* for more. */
|
||||
/* */
|
||||
/* If the compilation option is not set, this function does nothing. */
|
||||
/* */
|
||||
|
@ -475,6 +473,9 @@ FT_BEGIN_HEADER
|
|||
/* <InOut> */
|
||||
/* library :: A handle to a new library object. */
|
||||
/* */
|
||||
/* <Since> */
|
||||
/* 2.8 */
|
||||
/* */
|
||||
FT_EXPORT( void )
|
||||
FT_Set_Default_Properties( FT_Library library );
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType module error offsets (specification). */
|
||||
/* */
|
||||
/* Copyright 2001-2017 by */
|
||||
/* Copyright 2001-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType API for validating OpenType tables (specification). */
|
||||
/* */
|
||||
/* Copyright 2004-2017 by */
|
||||
/* Copyright 2004-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
/* Support for the FT_Outline type used to store glyph shapes of */
|
||||
/* most scalable font formats (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -89,7 +89,7 @@ FT_BEGIN_HEADER
|
|||
/* */
|
||||
/* <Description> */
|
||||
/* Walk over an outline's structure to decompose it into individual */
|
||||
/* segments and Bézier arcs. This function also emits `move to' */
|
||||
/* segments and Bezier arcs. This function also emits `move to' */
|
||||
/* operations to indicate the start of new contours in the outline. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
|
@ -190,9 +190,6 @@ FT_BEGIN_HEADER
|
|||
/* If the outline's `owner' field is not set, only the outline */
|
||||
/* descriptor will be released. */
|
||||
/* */
|
||||
/* The reason why this function takes an `library' parameter is */
|
||||
/* simply to use ft_mem_free(). */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Outline_Done( FT_Library library,
|
||||
FT_Outline* outline );
|
||||
|
@ -232,10 +229,10 @@ FT_BEGIN_HEADER
|
|||
/* */
|
||||
/* <Description> */
|
||||
/* Return an outline's `control box'. The control box encloses all */
|
||||
/* the outline's points, including Bézier control points. Though it */
|
||||
/* the outline's points, including Bezier control points. Though it */
|
||||
/* coincides with the exact bounding box for most glyphs, it can be */
|
||||
/* slightly larger in some situations (like when rotating an outline */
|
||||
/* that contains Bézier outside arcs). */
|
||||
/* that contains Bezier outside arcs). */
|
||||
/* */
|
||||
/* Computing the control box is very fast, while getting the bounding */
|
||||
/* box can take much more time as it needs to walk over all segments */
|
||||
|
|
|
@ -0,0 +1,205 @@
|
|||
/***************************************************************************/
|
||||
/* */
|
||||
/* ftparams.h */
|
||||
/* */
|
||||
/* FreeType API for possible FT_Parameter tags (specification only). */
|
||||
/* */
|
||||
/* Copyright 2017-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
/* modified, and distributed under the terms of the FreeType project */
|
||||
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
||||
/* this file you indicate that you have read the license and */
|
||||
/* understand and accept it fully. */
|
||||
/* */
|
||||
/***************************************************************************/
|
||||
|
||||
|
||||
#ifndef FTPARAMS_H_
|
||||
#define FTPARAMS_H_
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
|
||||
#ifdef FREETYPE_H
|
||||
#error "freetype.h of FreeType 1 has been loaded!"
|
||||
#error "Please fix the directory search order for header files"
|
||||
#error "so that freetype.h of FreeType 2 is found first."
|
||||
#endif
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @section:
|
||||
* parameter_tags
|
||||
*
|
||||
* @title:
|
||||
* Parameter Tags
|
||||
*
|
||||
* @abstract:
|
||||
* Macros for driver property and font loading parameter tags.
|
||||
*
|
||||
* @description:
|
||||
* This section contains macros for the @FT_Parameter structure that are
|
||||
* used with various functions to activate some special functionality or
|
||||
* different behaviour of various components of FreeType.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* @constant:
|
||||
* FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY
|
||||
*
|
||||
* @description:
|
||||
* A tag for @FT_Parameter to make @FT_Open_Face ignore typographic
|
||||
* family names in the `name' table (introduced in OpenType version
|
||||
* 1.4). Use this for backward compatibility with legacy systems that
|
||||
* have a four-faces-per-family restriction.
|
||||
*
|
||||
* @since:
|
||||
* 2.8
|
||||
*
|
||||
*/
|
||||
#define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY \
|
||||
FT_MAKE_TAG( 'i', 'g', 'p', 'f' )
|
||||
|
||||
|
||||
/* this constant is deprecated */
|
||||
#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY \
|
||||
FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* @constant:
|
||||
* FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY
|
||||
*
|
||||
* @description:
|
||||
* A tag for @FT_Parameter to make @FT_Open_Face ignore typographic
|
||||
* subfamily names in the `name' table (introduced in OpenType version
|
||||
* 1.4). Use this for backward compatibility with legacy systems that
|
||||
* have a four-faces-per-family restriction.
|
||||
*
|
||||
* @since:
|
||||
* 2.8
|
||||
*
|
||||
*/
|
||||
#define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY \
|
||||
FT_MAKE_TAG( 'i', 'g', 'p', 's' )
|
||||
|
||||
|
||||
/* this constant is deprecated */
|
||||
#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY \
|
||||
FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* @constant:
|
||||
* FT_PARAM_TAG_INCREMENTAL
|
||||
*
|
||||
* @description:
|
||||
* An @FT_Parameter tag to be used with @FT_Open_Face to indicate
|
||||
* incremental glyph loading.
|
||||
*
|
||||
*/
|
||||
#define FT_PARAM_TAG_INCREMENTAL \
|
||||
FT_MAKE_TAG( 'i', 'n', 'c', 'r' )
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @constant:
|
||||
* FT_PARAM_TAG_LCD_FILTER_WEIGHTS
|
||||
*
|
||||
* @description:
|
||||
* An @FT_Parameter tag to be used with @FT_Face_Properties. The
|
||||
* corresponding argument specifies the five LCD filter weights for a
|
||||
* given face (if using @FT_LOAD_TARGET_LCD, for example), overriding
|
||||
* the global default values or the values set up with
|
||||
* @FT_Library_SetLcdFilterWeights.
|
||||
*
|
||||
* @since:
|
||||
* 2.8
|
||||
*
|
||||
*/
|
||||
#define FT_PARAM_TAG_LCD_FILTER_WEIGHTS \
|
||||
FT_MAKE_TAG( 'l', 'c', 'd', 'f' )
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @constant:
|
||||
* FT_PARAM_TAG_RANDOM_SEED
|
||||
*
|
||||
* @description:
|
||||
* An @FT_Parameter tag to be used with @FT_Face_Properties. The
|
||||
* corresponding 32bit signed integer argument overrides the font
|
||||
* driver's random seed value with a face-specific one; see
|
||||
* @random-seed.
|
||||
*
|
||||
* @since:
|
||||
* 2.8
|
||||
*
|
||||
*/
|
||||
#define FT_PARAM_TAG_RANDOM_SEED \
|
||||
FT_MAKE_TAG( 's', 'e', 'e', 'd' )
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @constant:
|
||||
* FT_PARAM_TAG_STEM_DARKENING
|
||||
*
|
||||
* @description:
|
||||
* An @FT_Parameter tag to be used with @FT_Face_Properties. The
|
||||
* corresponding Boolean argument specifies whether to apply stem
|
||||
* darkening, overriding the global default values or the values set up
|
||||
* with @FT_Property_Set (see @no-stem-darkening).
|
||||
*
|
||||
* This is a passive setting that only takes effect if the font driver
|
||||
* or autohinter honors it, which the CFF, Type~1, and CID drivers
|
||||
* always do, but the autohinter only in `light' hinting mode (as of
|
||||
* version 2.9).
|
||||
*
|
||||
* @since:
|
||||
* 2.8
|
||||
*
|
||||
*/
|
||||
#define FT_PARAM_TAG_STEM_DARKENING \
|
||||
FT_MAKE_TAG( 'd', 'a', 'r', 'k' )
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* @constant:
|
||||
* FT_PARAM_TAG_UNPATENTED_HINTING
|
||||
*
|
||||
* @description:
|
||||
* Deprecated, no effect.
|
||||
*
|
||||
* Previously: A constant used as the tag of an @FT_Parameter structure to
|
||||
* indicate that unpatented methods only should be used by the TrueType
|
||||
* bytecode interpreter for a typeface opened by @FT_Open_Face.
|
||||
*
|
||||
*/
|
||||
#define FT_PARAM_TAG_UNPATENTED_HINTING \
|
||||
FT_MAKE_TAG( 'u', 'n', 'p', 'a' )
|
||||
|
||||
|
||||
/* */
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
|
||||
#endif /* FTPARAMS_H_ */
|
||||
|
||||
|
||||
/* END */
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType API for accessing PFR-specific data (specification only). */
|
||||
/* */
|
||||
/* Copyright 2002-2017 by */
|
||||
/* Copyright 2002-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -71,7 +71,7 @@ FT_BEGIN_HEADER
|
|||
*
|
||||
* ametrics_x_scale ::
|
||||
* A 16.16 fixed-point number used to scale distance expressed
|
||||
* in metrics units to device sub-pixels. This is equivalent to
|
||||
* in metrics units to device subpixels. This is equivalent to
|
||||
* `face->size->x_scale', but for metrics only. Optional (parameter
|
||||
* can be NULL).
|
||||
*
|
||||
|
@ -123,7 +123,7 @@ FT_BEGIN_HEADER
|
|||
* mode, which always returns distances converted to outline units.
|
||||
*
|
||||
* You can use the value of the `x_scale' and `y_scale' parameters
|
||||
* returned by @FT_Get_PFR_Metrics to scale these to device sub-pixels.
|
||||
* returned by @FT_Get_PFR_Metrics to scale these to device subpixels.
|
||||
*/
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Get_PFR_Kerning( FT_Face face,
|
||||
|
@ -154,7 +154,7 @@ FT_BEGIN_HEADER
|
|||
*
|
||||
* @note:
|
||||
* You can use the `x_scale' or `y_scale' results of @FT_Get_PFR_Metrics
|
||||
* to convert the advance to device sub-pixels (i.e., 1/64th of pixels).
|
||||
* to convert the advance to device subpixels (i.e., 1/64th of pixels).
|
||||
*/
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Get_PFR_Advance( FT_Face face,
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType renderer modules public interface (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -88,7 +88,7 @@ FT_BEGIN_HEADER
|
|||
typedef FT_Error
|
||||
(*FT_Renderer_RenderFunc)( FT_Renderer renderer,
|
||||
FT_GlyphSlot slot,
|
||||
FT_UInt mode,
|
||||
FT_Render_Mode mode,
|
||||
const FT_Vector* origin );
|
||||
|
||||
typedef FT_Error
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType size objects management (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
/* */
|
||||
/* This is _not_ used to retrieve glyph names! */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -25,6 +25,7 @@
|
|||
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
#include FT_PARAMETER_TAGS_H
|
||||
|
||||
#ifdef FREETYPE_H
|
||||
#error "freetype.h of FreeType 1 has been loaded!"
|
||||
|
@ -189,6 +190,9 @@ FT_BEGIN_HEADER
|
|||
/* Please refer to the TrueType or OpenType specification for more */
|
||||
/* details. */
|
||||
/* */
|
||||
/* <Since> */
|
||||
/* 2.8 */
|
||||
/* */
|
||||
typedef struct FT_SfntLangTag_
|
||||
{
|
||||
FT_Byte* string; /* this string is *not* null-terminated! */
|
||||
|
@ -229,53 +233,15 @@ FT_BEGIN_HEADER
|
|||
/* invalid format~1 language ID values, FT_Err_Invalid_Argument is */
|
||||
/* returned. */
|
||||
/* */
|
||||
/* <Since> */
|
||||
/* 2.8 */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Get_Sfnt_LangTag( FT_Face face,
|
||||
FT_UInt langID,
|
||||
FT_SfntLangTag *alangTag );
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* @constant:
|
||||
* FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY
|
||||
*
|
||||
* @description:
|
||||
* A tag for @FT_Parameter to make @FT_Open_Face ignore typographic
|
||||
* family names in the `name' table (introduced in OpenType version
|
||||
* 1.4). Use this for backward compatibility with legacy systems that
|
||||
* have a four-faces-per-family restriction.
|
||||
*
|
||||
*/
|
||||
#define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY \
|
||||
FT_MAKE_TAG( 'i', 'g', 'p', 'f' )
|
||||
|
||||
|
||||
/* this constant is deprecated */
|
||||
#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY \
|
||||
FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* @constant:
|
||||
* FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY
|
||||
*
|
||||
* @description:
|
||||
* A tag for @FT_Parameter to make @FT_Open_Face ignore typographic
|
||||
* subfamily names in the `name' table (introduced in OpenType version
|
||||
* 1.4). Use this for backward compatibility with legacy systems that
|
||||
* have a four-faces-per-family restriction.
|
||||
*
|
||||
*/
|
||||
#define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY \
|
||||
FT_MAKE_TAG( 'i', 'g', 'p', 's' )
|
||||
|
||||
|
||||
/* this constant is deprecated */
|
||||
#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY \
|
||||
FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY
|
||||
|
||||
/* */
|
||||
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType path stroker (specification). */
|
||||
/* */
|
||||
/* Copyright 2002-2017 by */
|
||||
/* Copyright 2002-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -466,7 +466,7 @@ FT_BEGIN_HEADER
|
|||
* FT_Stroker_ConicTo
|
||||
*
|
||||
* @description:
|
||||
* `Draw' a single quadratic Bézier in the stroker's current sub-path,
|
||||
* `Draw' a single quadratic Bezier in the stroker's current sub-path,
|
||||
* from the last position.
|
||||
*
|
||||
* @input:
|
||||
|
@ -474,7 +474,7 @@ FT_BEGIN_HEADER
|
|||
* The target stroker handle.
|
||||
*
|
||||
* control ::
|
||||
* A pointer to a Bézier control point.
|
||||
* A pointer to a Bezier control point.
|
||||
*
|
||||
* to ::
|
||||
* A pointer to the destination point.
|
||||
|
@ -498,7 +498,7 @@ FT_BEGIN_HEADER
|
|||
* FT_Stroker_CubicTo
|
||||
*
|
||||
* @description:
|
||||
* `Draw' a single cubic Bézier in the stroker's current sub-path,
|
||||
* `Draw' a single cubic Bezier in the stroker's current sub-path,
|
||||
* from the last position.
|
||||
*
|
||||
* @input:
|
||||
|
@ -506,10 +506,10 @@ FT_BEGIN_HEADER
|
|||
* The target stroker handle.
|
||||
*
|
||||
* control1 ::
|
||||
* A pointer to the first Bézier control point.
|
||||
* A pointer to the first Bezier control point.
|
||||
*
|
||||
* control2 ::
|
||||
* A pointer to second Bézier control point.
|
||||
* A pointer to second Bezier control point.
|
||||
*
|
||||
* to ::
|
||||
* A pointer to the destination point.
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
/* FreeType synthesizing code for emboldening and slanting */
|
||||
/* (specification). */
|
||||
/* */
|
||||
/* Copyright 2000-2017 by */
|
||||
/* Copyright 2000-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType low-level system interface definition (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType trigonometric functions (specification). */
|
||||
/* */
|
||||
/* Copyright 2001-2017 by */
|
||||
/* Copyright 2001-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType simple types definitions (specification only). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -425,7 +425,7 @@ FT_BEGIN_HEADER
|
|||
/* The address of the FreeType object that is under finalization. */
|
||||
/* Its client data is accessed through its `generic' field. */
|
||||
/* */
|
||||
typedef void (*FT_Generic_Finalizer)(void* object);
|
||||
typedef void (*FT_Generic_Finalizer)( void* object );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType API for accessing Windows fnt-specific data. */
|
||||
/* */
|
||||
/* Copyright 2003-2017 by */
|
||||
/* Copyright 2003-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -78,7 +78,7 @@ FT_BEGIN_HEADER
|
|||
* Mac Roman encoding.
|
||||
*
|
||||
* FT_WinFNT_ID_OEM ::
|
||||
* From Michael Pöttgen <michael@poettgen.de>:
|
||||
* From Michael Poettgen <michael@poettgen.de>:
|
||||
*
|
||||
* The `Windows Font Mapping' article says that FT_WinFNT_ID_OEM
|
||||
* is used for the charset of vector fonts, like `modern.fon',
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* High-level `autohint' module-specific interface (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -0,0 +1,108 @@
|
|||
/***************************************************************************/
|
||||
/* */
|
||||
/* cffotypes.h */
|
||||
/* */
|
||||
/* Basic OpenType/CFF object type definitions (specification). */
|
||||
/* */
|
||||
/* Copyright 2017-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
/* modified, and distributed under the terms of the FreeType project */
|
||||
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
||||
/* this file you indicate that you have read the license and */
|
||||
/* understand and accept it fully. */
|
||||
/* */
|
||||
/***************************************************************************/
|
||||
|
||||
|
||||
#ifndef CFFOTYPES_H_
|
||||
#define CFFOTYPES_H_
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_INTERNAL_OBJECTS_H
|
||||
#include FT_INTERNAL_CFF_TYPES_H
|
||||
#include FT_INTERNAL_TRUETYPE_TYPES_H
|
||||
#include FT_SERVICE_POSTSCRIPT_CMAPS_H
|
||||
#include FT_INTERNAL_POSTSCRIPT_HINTS_H
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
|
||||
typedef TT_Face CFF_Face;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Type> */
|
||||
/* CFF_Size */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A handle to an OpenType size object. */
|
||||
/* */
|
||||
typedef struct CFF_SizeRec_
|
||||
{
|
||||
FT_SizeRec root;
|
||||
FT_ULong strike_index; /* 0xFFFFFFFF to indicate invalid */
|
||||
|
||||
} CFF_SizeRec, *CFF_Size;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Type> */
|
||||
/* CFF_GlyphSlot */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A handle to an OpenType glyph slot object. */
|
||||
/* */
|
||||
typedef struct CFF_GlyphSlotRec_
|
||||
{
|
||||
FT_GlyphSlotRec root;
|
||||
|
||||
FT_Bool hint;
|
||||
FT_Bool scaled;
|
||||
|
||||
FT_Fixed x_scale;
|
||||
FT_Fixed y_scale;
|
||||
|
||||
} CFF_GlyphSlotRec, *CFF_GlyphSlot;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Type> */
|
||||
/* CFF_Internal */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* The interface to the `internal' field of `FT_Size'. */
|
||||
/* */
|
||||
typedef struct CFF_InternalRec_
|
||||
{
|
||||
PSH_Globals topfont;
|
||||
PSH_Globals subfonts[CFF_MAX_CID_FONTS];
|
||||
|
||||
} CFF_InternalRec, *CFF_Internal;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Subglyph transformation record. */
|
||||
/* */
|
||||
typedef struct CFF_Transform_
|
||||
{
|
||||
FT_Fixed xx, xy; /* transformation matrix coefficients */
|
||||
FT_Fixed yx, yy;
|
||||
FT_F26Dot6 ox, oy; /* offsets */
|
||||
|
||||
} CFF_Transform;
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
|
||||
#endif /* CFFOTYPES_H_ */
|
||||
|
||||
|
||||
/* END */
|
|
@ -0,0 +1,412 @@
|
|||
/***************************************************************************/
|
||||
/* */
|
||||
/* cfftypes.h */
|
||||
/* */
|
||||
/* Basic OpenType/CFF type definitions and interface (specification */
|
||||
/* only). */
|
||||
/* */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
/* modified, and distributed under the terms of the FreeType project */
|
||||
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
||||
/* this file you indicate that you have read the license and */
|
||||
/* understand and accept it fully. */
|
||||
/* */
|
||||
/***************************************************************************/
|
||||
|
||||
|
||||
#ifndef CFFTYPES_H_
|
||||
#define CFFTYPES_H_
|
||||
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
#include FT_TYPE1_TABLES_H
|
||||
#include FT_INTERNAL_SERVICE_H
|
||||
#include FT_SERVICE_POSTSCRIPT_CMAPS_H
|
||||
#include FT_INTERNAL_POSTSCRIPT_HINTS_H
|
||||
#include FT_INTERNAL_TYPE1_TYPES_H
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Struct> */
|
||||
/* CFF_IndexRec */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A structure used to model a CFF Index table. */
|
||||
/* */
|
||||
/* <Fields> */
|
||||
/* stream :: The source input stream. */
|
||||
/* */
|
||||
/* start :: The position of the first index byte in the */
|
||||
/* input stream. */
|
||||
/* */
|
||||
/* count :: The number of elements in the index. */
|
||||
/* */
|
||||
/* off_size :: The size in bytes of object offsets in index. */
|
||||
/* */
|
||||
/* data_offset :: The position of first data byte in the index's */
|
||||
/* bytes. */
|
||||
/* */
|
||||
/* data_size :: The size of the data table in this index. */
|
||||
/* */
|
||||
/* offsets :: A table of element offsets in the index. Must be */
|
||||
/* loaded explicitly. */
|
||||
/* */
|
||||
/* bytes :: If the index is loaded in memory, its bytes. */
|
||||
/* */
|
||||
typedef struct CFF_IndexRec_
|
||||
{
|
||||
FT_Stream stream;
|
||||
FT_ULong start;
|
||||
FT_UInt hdr_size;
|
||||
FT_UInt count;
|
||||
FT_Byte off_size;
|
||||
FT_ULong data_offset;
|
||||
FT_ULong data_size;
|
||||
|
||||
FT_ULong* offsets;
|
||||
FT_Byte* bytes;
|
||||
|
||||
} CFF_IndexRec, *CFF_Index;
|
||||
|
||||
|
||||
typedef struct CFF_EncodingRec_
|
||||
{
|
||||
FT_UInt format;
|
||||
FT_ULong offset;
|
||||
|
||||
FT_UInt count;
|
||||
FT_UShort sids [256]; /* avoid dynamic allocations */
|
||||
FT_UShort codes[256];
|
||||
|
||||
} CFF_EncodingRec, *CFF_Encoding;
|
||||
|
||||
|
||||
typedef struct CFF_CharsetRec_
|
||||
{
|
||||
|
||||
FT_UInt format;
|
||||
FT_ULong offset;
|
||||
|
||||
FT_UShort* sids;
|
||||
FT_UShort* cids; /* the inverse mapping of `sids'; only needed */
|
||||
/* for CID-keyed fonts */
|
||||
FT_UInt max_cid;
|
||||
FT_UInt num_glyphs;
|
||||
|
||||
} CFF_CharsetRec, *CFF_Charset;
|
||||
|
||||
|
||||
/* cf. similar fields in file `ttgxvar.h' from the `truetype' module */
|
||||
|
||||
typedef struct CFF_VarData_
|
||||
{
|
||||
#if 0
|
||||
FT_UInt itemCount; /* not used; always zero */
|
||||
FT_UInt shortDeltaCount; /* not used; always zero */
|
||||
#endif
|
||||
|
||||
FT_UInt regionIdxCount; /* number of region indexes */
|
||||
FT_UInt* regionIndices; /* array of `regionIdxCount' indices; */
|
||||
/* these index `varRegionList' */
|
||||
} CFF_VarData;
|
||||
|
||||
|
||||
/* contribution of one axis to a region */
|
||||
typedef struct CFF_AxisCoords_
|
||||
{
|
||||
FT_Fixed startCoord;
|
||||
FT_Fixed peakCoord; /* zero peak means no effect (factor = 1) */
|
||||
FT_Fixed endCoord;
|
||||
|
||||
} CFF_AxisCoords;
|
||||
|
||||
|
||||
typedef struct CFF_VarRegion_
|
||||
{
|
||||
CFF_AxisCoords* axisList; /* array of axisCount records */
|
||||
|
||||
} CFF_VarRegion;
|
||||
|
||||
|
||||
typedef struct CFF_VStoreRec_
|
||||
{
|
||||
FT_UInt dataCount;
|
||||
CFF_VarData* varData; /* array of dataCount records */
|
||||
/* vsindex indexes this array */
|
||||
FT_UShort axisCount;
|
||||
FT_UInt regionCount; /* total number of regions defined */
|
||||
CFF_VarRegion* varRegionList;
|
||||
|
||||
} CFF_VStoreRec, *CFF_VStore;
|
||||
|
||||
|
||||
/* forward reference */
|
||||
typedef struct CFF_FontRec_* CFF_Font;
|
||||
|
||||
|
||||
/* This object manages one cached blend vector. */
|
||||
/* */
|
||||
/* There is a BlendRec for Private DICT parsing in each subfont */
|
||||
/* and a BlendRec for charstrings in CF2_Font instance data. */
|
||||
/* A cached BV may be used across DICTs or Charstrings if inputs */
|
||||
/* have not changed. */
|
||||
/* */
|
||||
/* `usedBV' is reset at the start of each parse or charstring. */
|
||||
/* vsindex cannot be changed after a BV is used. */
|
||||
/* */
|
||||
/* Note: NDV is long (32/64 bit), while BV is 16.16 (FT_Int32). */
|
||||
typedef struct CFF_BlendRec_
|
||||
{
|
||||
FT_Bool builtBV; /* blendV has been built */
|
||||
FT_Bool usedBV; /* blendV has been used */
|
||||
CFF_Font font; /* top level font struct */
|
||||
FT_UInt lastVsindex; /* last vsindex used */
|
||||
FT_UInt lenNDV; /* normDV length (aka numAxes) */
|
||||
FT_Fixed* lastNDV; /* last NDV used */
|
||||
FT_UInt lenBV; /* BlendV length (aka numMasters) */
|
||||
FT_Int32* BV; /* current blendV (per DICT/glyph) */
|
||||
|
||||
} CFF_BlendRec, *CFF_Blend;
|
||||
|
||||
|
||||
typedef struct CFF_FontRecDictRec_
|
||||
{
|
||||
FT_UInt version;
|
||||
FT_UInt notice;
|
||||
FT_UInt copyright;
|
||||
FT_UInt full_name;
|
||||
FT_UInt family_name;
|
||||
FT_UInt weight;
|
||||
FT_Bool is_fixed_pitch;
|
||||
FT_Fixed italic_angle;
|
||||
FT_Fixed underline_position;
|
||||
FT_Fixed underline_thickness;
|
||||
FT_Int paint_type;
|
||||
FT_Int charstring_type;
|
||||
FT_Matrix font_matrix;
|
||||
FT_Bool has_font_matrix;
|
||||
FT_ULong units_per_em; /* temporarily used as scaling value also */
|
||||
FT_Vector font_offset;
|
||||
FT_ULong unique_id;
|
||||
FT_BBox font_bbox;
|
||||
FT_Pos stroke_width;
|
||||
FT_ULong charset_offset;
|
||||
FT_ULong encoding_offset;
|
||||
FT_ULong charstrings_offset;
|
||||
FT_ULong private_offset;
|
||||
FT_ULong private_size;
|
||||
FT_Long synthetic_base;
|
||||
FT_UInt embedded_postscript;
|
||||
|
||||
/* these should only be used for the top-level font dictionary */
|
||||
FT_UInt cid_registry;
|
||||
FT_UInt cid_ordering;
|
||||
FT_Long cid_supplement;
|
||||
|
||||
FT_Long cid_font_version;
|
||||
FT_Long cid_font_revision;
|
||||
FT_Long cid_font_type;
|
||||
FT_ULong cid_count;
|
||||
FT_ULong cid_uid_base;
|
||||
FT_ULong cid_fd_array_offset;
|
||||
FT_ULong cid_fd_select_offset;
|
||||
FT_UInt cid_font_name;
|
||||
|
||||
/* the next fields come from the data of the deprecated */
|
||||
/* `MultipleMaster' operator; they are needed to parse the (also */
|
||||
/* deprecated) `blend' operator in Type 2 charstrings */
|
||||
FT_UShort num_designs;
|
||||
FT_UShort num_axes;
|
||||
|
||||
/* fields for CFF2 */
|
||||
FT_ULong vstore_offset;
|
||||
FT_UInt maxstack;
|
||||
|
||||
} CFF_FontRecDictRec, *CFF_FontRecDict;
|
||||
|
||||
|
||||
/* forward reference */
|
||||
typedef struct CFF_SubFontRec_* CFF_SubFont;
|
||||
|
||||
|
||||
typedef struct CFF_PrivateRec_
|
||||
{
|
||||
FT_Byte num_blue_values;
|
||||
FT_Byte num_other_blues;
|
||||
FT_Byte num_family_blues;
|
||||
FT_Byte num_family_other_blues;
|
||||
|
||||
FT_Pos blue_values[14];
|
||||
FT_Pos other_blues[10];
|
||||
FT_Pos family_blues[14];
|
||||
FT_Pos family_other_blues[10];
|
||||
|
||||
FT_Fixed blue_scale;
|
||||
FT_Pos blue_shift;
|
||||
FT_Pos blue_fuzz;
|
||||
FT_Pos standard_width;
|
||||
FT_Pos standard_height;
|
||||
|
||||
FT_Byte num_snap_widths;
|
||||
FT_Byte num_snap_heights;
|
||||
FT_Pos snap_widths[13];
|
||||
FT_Pos snap_heights[13];
|
||||
FT_Bool force_bold;
|
||||
FT_Fixed force_bold_threshold;
|
||||
FT_Int lenIV;
|
||||
FT_Int language_group;
|
||||
FT_Fixed expansion_factor;
|
||||
FT_Long initial_random_seed;
|
||||
FT_ULong local_subrs_offset;
|
||||
FT_Pos default_width;
|
||||
FT_Pos nominal_width;
|
||||
|
||||
/* fields for CFF2 */
|
||||
FT_UInt vsindex;
|
||||
CFF_SubFont subfont;
|
||||
|
||||
} CFF_PrivateRec, *CFF_Private;
|
||||
|
||||
|
||||
typedef struct CFF_FDSelectRec_
|
||||
{
|
||||
FT_Byte format;
|
||||
FT_UInt range_count;
|
||||
|
||||
/* that's the table, taken from the file `as is' */
|
||||
FT_Byte* data;
|
||||
FT_UInt data_size;
|
||||
|
||||
/* small cache for format 3 only */
|
||||
FT_UInt cache_first;
|
||||
FT_UInt cache_count;
|
||||
FT_Byte cache_fd;
|
||||
|
||||
} CFF_FDSelectRec, *CFF_FDSelect;
|
||||
|
||||
|
||||
/* A SubFont packs a font dict and a private dict together. They are */
|
||||
/* needed to support CID-keyed CFF fonts. */
|
||||
typedef struct CFF_SubFontRec_
|
||||
{
|
||||
CFF_FontRecDictRec font_dict;
|
||||
CFF_PrivateRec private_dict;
|
||||
|
||||
/* fields for CFF2 */
|
||||
CFF_BlendRec blend; /* current blend vector */
|
||||
FT_UInt lenNDV; /* current length NDV or zero */
|
||||
FT_Fixed* NDV; /* ptr to current NDV or NULL */
|
||||
|
||||
/* `blend_stack' is a writable buffer to hold blend results. */
|
||||
/* This buffer is to the side of the normal cff parser stack; */
|
||||
/* `cff_parse_blend' and `cff_blend_doBlend' push blend results here. */
|
||||
/* The normal stack then points to these values instead of the DICT */
|
||||
/* because all other operators in Private DICT clear the stack. */
|
||||
/* `blend_stack' could be cleared at each operator other than blend. */
|
||||
/* Blended values are stored as 5-byte fixed point values. */
|
||||
|
||||
FT_Byte* blend_stack; /* base of stack allocation */
|
||||
FT_Byte* blend_top; /* first empty slot */
|
||||
FT_UInt blend_used; /* number of bytes in use */
|
||||
FT_UInt blend_alloc; /* number of bytes allocated */
|
||||
|
||||
CFF_IndexRec local_subrs_index;
|
||||
FT_Byte** local_subrs; /* array of pointers */
|
||||
/* into Local Subrs INDEX data */
|
||||
|
||||
FT_UInt32 random;
|
||||
|
||||
} CFF_SubFontRec;
|
||||
|
||||
|
||||
#define CFF_MAX_CID_FONTS 256
|
||||
|
||||
|
||||
typedef struct CFF_FontRec_
|
||||
{
|
||||
FT_Library library;
|
||||
FT_Stream stream;
|
||||
FT_Memory memory; /* TODO: take this from stream->memory? */
|
||||
FT_ULong base_offset; /* offset to start of CFF */
|
||||
FT_UInt num_faces;
|
||||
FT_UInt num_glyphs;
|
||||
|
||||
FT_Byte version_major;
|
||||
FT_Byte version_minor;
|
||||
FT_Byte header_size;
|
||||
|
||||
FT_UInt top_dict_length; /* cff2 only */
|
||||
|
||||
FT_Bool cff2;
|
||||
|
||||
CFF_IndexRec name_index;
|
||||
CFF_IndexRec top_dict_index;
|
||||
CFF_IndexRec global_subrs_index;
|
||||
|
||||
CFF_EncodingRec encoding;
|
||||
CFF_CharsetRec charset;
|
||||
|
||||
CFF_IndexRec charstrings_index;
|
||||
CFF_IndexRec font_dict_index;
|
||||
CFF_IndexRec private_index;
|
||||
CFF_IndexRec local_subrs_index;
|
||||
|
||||
FT_String* font_name;
|
||||
|
||||
/* array of pointers into Global Subrs INDEX data */
|
||||
FT_Byte** global_subrs;
|
||||
|
||||
/* array of pointers into String INDEX data stored at string_pool */
|
||||
FT_UInt num_strings;
|
||||
FT_Byte** strings;
|
||||
FT_Byte* string_pool;
|
||||
FT_ULong string_pool_size;
|
||||
|
||||
CFF_SubFontRec top_font;
|
||||
FT_UInt num_subfonts;
|
||||
CFF_SubFont subfonts[CFF_MAX_CID_FONTS];
|
||||
|
||||
CFF_FDSelectRec fd_select;
|
||||
|
||||
/* interface to PostScript hinter */
|
||||
PSHinter_Service pshinter;
|
||||
|
||||
/* interface to Postscript Names service */
|
||||
FT_Service_PsCMaps psnames;
|
||||
|
||||
/* interface to CFFLoad service */
|
||||
const void* cffload;
|
||||
|
||||
/* since version 2.3.0 */
|
||||
PS_FontInfoRec* font_info; /* font info dictionary */
|
||||
|
||||
/* since version 2.3.6 */
|
||||
FT_String* registry;
|
||||
FT_String* ordering;
|
||||
|
||||
/* since version 2.4.12 */
|
||||
FT_Generic cf2_instance;
|
||||
|
||||
/* since version 2.7.1 */
|
||||
CFF_VStoreRec vstore; /* parsed vstore structure */
|
||||
|
||||
/* since version 2.9 */
|
||||
PS_FontExtraRec* font_extra;
|
||||
|
||||
} CFF_FontRec;
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
#endif /* CFFTYPES_H_ */
|
||||
|
||||
|
||||
/* END */
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Arithmetic computations (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Debugging and logging component (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -0,0 +1,400 @@
|
|||
/***************************************************************************/
|
||||
/* */
|
||||
/* ftdrv.h */
|
||||
/* */
|
||||
/* FreeType internal font driver interface (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
/* modified, and distributed under the terms of the FreeType project */
|
||||
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
||||
/* this file you indicate that you have read the license and */
|
||||
/* understand and accept it fully. */
|
||||
/* */
|
||||
/***************************************************************************/
|
||||
|
||||
|
||||
#ifndef FTDRV_H_
|
||||
#define FTDRV_H_
|
||||
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_MODULE_H
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Face_InitFunc)( FT_Stream stream,
|
||||
FT_Face face,
|
||||
FT_Int typeface_index,
|
||||
FT_Int num_params,
|
||||
FT_Parameter* parameters );
|
||||
|
||||
typedef void
|
||||
(*FT_Face_DoneFunc)( FT_Face face );
|
||||
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Size_InitFunc)( FT_Size size );
|
||||
|
||||
typedef void
|
||||
(*FT_Size_DoneFunc)( FT_Size size );
|
||||
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Slot_InitFunc)( FT_GlyphSlot slot );
|
||||
|
||||
typedef void
|
||||
(*FT_Slot_DoneFunc)( FT_GlyphSlot slot );
|
||||
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Size_RequestFunc)( FT_Size size,
|
||||
FT_Size_Request req );
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Size_SelectFunc)( FT_Size size,
|
||||
FT_ULong size_index );
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Slot_LoadFunc)( FT_GlyphSlot slot,
|
||||
FT_Size size,
|
||||
FT_UInt glyph_index,
|
||||
FT_Int32 load_flags );
|
||||
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Face_GetKerningFunc)( FT_Face face,
|
||||
FT_UInt left_glyph,
|
||||
FT_UInt right_glyph,
|
||||
FT_Vector* kerning );
|
||||
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Face_AttachFunc)( FT_Face face,
|
||||
FT_Stream stream );
|
||||
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Face_GetAdvancesFunc)( FT_Face face,
|
||||
FT_UInt first,
|
||||
FT_UInt count,
|
||||
FT_Int32 flags,
|
||||
FT_Fixed* advances );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Struct> */
|
||||
/* FT_Driver_ClassRec */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* The font driver class. This structure mostly contains pointers to */
|
||||
/* driver methods. */
|
||||
/* */
|
||||
/* <Fields> */
|
||||
/* root :: The parent module. */
|
||||
/* */
|
||||
/* face_object_size :: The size of a face object in bytes. */
|
||||
/* */
|
||||
/* size_object_size :: The size of a size object in bytes. */
|
||||
/* */
|
||||
/* slot_object_size :: The size of a glyph object in bytes. */
|
||||
/* */
|
||||
/* init_face :: The format-specific face constructor. */
|
||||
/* */
|
||||
/* done_face :: The format-specific face destructor. */
|
||||
/* */
|
||||
/* init_size :: The format-specific size constructor. */
|
||||
/* */
|
||||
/* done_size :: The format-specific size destructor. */
|
||||
/* */
|
||||
/* init_slot :: The format-specific slot constructor. */
|
||||
/* */
|
||||
/* done_slot :: The format-specific slot destructor. */
|
||||
/* */
|
||||
/* */
|
||||
/* load_glyph :: A function handle to load a glyph to a slot. */
|
||||
/* This field is mandatory! */
|
||||
/* */
|
||||
/* get_kerning :: A function handle to return the unscaled */
|
||||
/* kerning for a given pair of glyphs. Can be */
|
||||
/* set to 0 if the format doesn't support */
|
||||
/* kerning. */
|
||||
/* */
|
||||
/* attach_file :: This function handle is used to read */
|
||||
/* additional data for a face from another */
|
||||
/* file/stream. For example, this can be used to */
|
||||
/* add data from AFM or PFM files on a Type 1 */
|
||||
/* face, or a CIDMap on a CID-keyed face. */
|
||||
/* */
|
||||
/* get_advances :: A function handle used to return advance */
|
||||
/* widths of `count' glyphs (in font units), */
|
||||
/* starting at `first'. The `vertical' flag must */
|
||||
/* be set to get vertical advance heights. The */
|
||||
/* `advances' buffer is caller-allocated. */
|
||||
/* The idea of this function is to be able to */
|
||||
/* perform device-independent text layout without */
|
||||
/* loading a single glyph image. */
|
||||
/* */
|
||||
/* request_size :: A handle to a function used to request the new */
|
||||
/* character size. Can be set to 0 if the */
|
||||
/* scaling done in the base layer suffices. */
|
||||
/* */
|
||||
/* select_size :: A handle to a function used to select a new */
|
||||
/* fixed size. It is used only if */
|
||||
/* @FT_FACE_FLAG_FIXED_SIZES is set. Can be set */
|
||||
/* to 0 if the scaling done in the base layer */
|
||||
/* suffices. */
|
||||
/* <Note> */
|
||||
/* Most function pointers, with the exception of `load_glyph', can be */
|
||||
/* set to 0 to indicate a default behaviour. */
|
||||
/* */
|
||||
typedef struct FT_Driver_ClassRec_
|
||||
{
|
||||
FT_Module_Class root;
|
||||
|
||||
FT_Long face_object_size;
|
||||
FT_Long size_object_size;
|
||||
FT_Long slot_object_size;
|
||||
|
||||
FT_Face_InitFunc init_face;
|
||||
FT_Face_DoneFunc done_face;
|
||||
|
||||
FT_Size_InitFunc init_size;
|
||||
FT_Size_DoneFunc done_size;
|
||||
|
||||
FT_Slot_InitFunc init_slot;
|
||||
FT_Slot_DoneFunc done_slot;
|
||||
|
||||
FT_Slot_LoadFunc load_glyph;
|
||||
|
||||
FT_Face_GetKerningFunc get_kerning;
|
||||
FT_Face_AttachFunc attach_file;
|
||||
FT_Face_GetAdvancesFunc get_advances;
|
||||
|
||||
/* since version 2.2 */
|
||||
FT_Size_RequestFunc request_size;
|
||||
FT_Size_SelectFunc select_size;
|
||||
|
||||
} FT_Driver_ClassRec, *FT_Driver_Class;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Macro> */
|
||||
/* FT_DECLARE_DRIVER */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* Used to create a forward declaration of an FT_Driver_ClassRec */
|
||||
/* struct instance. */
|
||||
/* */
|
||||
/* <Macro> */
|
||||
/* FT_DEFINE_DRIVER */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* Used to initialize an instance of FT_Driver_ClassRec struct. */
|
||||
/* */
|
||||
/* When FT_CONFIG_OPTION_PIC is defined a `create' function has to be */
|
||||
/* called with a pointer where the allocated structure is returned. */
|
||||
/* And when it is no longer needed a `destroy' function needs to be */
|
||||
/* called to release that allocation. */
|
||||
/* */
|
||||
/* `ftinit.c' (ft_create_default_module_classes) already contains a */
|
||||
/* mechanism to call these functions for the default modules */
|
||||
/* described in `ftmodule.h'. */
|
||||
/* */
|
||||
/* Notice that the created `create' and `destroy' functions call */
|
||||
/* `pic_init' and `pic_free' to allow you to manually allocate and */
|
||||
/* initialize any additional global data, like a module specific */
|
||||
/* interface, and put them in the global pic container defined in */
|
||||
/* `ftpic.h'. If you don't need them just implement the functions as */
|
||||
/* empty to resolve the link error. Also the `pic_init' and */
|
||||
/* `pic_free' functions should be declared in `pic.h', to be referred */
|
||||
/* by driver definition calling `FT_DEFINE_DRIVER' in following. */
|
||||
/* */
|
||||
/* When FT_CONFIG_OPTION_PIC is not defined the struct will be */
|
||||
/* allocated in the global scope (or the scope where the macro is */
|
||||
/* used). */
|
||||
/* */
|
||||
#ifndef FT_CONFIG_OPTION_PIC
|
||||
|
||||
#define FT_DECLARE_DRIVER( class_ ) \
|
||||
FT_CALLBACK_TABLE \
|
||||
const FT_Driver_ClassRec class_;
|
||||
|
||||
#define FT_DEFINE_DRIVER( \
|
||||
class_, \
|
||||
flags_, \
|
||||
size_, \
|
||||
name_, \
|
||||
version_, \
|
||||
requires_, \
|
||||
interface_, \
|
||||
init_, \
|
||||
done_, \
|
||||
get_interface_, \
|
||||
face_object_size_, \
|
||||
size_object_size_, \
|
||||
slot_object_size_, \
|
||||
init_face_, \
|
||||
done_face_, \
|
||||
init_size_, \
|
||||
done_size_, \
|
||||
init_slot_, \
|
||||
done_slot_, \
|
||||
load_glyph_, \
|
||||
get_kerning_, \
|
||||
attach_file_, \
|
||||
get_advances_, \
|
||||
request_size_, \
|
||||
select_size_ ) \
|
||||
FT_CALLBACK_TABLE_DEF \
|
||||
const FT_Driver_ClassRec class_ = \
|
||||
{ \
|
||||
FT_DEFINE_ROOT_MODULE( flags_, \
|
||||
size_, \
|
||||
name_, \
|
||||
version_, \
|
||||
requires_, \
|
||||
interface_, \
|
||||
init_, \
|
||||
done_, \
|
||||
get_interface_ ) \
|
||||
\
|
||||
face_object_size_, \
|
||||
size_object_size_, \
|
||||
slot_object_size_, \
|
||||
\
|
||||
init_face_, \
|
||||
done_face_, \
|
||||
\
|
||||
init_size_, \
|
||||
done_size_, \
|
||||
\
|
||||
init_slot_, \
|
||||
done_slot_, \
|
||||
\
|
||||
load_glyph_, \
|
||||
\
|
||||
get_kerning_, \
|
||||
attach_file_, \
|
||||
get_advances_, \
|
||||
\
|
||||
request_size_, \
|
||||
select_size_ \
|
||||
};
|
||||
|
||||
#else /* FT_CONFIG_OPTION_PIC */
|
||||
|
||||
#define FT_DECLARE_DRIVER( class_ ) FT_DECLARE_MODULE( class_ )
|
||||
|
||||
#define FT_DEFINE_DRIVER( \
|
||||
class_, \
|
||||
flags_, \
|
||||
size_, \
|
||||
name_, \
|
||||
version_, \
|
||||
requires_, \
|
||||
interface_, \
|
||||
init_, \
|
||||
done_, \
|
||||
get_interface_, \
|
||||
face_object_size_, \
|
||||
size_object_size_, \
|
||||
slot_object_size_, \
|
||||
init_face_, \
|
||||
done_face_, \
|
||||
init_size_, \
|
||||
done_size_, \
|
||||
init_slot_, \
|
||||
done_slot_, \
|
||||
load_glyph_, \
|
||||
get_kerning_, \
|
||||
attach_file_, \
|
||||
get_advances_, \
|
||||
request_size_, \
|
||||
select_size_ ) \
|
||||
void \
|
||||
FT_Destroy_Class_ ## class_( FT_Library library, \
|
||||
FT_Module_Class* clazz ) \
|
||||
{ \
|
||||
FT_Memory memory = library->memory; \
|
||||
FT_Driver_Class dclazz = (FT_Driver_Class)clazz; \
|
||||
\
|
||||
\
|
||||
class_ ## _pic_free( library ); \
|
||||
if ( dclazz ) \
|
||||
FT_FREE( dclazz ); \
|
||||
} \
|
||||
\
|
||||
\
|
||||
FT_Error \
|
||||
FT_Create_Class_ ## class_( FT_Library library, \
|
||||
FT_Module_Class** output_class ) \
|
||||
{ \
|
||||
FT_Driver_Class clazz = NULL; \
|
||||
FT_Error error; \
|
||||
FT_Memory memory = library->memory; \
|
||||
\
|
||||
\
|
||||
if ( FT_ALLOC( clazz, sizeof ( *clazz ) ) ) \
|
||||
return error; \
|
||||
\
|
||||
error = class_ ## _pic_init( library ); \
|
||||
if ( error ) \
|
||||
{ \
|
||||
FT_FREE( clazz ); \
|
||||
return error; \
|
||||
} \
|
||||
\
|
||||
FT_DEFINE_ROOT_MODULE( flags_, \
|
||||
size_, \
|
||||
name_, \
|
||||
version_, \
|
||||
requires_, \
|
||||
interface_, \
|
||||
init_, \
|
||||
done_, \
|
||||
get_interface_ ) \
|
||||
\
|
||||
clazz->face_object_size = face_object_size_; \
|
||||
clazz->size_object_size = size_object_size_; \
|
||||
clazz->slot_object_size = slot_object_size_; \
|
||||
\
|
||||
clazz->init_face = init_face_; \
|
||||
clazz->done_face = done_face_; \
|
||||
\
|
||||
clazz->init_size = init_size_; \
|
||||
clazz->done_size = done_size_; \
|
||||
\
|
||||
clazz->init_slot = init_slot_; \
|
||||
clazz->done_slot = done_slot_; \
|
||||
\
|
||||
clazz->load_glyph = load_glyph_; \
|
||||
\
|
||||
clazz->get_kerning = get_kerning_; \
|
||||
clazz->attach_file = attach_file_; \
|
||||
clazz->get_advances = get_advances_; \
|
||||
\
|
||||
clazz->request_size = request_size_; \
|
||||
clazz->select_size = select_size_; \
|
||||
\
|
||||
*output_class = (FT_Module_Class*)clazz; \
|
||||
\
|
||||
return FT_Err_Ok; \
|
||||
}
|
||||
|
||||
|
||||
#endif /* FT_CONFIG_OPTION_PIC */
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
#endif /* FTDRV_H_ */
|
||||
|
||||
|
||||
/* END */
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType glyph loader (specification). */
|
||||
/* */
|
||||
/* Copyright 2002-2017 by */
|
||||
/* Copyright 2002-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType memory management macros (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -210,7 +210,7 @@ extern "C++"
|
|||
NULL, \
|
||||
&error ) )
|
||||
|
||||
#define FT_MEM_QREALLOC_MULT( ptr, oldcnt, newcnt, itmsz) \
|
||||
#define FT_MEM_QREALLOC_MULT( ptr, oldcnt, newcnt, itmsz ) \
|
||||
FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \
|
||||
(FT_Long)(itmsz), \
|
||||
(FT_Long)(oldcnt), \
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType private base classes (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -85,9 +85,9 @@ FT_BEGIN_HEADER
|
|||
: y + ( 3 * x >> 3 ) )
|
||||
|
||||
/* we use FT_TYPEOF to suppress signedness compilation warnings */
|
||||
#define FT_PAD_FLOOR( x, n ) ( (x) & ~FT_TYPEOF( x )( (n)-1 ) )
|
||||
#define FT_PAD_ROUND( x, n ) FT_PAD_FLOOR( (x) + (n)/2, n )
|
||||
#define FT_PAD_CEIL( x, n ) FT_PAD_FLOOR( (x) + (n)-1, n )
|
||||
#define FT_PAD_FLOOR( x, n ) ( (x) & ~FT_TYPEOF( x )( (n) - 1 ) )
|
||||
#define FT_PAD_ROUND( x, n ) FT_PAD_FLOOR( (x) + (n) / 2, n )
|
||||
#define FT_PAD_CEIL( x, n ) FT_PAD_FLOOR( (x) + (n) - 1, n )
|
||||
|
||||
#define FT_PIX_FLOOR( x ) ( (x) & ~FT_TYPEOF( x )63 )
|
||||
#define FT_PIX_ROUND( x ) FT_PIX_FLOOR( (x) + 32 )
|
||||
|
@ -155,8 +155,8 @@ FT_BEGIN_HEADER
|
|||
|
||||
} FT_CMapRec;
|
||||
|
||||
/* typecase any pointer to a charmap handle */
|
||||
#define FT_CMAP( x ) ((FT_CMap)( x ))
|
||||
/* typecast any pointer to a charmap handle */
|
||||
#define FT_CMAP( x ) ( (FT_CMap)( x ) )
|
||||
|
||||
/* obvious macros */
|
||||
#define FT_CMAP_PLATFORM_ID( x ) FT_CMAP( x )->charmap.platform_id
|
||||
|
@ -312,6 +312,27 @@ FT_BEGIN_HEADER
|
|||
FT_CMap_Done( FT_CMap cmap );
|
||||
|
||||
|
||||
/* adds LCD padding to Min and Max boundaries */
|
||||
FT_BASE( void )
|
||||
ft_lcd_padding( FT_Pos* Min,
|
||||
FT_Pos* Max,
|
||||
FT_GlyphSlot slot );
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING
|
||||
|
||||
typedef void (*FT_Bitmap_LcdFilterFunc)( FT_Bitmap* bitmap,
|
||||
FT_Render_Mode render_mode,
|
||||
FT_Byte* weights );
|
||||
|
||||
|
||||
/* This is the default LCD filter, an in-place, 5-tap FIR filter. */
|
||||
FT_BASE( void )
|
||||
ft_lcd_filter_fir( FT_Bitmap* bitmap,
|
||||
FT_Render_Mode mode,
|
||||
FT_LcdFiveTapFilter weights );
|
||||
|
||||
#endif /* FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Struct> */
|
||||
|
@ -369,9 +390,10 @@ FT_BEGIN_HEADER
|
|||
/* operator. Value~0 means to use the font's value. Value~-1 */
|
||||
/* means to use the CFF driver's default. */
|
||||
/* */
|
||||
/* lcd_weights :: */
|
||||
/* Overrides the library default with custom weights for the 5-tap */
|
||||
/* FIR filter. `{0, 0, 0, 0, 0}' means to use the library default. */
|
||||
/* lcd_weights :: */
|
||||
/* lcd_filter_func :: */
|
||||
/* If subpixel rendering is activated, the LCD filtering weights */
|
||||
/* and callback function. */
|
||||
/* */
|
||||
/* refcount :: */
|
||||
/* A counter initialized to~1 at the time an @FT_Face structure is */
|
||||
|
@ -393,8 +415,10 @@ FT_BEGIN_HEADER
|
|||
|
||||
FT_Char no_stem_darkening;
|
||||
FT_Int32 random_seed;
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING
|
||||
FT_LcdFiveTapFilter lcd_weights; /* preset or custom filter weights */
|
||||
FT_LcdFiveTapFilter lcd_weights; /* filter weights, if any */
|
||||
FT_Bitmap_LcdFilterFunc lcd_filter_func; /* filtering callback */
|
||||
#endif
|
||||
|
||||
FT_Int refcount;
|
||||
|
@ -516,7 +540,8 @@ FT_BEGIN_HEADER
|
|||
|
||||
|
||||
/* typecast an object to an FT_Module */
|
||||
#define FT_MODULE( x ) ((FT_Module)( x ))
|
||||
#define FT_MODULE( x ) ( (FT_Module)(x) )
|
||||
|
||||
#define FT_MODULE_CLASS( x ) FT_MODULE( x )->clazz
|
||||
#define FT_MODULE_LIBRARY( x ) FT_MODULE( x )->library
|
||||
#define FT_MODULE_MEMORY( x ) FT_MODULE( x )->memory
|
||||
|
@ -602,9 +627,9 @@ FT_BEGIN_HEADER
|
|||
|
||||
/* a few macros used to perform easy typecasts with minimal brain damage */
|
||||
|
||||
#define FT_FACE( x ) ((FT_Face)(x))
|
||||
#define FT_SIZE( x ) ((FT_Size)(x))
|
||||
#define FT_SLOT( x ) ((FT_GlyphSlot)(x))
|
||||
#define FT_FACE( x ) ( (FT_Face)(x) )
|
||||
#define FT_SIZE( x ) ( (FT_Size)(x) )
|
||||
#define FT_SLOT( x ) ( (FT_GlyphSlot)(x) )
|
||||
|
||||
#define FT_FACE_DRIVER( x ) FT_FACE( x )->driver
|
||||
#define FT_FACE_LIBRARY( x ) FT_FACE_DRIVER( x )->root.library
|
||||
|
@ -705,6 +730,12 @@ FT_BEGIN_HEADER
|
|||
ft_glyphslot_free_bitmap( FT_GlyphSlot slot );
|
||||
|
||||
|
||||
/* Preset bitmap metrics of an outline glyphslot prior to rendering. */
|
||||
FT_BASE( void )
|
||||
ft_glyphslot_preset_bitmap( FT_GlyphSlot slot,
|
||||
FT_Render_Mode mode,
|
||||
const FT_Vector* origin );
|
||||
|
||||
/* Allocate a new bitmap buffer in a glyph slot. */
|
||||
FT_BASE( FT_Error )
|
||||
ft_glyphslot_alloc_bitmap( FT_GlyphSlot slot,
|
||||
|
@ -731,10 +762,10 @@ FT_BEGIN_HEADER
|
|||
/*************************************************************************/
|
||||
|
||||
|
||||
#define FT_RENDERER( x ) ((FT_Renderer)( x ))
|
||||
#define FT_GLYPH( x ) ((FT_Glyph)( x ))
|
||||
#define FT_BITMAP_GLYPH( x ) ((FT_BitmapGlyph)( x ))
|
||||
#define FT_OUTLINE_GLYPH( x ) ((FT_OutlineGlyph)( x ))
|
||||
#define FT_RENDERER( x ) ( (FT_Renderer)(x) )
|
||||
#define FT_GLYPH( x ) ( (FT_Glyph)(x) )
|
||||
#define FT_BITMAP_GLYPH( x ) ( (FT_BitmapGlyph)(x) )
|
||||
#define FT_OUTLINE_GLYPH( x ) ( (FT_OutlineGlyph)(x) )
|
||||
|
||||
|
||||
typedef struct FT_RendererRec_
|
||||
|
@ -765,7 +796,7 @@ FT_BEGIN_HEADER
|
|||
|
||||
|
||||
/* typecast a module into a driver easily */
|
||||
#define FT_DRIVER( x ) ((FT_Driver)(x))
|
||||
#define FT_DRIVER( x ) ( (FT_Driver)(x) )
|
||||
|
||||
/* typecast a module as a driver, and get its driver class */
|
||||
#define FT_DRIVER_CLASS( x ) FT_DRIVER( x )->clazz
|
||||
|
@ -821,18 +852,6 @@ FT_BEGIN_HEADER
|
|||
#define FT_DEBUG_HOOK_TRUETYPE 0
|
||||
|
||||
|
||||
typedef void (*FT_Bitmap_LcdFilterFunc)( FT_Bitmap* bitmap,
|
||||
FT_Render_Mode render_mode,
|
||||
FT_Byte* weights );
|
||||
|
||||
|
||||
/* This is the default LCD filter, an in-place, 5-tap FIR filter. */
|
||||
FT_BASE( void )
|
||||
ft_lcd_filter_fir( FT_Bitmap* bitmap,
|
||||
FT_Render_Mode mode,
|
||||
FT_LcdFiveTapFilter weights );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Struct> */
|
||||
|
@ -878,9 +897,6 @@ FT_BEGIN_HEADER
|
|||
/* interpreter. Currently, only the TrueType */
|
||||
/* bytecode debugger uses this. */
|
||||
/* */
|
||||
/* lcd_filter :: If subpixel rendering is activated, the */
|
||||
/* selected LCD filter mode. */
|
||||
/* */
|
||||
/* lcd_weights :: If subpixel rendering is activated, the LCD */
|
||||
/* filter weights, if any. */
|
||||
/* */
|
||||
|
@ -915,7 +931,6 @@ FT_BEGIN_HEADER
|
|||
FT_DebugHook_Func debug_hooks[4];
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING
|
||||
FT_LcdFilter lcd_filter;
|
||||
FT_LcdFiveTapFilter lcd_weights; /* filter weights, if any */
|
||||
FT_Bitmap_LcdFilterFunc lcd_filter_func; /* filtering callback */
|
||||
#endif
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType position independent code services (declaration). */
|
||||
/* */
|
||||
/* Copyright 2009-2017 by */
|
||||
/* Copyright 2009-2018 by */
|
||||
/* Oran Agra and Mickey Gabel. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
/***************************************************************************/
|
||||
/* */
|
||||
/* ftpsprop.h */
|
||||
/* */
|
||||
/* Get and set properties of PostScript drivers (specification). */
|
||||
/* */
|
||||
/* Copyright 2017-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
/* modified, and distributed under the terms of the FreeType project */
|
||||
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
||||
/* this file you indicate that you have read the license and */
|
||||
/* understand and accept it fully. */
|
||||
/* */
|
||||
/***************************************************************************/
|
||||
|
||||
|
||||
#ifndef FTPSPROP_H_
|
||||
#define FTPSPROP_H_
|
||||
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
|
||||
FT_BASE_CALLBACK( FT_Error )
|
||||
ps_property_set( FT_Module module, /* PS_Driver */
|
||||
const char* property_name,
|
||||
const void* value,
|
||||
FT_Bool value_is_string );
|
||||
|
||||
FT_BASE_CALLBACK( FT_Error )
|
||||
ps_property_get( FT_Module module, /* PS_Driver */
|
||||
const char* property_name,
|
||||
void* value );
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
|
||||
#endif /* FTPSPROP_H_ */
|
||||
|
||||
|
||||
/* END */
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Embedded resource forks accessor (specification). */
|
||||
/* */
|
||||
/* Copyright 2004-2017 by */
|
||||
/* Copyright 2004-2018 by */
|
||||
/* Masatake YAMATO and Redhat K.K. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType services (specification only). */
|
||||
/* */
|
||||
/* Copyright 2003-2017 by */
|
||||
/* Copyright 2003-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -330,6 +330,32 @@ FT_BEGIN_HEADER
|
|||
{ NULL, NULL } \
|
||||
};
|
||||
|
||||
#define FT_DEFINE_SERVICEDESCREC10( class_, \
|
||||
serv_id_1, serv_data_1, \
|
||||
serv_id_2, serv_data_2, \
|
||||
serv_id_3, serv_data_3, \
|
||||
serv_id_4, serv_data_4, \
|
||||
serv_id_5, serv_data_5, \
|
||||
serv_id_6, serv_data_6, \
|
||||
serv_id_7, serv_data_7, \
|
||||
serv_id_8, serv_data_8, \
|
||||
serv_id_9, serv_data_9, \
|
||||
serv_id_10, serv_data_10 ) \
|
||||
static const FT_ServiceDescRec class_[] = \
|
||||
{ \
|
||||
{ serv_id_1, serv_data_1 }, \
|
||||
{ serv_id_2, serv_data_2 }, \
|
||||
{ serv_id_3, serv_data_3 }, \
|
||||
{ serv_id_4, serv_data_4 }, \
|
||||
{ serv_id_5, serv_data_5 }, \
|
||||
{ serv_id_6, serv_data_6 }, \
|
||||
{ serv_id_7, serv_data_7 }, \
|
||||
{ serv_id_8, serv_data_8 }, \
|
||||
{ serv_id_9, serv_data_9 }, \
|
||||
{ serv_id_10, serv_data_10 }, \
|
||||
{ NULL, NULL } \
|
||||
};
|
||||
|
||||
#else /* FT_CONFIG_OPTION_PIC */
|
||||
|
||||
#define FT_DEFINE_SERVICEDESCREC1( class_, \
|
||||
|
@ -557,7 +583,7 @@ FT_BEGIN_HEADER
|
|||
\
|
||||
FT_Error \
|
||||
FT_Create_Class_ ## class_( FT_Library library, \
|
||||
FT_ServiceDescRec** output_class) \
|
||||
FT_ServiceDescRec** output_class ) \
|
||||
{ \
|
||||
FT_ServiceDescRec* clazz = NULL; \
|
||||
FT_Error error; \
|
||||
|
@ -608,7 +634,7 @@ FT_BEGIN_HEADER
|
|||
\
|
||||
FT_Error \
|
||||
FT_Create_Class_ ## class_( FT_Library library, \
|
||||
FT_ServiceDescRec** output_class) \
|
||||
FT_ServiceDescRec** output_class ) \
|
||||
{ \
|
||||
FT_ServiceDescRec* clazz = NULL; \
|
||||
FT_Error error; \
|
||||
|
@ -662,7 +688,7 @@ FT_BEGIN_HEADER
|
|||
\
|
||||
FT_Error \
|
||||
FT_Create_Class_ ## class_( FT_Library library, \
|
||||
FT_ServiceDescRec** output_class) \
|
||||
FT_ServiceDescRec** output_class ) \
|
||||
{ \
|
||||
FT_ServiceDescRec* clazz = NULL; \
|
||||
FT_Error error; \
|
||||
|
@ -719,7 +745,7 @@ FT_BEGIN_HEADER
|
|||
\
|
||||
FT_Error \
|
||||
FT_Create_Class_ ## class_( FT_Library library, \
|
||||
FT_ServiceDescRec** output_class) \
|
||||
FT_ServiceDescRec** output_class ) \
|
||||
{ \
|
||||
FT_ServiceDescRec* clazz = NULL; \
|
||||
FT_Error error; \
|
||||
|
@ -755,6 +781,68 @@ FT_BEGIN_HEADER
|
|||
return FT_Err_Ok; \
|
||||
}
|
||||
|
||||
#define FT_DEFINE_SERVICEDESCREC10( class_, \
|
||||
serv_id_1, serv_data_1, \
|
||||
serv_id_2, serv_data_2, \
|
||||
serv_id_3, serv_data_3, \
|
||||
serv_id_4, serv_data_4, \
|
||||
serv_id_5, serv_data_5, \
|
||||
serv_id_6, serv_data_6, \
|
||||
serv_id_7, serv_data_7, \
|
||||
serv_id_8, serv_data_8, \
|
||||
serv_id_9, serv_data_9, \
|
||||
serv_id_10, serv_data_10 ) \
|
||||
void \
|
||||
FT_Destroy_Class_ ## class_( FT_Library library, \
|
||||
FT_ServiceDescRec* clazz ) \
|
||||
{ \
|
||||
FT_Memory memory = library->memory; \
|
||||
\
|
||||
\
|
||||
if ( clazz ) \
|
||||
FT_FREE( clazz ); \
|
||||
} \
|
||||
\
|
||||
FT_Error \
|
||||
FT_Create_Class_ ## class_( FT_Library library, \
|
||||
FT_ServiceDescRec** output_class ) \
|
||||
{ \
|
||||
FT_ServiceDescRec* clazz = NULL; \
|
||||
FT_Error error; \
|
||||
FT_Memory memory = library->memory; \
|
||||
\
|
||||
\
|
||||
if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 11 ) ) \
|
||||
return error; \
|
||||
\
|
||||
clazz[ 0].serv_id = serv_id_1; \
|
||||
clazz[ 0].serv_data = serv_data_1; \
|
||||
clazz[ 1].serv_id = serv_id_2; \
|
||||
clazz[ 1].serv_data = serv_data_2; \
|
||||
clazz[ 2].serv_id = serv_id_3; \
|
||||
clazz[ 2].serv_data = serv_data_3; \
|
||||
clazz[ 3].serv_id = serv_id_4; \
|
||||
clazz[ 3].serv_data = serv_data_4; \
|
||||
clazz[ 4].serv_id = serv_id_5; \
|
||||
clazz[ 4].serv_data = serv_data_5; \
|
||||
clazz[ 5].serv_id = serv_id_6; \
|
||||
clazz[ 5].serv_data = serv_data_6; \
|
||||
clazz[ 6].serv_id = serv_id_7; \
|
||||
clazz[ 6].serv_data = serv_data_7; \
|
||||
clazz[ 7].serv_id = serv_id_8; \
|
||||
clazz[ 7].serv_data = serv_data_8; \
|
||||
clazz[ 8].serv_id = serv_id_9; \
|
||||
clazz[ 8].serv_data = serv_data_9; \
|
||||
clazz[ 9].serv_id = serv_id_10; \
|
||||
clazz[ 9].serv_data = serv_data_10; \
|
||||
clazz[10].serv_id = NULL; \
|
||||
clazz[10].serv_data = NULL; \
|
||||
\
|
||||
*output_class = clazz; \
|
||||
\
|
||||
return FT_Err_Ok; \
|
||||
}
|
||||
|
||||
#endif /* FT_CONFIG_OPTION_PIC */
|
||||
|
||||
|
||||
|
@ -898,7 +986,9 @@ FT_BEGIN_HEADER
|
|||
*/
|
||||
|
||||
#define FT_SERVICE_BDF_H <freetype/internal/services/svbdf.h>
|
||||
#define FT_SERVICE_CFF_TABLE_LOAD_H <freetype/internal/services/svcfftl.h>
|
||||
#define FT_SERVICE_CID_H <freetype/internal/services/svcid.h>
|
||||
#define FT_SERVICE_FONT_FORMAT_H <freetype/internal/services/svfntfmt.h>
|
||||
#define FT_SERVICE_GLYPH_DICT_H <freetype/internal/services/svgldict.h>
|
||||
#define FT_SERVICE_GX_VALIDATE_H <freetype/internal/services/svgxval.h>
|
||||
#define FT_SERVICE_KERNING_H <freetype/internal/services/svkern.h>
|
||||
|
@ -912,10 +1002,9 @@ FT_BEGIN_HEADER
|
|||
#define FT_SERVICE_PROPERTIES_H <freetype/internal/services/svprop.h>
|
||||
#define FT_SERVICE_SFNT_H <freetype/internal/services/svsfnt.h>
|
||||
#define FT_SERVICE_TRUETYPE_ENGINE_H <freetype/internal/services/svtteng.h>
|
||||
#define FT_SERVICE_TRUETYPE_GLYF_H <freetype/internal/services/svttglyf.h>
|
||||
#define FT_SERVICE_TT_CMAP_H <freetype/internal/services/svttcmap.h>
|
||||
#define FT_SERVICE_WINFNT_H <freetype/internal/services/svwinfnt.h>
|
||||
#define FT_SERVICE_FONT_FORMAT_H <freetype/internal/services/svfntfmt.h>
|
||||
#define FT_SERVICE_TRUETYPE_GLYF_H <freetype/internal/services/svttglyf.h>
|
||||
|
||||
/* */
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Stream handling (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -165,8 +165,8 @@ FT_BEGIN_HEADER
|
|||
#define FT_BYTE_U32( p, i, s ) ( FT_UINT32( FT_BYTE_( p, i ) ) << (s) )
|
||||
|
||||
|
||||
#define FT_PEEK_SHORT( p ) FT_INT16( FT_BYTE_U16( p, 0, 8) | \
|
||||
FT_BYTE_U16( p, 1, 0) )
|
||||
#define FT_PEEK_SHORT( p ) FT_INT16( FT_BYTE_U16( p, 0, 8 ) | \
|
||||
FT_BYTE_U16( p, 1, 0 ) )
|
||||
|
||||
#define FT_PEEK_USHORT( p ) FT_UINT16( FT_BYTE_U16( p, 0, 8 ) | \
|
||||
FT_BYTE_U16( p, 1, 0 ) )
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Tracing handling (specification only). */
|
||||
/* */
|
||||
/* Copyright 2002-2017 by */
|
||||
/* Copyright 2002-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -39,6 +39,7 @@ FT_TRACE_DEF( mm ) /* MM interface (ftmm.c) */
|
|||
FT_TRACE_DEF( raccess ) /* resource fork accessor (ftrfork.c) */
|
||||
FT_TRACE_DEF( synth ) /* bold/slant synthesizer (ftsynth.c) */
|
||||
FT_TRACE_DEF( bitmap ) /* bitmap checksum (ftobjs.c) */
|
||||
FT_TRACE_DEF( psprops ) /* PS driver properties (ftpsprop.c) */
|
||||
|
||||
/* Cache sub-system */
|
||||
FT_TRACE_DEF( cache ) /* cache sub-system (ftcache.c, etc.) */
|
||||
|
@ -66,20 +67,19 @@ FT_TRACE_DEF( ttgxvar ) /* TrueType GX var handler (ttgxvar.c) */
|
|||
FT_TRACE_DEF( t1afm )
|
||||
FT_TRACE_DEF( t1driver )
|
||||
FT_TRACE_DEF( t1gload )
|
||||
FT_TRACE_DEF( t1hint )
|
||||
FT_TRACE_DEF( t1load )
|
||||
FT_TRACE_DEF( t1objs )
|
||||
FT_TRACE_DEF( t1parse )
|
||||
|
||||
/* PostScript helper module `psaux' */
|
||||
FT_TRACE_DEF( t1decode )
|
||||
FT_TRACE_DEF( cffdecode )
|
||||
FT_TRACE_DEF( psobjs )
|
||||
FT_TRACE_DEF( psconv )
|
||||
|
||||
/* PostScript hinting module `pshinter' */
|
||||
FT_TRACE_DEF( pshrec )
|
||||
FT_TRACE_DEF( pshalgo1 )
|
||||
FT_TRACE_DEF( pshalgo2 )
|
||||
FT_TRACE_DEF( pshalgo )
|
||||
|
||||
/* Type 2 driver components */
|
||||
FT_TRACE_DEF( cffdriver )
|
||||
|
@ -96,7 +96,6 @@ FT_TRACE_DEF( cf2interp )
|
|||
FT_TRACE_DEF( t42 )
|
||||
|
||||
/* CID driver components */
|
||||
FT_TRACE_DEF( cidafm )
|
||||
FT_TRACE_DEF( ciddriver )
|
||||
FT_TRACE_DEF( cidgload )
|
||||
FT_TRACE_DEF( cidload )
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType validation support (specification). */
|
||||
/* */
|
||||
/* Copyright 2004-2017 by */
|
||||
/* Copyright 2004-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Internal header files (specification only). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -31,7 +31,7 @@
|
|||
#define FT_INTERNAL_DEBUG_H <freetype/internal/ftdebug.h>
|
||||
#define FT_INTERNAL_CALC_H <freetype/internal/ftcalc.h>
|
||||
#define FT_INTERNAL_HASH_H <freetype/internal/fthash.h>
|
||||
#define FT_INTERNAL_DRIVER_H <freetype/internal/ftdriver.h>
|
||||
#define FT_INTERNAL_DRIVER_H <freetype/internal/ftdrv.h>
|
||||
#define FT_INTERNAL_TRACE_H <freetype/internal/fttrace.h>
|
||||
#define FT_INTERNAL_GLYPH_LOADER_H <freetype/internal/ftgloadr.h>
|
||||
#define FT_INTERNAL_SFNT_H <freetype/internal/sfnt.h>
|
||||
|
@ -44,9 +44,13 @@
|
|||
|
||||
#define FT_INTERNAL_POSTSCRIPT_AUX_H <freetype/internal/psaux.h>
|
||||
#define FT_INTERNAL_POSTSCRIPT_HINTS_H <freetype/internal/pshints.h>
|
||||
#define FT_INTERNAL_POSTSCRIPT_PROPS_H <freetype/internal/ftpsprop.h>
|
||||
|
||||
#define FT_INTERNAL_AUTOHINT_H <freetype/internal/autohint.h>
|
||||
|
||||
#define FT_INTERNAL_CFF_TYPES_H <freetype/internal/cfftypes.h>
|
||||
#define FT_INTERNAL_CFF_OBJECTS_TYPES_H <freetype/internal/cffotypes.h>
|
||||
|
||||
|
||||
#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
/* Auxiliary functions and data structures related to PostScript fonts */
|
||||
/* (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -25,12 +25,32 @@
|
|||
#include FT_INTERNAL_OBJECTS_H
|
||||
#include FT_INTERNAL_TYPE1_TYPES_H
|
||||
#include FT_INTERNAL_HASH_H
|
||||
#include FT_INTERNAL_TRUETYPE_TYPES_H
|
||||
#include FT_SERVICE_POSTSCRIPT_CMAPS_H
|
||||
#include FT_INTERNAL_CFF_TYPES_H
|
||||
#include FT_INTERNAL_CFF_OBJECTS_TYPES_H
|
||||
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
/* */
|
||||
/* PostScript modules driver class. */
|
||||
/* */
|
||||
typedef struct PS_DriverRec_
|
||||
{
|
||||
FT_DriverRec root;
|
||||
|
||||
FT_UInt hinting_engine;
|
||||
FT_Bool no_stem_darkening;
|
||||
FT_Int darken_params[8];
|
||||
FT_Int32 random_seed;
|
||||
|
||||
} PS_DriverRec, *PS_Driver;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/***** *****/
|
||||
|
@ -439,6 +459,202 @@ FT_BEGIN_HEADER
|
|||
} PS_ParserRec;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/***** *****/
|
||||
/***** PS BUILDER *****/
|
||||
/***** *****/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
typedef struct PS_Builder_ PS_Builder;
|
||||
typedef const struct PS_Builder_FuncsRec_* PS_Builder_Funcs;
|
||||
|
||||
typedef struct PS_Builder_FuncsRec_
|
||||
{
|
||||
void
|
||||
(*init)( PS_Builder* ps_builder,
|
||||
void* builder,
|
||||
FT_Bool is_t1 );
|
||||
|
||||
void
|
||||
(*done)( PS_Builder* builder );
|
||||
|
||||
} PS_Builder_FuncsRec;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Structure> */
|
||||
/* PS_Builder */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A structure used during glyph loading to store its outline. */
|
||||
/* */
|
||||
/* <Fields> */
|
||||
/* memory :: The current memory object. */
|
||||
/* */
|
||||
/* face :: The current face object. */
|
||||
/* */
|
||||
/* glyph :: The current glyph slot. */
|
||||
/* */
|
||||
/* loader :: XXX */
|
||||
/* */
|
||||
/* base :: The base glyph outline. */
|
||||
/* */
|
||||
/* current :: The current glyph outline. */
|
||||
/* */
|
||||
/* pos_x :: The horizontal translation (if composite glyph). */
|
||||
/* */
|
||||
/* pos_y :: The vertical translation (if composite glyph). */
|
||||
/* */
|
||||
/* left_bearing :: The left side bearing point. */
|
||||
/* */
|
||||
/* advance :: The horizontal advance vector. */
|
||||
/* */
|
||||
/* bbox :: Unused. */
|
||||
/* */
|
||||
/* path_begun :: A flag which indicates that a new path has begun. */
|
||||
/* */
|
||||
/* load_points :: If this flag is not set, no points are loaded. */
|
||||
/* */
|
||||
/* no_recurse :: Set but not used. */
|
||||
/* */
|
||||
/* metrics_only :: A boolean indicating that we only want to compute */
|
||||
/* the metrics of a given glyph, not load all of its */
|
||||
/* points. */
|
||||
/* */
|
||||
/* is_t1 :: Set if current font type is Type 1. */
|
||||
/* */
|
||||
/* funcs :: An array of function pointers for the builder. */
|
||||
/* */
|
||||
struct PS_Builder_
|
||||
{
|
||||
FT_Memory memory;
|
||||
FT_Face face;
|
||||
CFF_GlyphSlot glyph;
|
||||
FT_GlyphLoader loader;
|
||||
FT_Outline* base;
|
||||
FT_Outline* current;
|
||||
|
||||
FT_Pos* pos_x;
|
||||
FT_Pos* pos_y;
|
||||
|
||||
FT_Vector* left_bearing;
|
||||
FT_Vector* advance;
|
||||
|
||||
FT_BBox* bbox; /* bounding box */
|
||||
FT_Bool path_begun;
|
||||
FT_Bool load_points;
|
||||
FT_Bool no_recurse;
|
||||
|
||||
FT_Bool metrics_only;
|
||||
FT_Bool is_t1;
|
||||
|
||||
PS_Builder_FuncsRec funcs;
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/***** *****/
|
||||
/***** PS DECODER *****/
|
||||
/***** *****/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
||||
#define PS_MAX_OPERANDS 48
|
||||
#define PS_MAX_SUBRS_CALLS 16 /* maximum subroutine nesting; */
|
||||
/* only 10 are allowed but there exist */
|
||||
/* fonts like `HiraKakuProN-W3.ttf' */
|
||||
/* (Hiragino Kaku Gothic ProN W3; */
|
||||
/* 8.2d6e1; 2014-12-19) that exceed */
|
||||
/* this limit */
|
||||
|
||||
/* execution context charstring zone */
|
||||
|
||||
typedef struct PS_Decoder_Zone_
|
||||
{
|
||||
FT_Byte* base;
|
||||
FT_Byte* limit;
|
||||
FT_Byte* cursor;
|
||||
|
||||
} PS_Decoder_Zone;
|
||||
|
||||
|
||||
typedef FT_Error
|
||||
(*CFF_Decoder_Get_Glyph_Callback)( TT_Face face,
|
||||
FT_UInt glyph_index,
|
||||
FT_Byte** pointer,
|
||||
FT_ULong* length );
|
||||
|
||||
typedef void
|
||||
(*CFF_Decoder_Free_Glyph_Callback)( TT_Face face,
|
||||
FT_Byte** pointer,
|
||||
FT_ULong length );
|
||||
|
||||
|
||||
typedef struct PS_Decoder_
|
||||
{
|
||||
PS_Builder builder;
|
||||
|
||||
FT_Fixed stack[PS_MAX_OPERANDS + 1];
|
||||
FT_Fixed* top;
|
||||
|
||||
PS_Decoder_Zone zones[PS_MAX_SUBRS_CALLS + 1];
|
||||
PS_Decoder_Zone* zone;
|
||||
|
||||
FT_Int flex_state;
|
||||
FT_Int num_flex_vectors;
|
||||
FT_Vector flex_vectors[7];
|
||||
|
||||
CFF_Font cff;
|
||||
CFF_SubFont current_subfont; /* for current glyph_index */
|
||||
FT_Generic* cf2_instance;
|
||||
|
||||
FT_Pos* glyph_width;
|
||||
FT_Bool width_only;
|
||||
FT_Int num_hints;
|
||||
|
||||
FT_UInt num_locals;
|
||||
FT_UInt num_globals;
|
||||
|
||||
FT_Int locals_bias;
|
||||
FT_Int globals_bias;
|
||||
|
||||
FT_Byte** locals;
|
||||
FT_Byte** globals;
|
||||
|
||||
FT_Byte** glyph_names; /* for pure CFF fonts only */
|
||||
FT_UInt num_glyphs; /* number of glyphs in font */
|
||||
|
||||
FT_Render_Mode hint_mode;
|
||||
|
||||
FT_Bool seac;
|
||||
|
||||
CFF_Decoder_Get_Glyph_Callback get_glyph_callback;
|
||||
CFF_Decoder_Free_Glyph_Callback free_glyph_callback;
|
||||
|
||||
/* Type 1 stuff */
|
||||
FT_Service_PsCMaps psnames; /* for seac */
|
||||
|
||||
FT_Int lenIV; /* internal for sub routine calls */
|
||||
FT_UInt* locals_len; /* array of subrs length (optional) */
|
||||
FT_Hash locals_hash; /* used if `num_subrs' was massaged */
|
||||
|
||||
FT_Matrix font_matrix;
|
||||
FT_Vector font_offset;
|
||||
|
||||
PS_Blend blend; /* for multiple master support */
|
||||
|
||||
FT_Long* buildchar;
|
||||
FT_UInt len_buildchar;
|
||||
|
||||
} PS_Decoder;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/***** *****/
|
||||
|
@ -653,10 +869,23 @@ FT_BEGIN_HEADER
|
|||
void
|
||||
(*done)( T1_Decoder decoder );
|
||||
|
||||
#ifdef T1_CONFIG_OPTION_OLD_ENGINE
|
||||
FT_Error
|
||||
(*parse_charstrings)( T1_Decoder decoder,
|
||||
FT_Byte* base,
|
||||
FT_UInt len );
|
||||
(*parse_charstrings_old)( T1_Decoder decoder,
|
||||
FT_Byte* base,
|
||||
FT_UInt len );
|
||||
#else
|
||||
FT_Error
|
||||
(*parse_metrics)( T1_Decoder decoder,
|
||||
FT_Byte* base,
|
||||
FT_UInt len );
|
||||
#endif
|
||||
|
||||
FT_Error
|
||||
(*parse_charstrings)( PS_Decoder* decoder,
|
||||
FT_Byte* charstring_base,
|
||||
FT_ULong charstring_len );
|
||||
|
||||
|
||||
} T1_Decoder_FuncsRec;
|
||||
|
||||
|
@ -700,9 +929,258 @@ FT_BEGIN_HEADER
|
|||
|
||||
FT_Bool seac;
|
||||
|
||||
FT_Generic cf2_instance;
|
||||
|
||||
} T1_DecoderRec;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/***** *****/
|
||||
/***** CFF BUILDER *****/
|
||||
/***** *****/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
typedef struct CFF_Builder_ CFF_Builder;
|
||||
|
||||
|
||||
typedef FT_Error
|
||||
(*CFF_Builder_Check_Points_Func)( CFF_Builder* builder,
|
||||
FT_Int count );
|
||||
|
||||
typedef void
|
||||
(*CFF_Builder_Add_Point_Func)( CFF_Builder* builder,
|
||||
FT_Pos x,
|
||||
FT_Pos y,
|
||||
FT_Byte flag );
|
||||
typedef FT_Error
|
||||
(*CFF_Builder_Add_Point1_Func)( CFF_Builder* builder,
|
||||
FT_Pos x,
|
||||
FT_Pos y );
|
||||
typedef FT_Error
|
||||
(*CFF_Builder_Start_Point_Func)( CFF_Builder* builder,
|
||||
FT_Pos x,
|
||||
FT_Pos y );
|
||||
typedef void
|
||||
(*CFF_Builder_Close_Contour_Func)( CFF_Builder* builder );
|
||||
|
||||
typedef FT_Error
|
||||
(*CFF_Builder_Add_Contour_Func)( CFF_Builder* builder );
|
||||
|
||||
typedef const struct CFF_Builder_FuncsRec_* CFF_Builder_Funcs;
|
||||
|
||||
typedef struct CFF_Builder_FuncsRec_
|
||||
{
|
||||
void
|
||||
(*init)( CFF_Builder* builder,
|
||||
TT_Face face,
|
||||
CFF_Size size,
|
||||
CFF_GlyphSlot glyph,
|
||||
FT_Bool hinting );
|
||||
|
||||
void
|
||||
(*done)( CFF_Builder* builder );
|
||||
|
||||
CFF_Builder_Check_Points_Func check_points;
|
||||
CFF_Builder_Add_Point_Func add_point;
|
||||
CFF_Builder_Add_Point1_Func add_point1;
|
||||
CFF_Builder_Add_Contour_Func add_contour;
|
||||
CFF_Builder_Start_Point_Func start_point;
|
||||
CFF_Builder_Close_Contour_Func close_contour;
|
||||
|
||||
} CFF_Builder_FuncsRec;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Structure> */
|
||||
/* CFF_Builder */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A structure used during glyph loading to store its outline. */
|
||||
/* */
|
||||
/* <Fields> */
|
||||
/* memory :: The current memory object. */
|
||||
/* */
|
||||
/* face :: The current face object. */
|
||||
/* */
|
||||
/* glyph :: The current glyph slot. */
|
||||
/* */
|
||||
/* loader :: The current glyph loader. */
|
||||
/* */
|
||||
/* base :: The base glyph outline. */
|
||||
/* */
|
||||
/* current :: The current glyph outline. */
|
||||
/* */
|
||||
/* pos_x :: The horizontal translation (if composite glyph). */
|
||||
/* */
|
||||
/* pos_y :: The vertical translation (if composite glyph). */
|
||||
/* */
|
||||
/* left_bearing :: The left side bearing point. */
|
||||
/* */
|
||||
/* advance :: The horizontal advance vector. */
|
||||
/* */
|
||||
/* bbox :: Unused. */
|
||||
/* */
|
||||
/* path_begun :: A flag which indicates that a new path has begun. */
|
||||
/* */
|
||||
/* load_points :: If this flag is not set, no points are loaded. */
|
||||
/* */
|
||||
/* no_recurse :: Set but not used. */
|
||||
/* */
|
||||
/* metrics_only :: A boolean indicating that we only want to compute */
|
||||
/* the metrics of a given glyph, not load all of its */
|
||||
/* points. */
|
||||
/* */
|
||||
/* hints_funcs :: Auxiliary pointer for hinting. */
|
||||
/* */
|
||||
/* hints_globals :: Auxiliary pointer for hinting. */
|
||||
/* */
|
||||
/* funcs :: A table of method pointers for this object. */
|
||||
/* */
|
||||
struct CFF_Builder_
|
||||
{
|
||||
FT_Memory memory;
|
||||
TT_Face face;
|
||||
CFF_GlyphSlot glyph;
|
||||
FT_GlyphLoader loader;
|
||||
FT_Outline* base;
|
||||
FT_Outline* current;
|
||||
|
||||
FT_Pos pos_x;
|
||||
FT_Pos pos_y;
|
||||
|
||||
FT_Vector left_bearing;
|
||||
FT_Vector advance;
|
||||
|
||||
FT_BBox bbox; /* bounding box */
|
||||
|
||||
FT_Bool path_begun;
|
||||
FT_Bool load_points;
|
||||
FT_Bool no_recurse;
|
||||
|
||||
FT_Bool metrics_only;
|
||||
|
||||
void* hints_funcs; /* hinter-specific */
|
||||
void* hints_globals; /* hinter-specific */
|
||||
|
||||
CFF_Builder_FuncsRec funcs;
|
||||
};
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/***** *****/
|
||||
/***** CFF DECODER *****/
|
||||
/***** *****/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
#define CFF_MAX_OPERANDS 48
|
||||
#define CFF_MAX_SUBRS_CALLS 16 /* maximum subroutine nesting; */
|
||||
/* only 10 are allowed but there exist */
|
||||
/* fonts like `HiraKakuProN-W3.ttf' */
|
||||
/* (Hiragino Kaku Gothic ProN W3; */
|
||||
/* 8.2d6e1; 2014-12-19) that exceed */
|
||||
/* this limit */
|
||||
#define CFF_MAX_TRANS_ELEMENTS 32
|
||||
|
||||
/* execution context charstring zone */
|
||||
|
||||
typedef struct CFF_Decoder_Zone_
|
||||
{
|
||||
FT_Byte* base;
|
||||
FT_Byte* limit;
|
||||
FT_Byte* cursor;
|
||||
|
||||
} CFF_Decoder_Zone;
|
||||
|
||||
|
||||
typedef struct CFF_Decoder_
|
||||
{
|
||||
CFF_Builder builder;
|
||||
CFF_Font cff;
|
||||
|
||||
FT_Fixed stack[CFF_MAX_OPERANDS + 1];
|
||||
FT_Fixed* top;
|
||||
|
||||
CFF_Decoder_Zone zones[CFF_MAX_SUBRS_CALLS + 1];
|
||||
CFF_Decoder_Zone* zone;
|
||||
|
||||
FT_Int flex_state;
|
||||
FT_Int num_flex_vectors;
|
||||
FT_Vector flex_vectors[7];
|
||||
|
||||
FT_Pos glyph_width;
|
||||
FT_Pos nominal_width;
|
||||
|
||||
FT_Bool read_width;
|
||||
FT_Bool width_only;
|
||||
FT_Int num_hints;
|
||||
FT_Fixed buildchar[CFF_MAX_TRANS_ELEMENTS];
|
||||
|
||||
FT_UInt num_locals;
|
||||
FT_UInt num_globals;
|
||||
|
||||
FT_Int locals_bias;
|
||||
FT_Int globals_bias;
|
||||
|
||||
FT_Byte** locals;
|
||||
FT_Byte** globals;
|
||||
|
||||
FT_Byte** glyph_names; /* for pure CFF fonts only */
|
||||
FT_UInt num_glyphs; /* number of glyphs in font */
|
||||
|
||||
FT_Render_Mode hint_mode;
|
||||
|
||||
FT_Bool seac;
|
||||
|
||||
CFF_SubFont current_subfont; /* for current glyph_index */
|
||||
|
||||
CFF_Decoder_Get_Glyph_Callback get_glyph_callback;
|
||||
CFF_Decoder_Free_Glyph_Callback free_glyph_callback;
|
||||
|
||||
} CFF_Decoder;
|
||||
|
||||
|
||||
typedef const struct CFF_Decoder_FuncsRec_* CFF_Decoder_Funcs;
|
||||
|
||||
typedef struct CFF_Decoder_FuncsRec_
|
||||
{
|
||||
void
|
||||
(*init)( CFF_Decoder* decoder,
|
||||
TT_Face face,
|
||||
CFF_Size size,
|
||||
CFF_GlyphSlot slot,
|
||||
FT_Bool hinting,
|
||||
FT_Render_Mode hint_mode,
|
||||
CFF_Decoder_Get_Glyph_Callback get_callback,
|
||||
CFF_Decoder_Free_Glyph_Callback free_callback );
|
||||
|
||||
FT_Error
|
||||
(*prepare)( CFF_Decoder* decoder,
|
||||
CFF_Size size,
|
||||
FT_UInt glyph_index );
|
||||
|
||||
#ifdef CFF_CONFIG_OPTION_OLD_ENGINE
|
||||
FT_Error
|
||||
(*parse_charstrings_old)( CFF_Decoder* decoder,
|
||||
FT_Byte* charstring_base,
|
||||
FT_ULong charstring_len,
|
||||
FT_Bool in_dict );
|
||||
#endif
|
||||
|
||||
FT_Error
|
||||
(*parse_charstrings)( PS_Decoder* decoder,
|
||||
FT_Byte* charstring_base,
|
||||
FT_ULong charstring_len );
|
||||
|
||||
} CFF_Decoder_FuncsRec;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/***** *****/
|
||||
|
@ -810,11 +1288,26 @@ FT_BEGIN_HEADER
|
|||
FT_Offset length,
|
||||
FT_UShort seed );
|
||||
|
||||
FT_UInt32
|
||||
(*cff_random)( FT_UInt32 r );
|
||||
|
||||
void
|
||||
(*ps_decoder_init)( PS_Decoder* ps_decoder,
|
||||
void* decoder,
|
||||
FT_Bool is_t1 );
|
||||
|
||||
void
|
||||
(*t1_make_subfont)( FT_Face face,
|
||||
PS_Private priv,
|
||||
CFF_SubFont subfont );
|
||||
|
||||
T1_CMap_Classes t1_cmap_classes;
|
||||
|
||||
/* fields after this comment line were added after version 2.1.10 */
|
||||
const AFM_Parser_FuncsRec* afm_parser_funcs;
|
||||
|
||||
const CFF_Decoder_FuncsRec* cff_decoder_funcs;
|
||||
|
||||
} PSAux_ServiceRec, *PSAux_Service;
|
||||
|
||||
/* backward compatible type definition */
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
/* recorders (specification only). These are used to support native */
|
||||
/* T1/T2 hints in the `type1', `cid', and `cff' font drivers. */
|
||||
/* */
|
||||
/* Copyright 2001-2017 by */
|
||||
/* Copyright 2001-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType BDF services (specification). */
|
||||
/* */
|
||||
/* Copyright 2003-2017 by */
|
||||
/* Copyright 2003-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -0,0 +1,112 @@
|
|||
/***************************************************************************/
|
||||
/* */
|
||||
/* svcfftl.h */
|
||||
/* */
|
||||
/* The FreeType CFF tables loader service (specification). */
|
||||
/* */
|
||||
/* Copyright 2017-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
/* modified, and distributed under the terms of the FreeType project */
|
||||
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
||||
/* this file you indicate that you have read the license and */
|
||||
/* understand and accept it fully. */
|
||||
/* */
|
||||
/***************************************************************************/
|
||||
|
||||
|
||||
#ifndef SVCFFTL_H_
|
||||
#define SVCFFTL_H_
|
||||
|
||||
#include FT_INTERNAL_SERVICE_H
|
||||
#include FT_INTERNAL_CFF_TYPES_H
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
|
||||
#define FT_SERVICE_ID_CFF_LOAD "cff-load"
|
||||
|
||||
|
||||
typedef FT_UShort
|
||||
(*FT_Get_Standard_Encoding_Func)( FT_UInt charcode );
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Load_Private_Dict_Func)( CFF_Font font,
|
||||
CFF_SubFont subfont,
|
||||
FT_UInt lenNDV,
|
||||
FT_Fixed* NDV );
|
||||
|
||||
typedef FT_Byte
|
||||
(*FT_FD_Select_Get_Func)( CFF_FDSelect fdselect,
|
||||
FT_UInt glyph_index );
|
||||
|
||||
typedef FT_Bool
|
||||
(*FT_Blend_Check_Vector_Func)( CFF_Blend blend,
|
||||
FT_UInt vsindex,
|
||||
FT_UInt lenNDV,
|
||||
FT_Fixed* NDV );
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Blend_Build_Vector_Func)( CFF_Blend blend,
|
||||
FT_UInt vsindex,
|
||||
FT_UInt lenNDV,
|
||||
FT_Fixed* NDV );
|
||||
|
||||
|
||||
FT_DEFINE_SERVICE( CFFLoad )
|
||||
{
|
||||
FT_Get_Standard_Encoding_Func get_standard_encoding;
|
||||
FT_Load_Private_Dict_Func load_private_dict;
|
||||
FT_FD_Select_Get_Func fd_select_get;
|
||||
FT_Blend_Check_Vector_Func blend_check_vector;
|
||||
FT_Blend_Build_Vector_Func blend_build_vector;
|
||||
};
|
||||
|
||||
|
||||
#ifndef FT_CONFIG_OPTION_PIC
|
||||
|
||||
#define FT_DEFINE_SERVICE_CFFLOADREC( class_, \
|
||||
get_standard_encoding_, \
|
||||
load_private_dict_, \
|
||||
fd_select_get_, \
|
||||
blend_check_vector_, \
|
||||
blend_build_vector_ ) \
|
||||
static const FT_Service_CFFLoadRec class_ = \
|
||||
{ \
|
||||
get_standard_encoding_, \
|
||||
load_private_dict_, \
|
||||
fd_select_get_, \
|
||||
blend_check_vector_, \
|
||||
blend_build_vector_ \
|
||||
};
|
||||
|
||||
#else /* FT_CONFIG_OPTION_PIC */
|
||||
|
||||
#define FT_DEFINE_SERVICE_CFFLOADREC( class_, \
|
||||
get_standard_encoding_, \
|
||||
load_private_dict_, \
|
||||
fd_select_get_, \
|
||||
blend_check_vector_, \
|
||||
blend_build_vector_ ) \
|
||||
void \
|
||||
FT_Init_Class_ ## class_( FT_Service_CFFLoadRec* clazz ) \
|
||||
{ \
|
||||
clazz->get_standard_encoding = get_standard_encoding_; \
|
||||
clazz->load_private_dict = load_private_dict_; \
|
||||
clazz->fd_select_get = fd_select_get_; \
|
||||
clazz->blend_check_vector = blend_check_vector_; \
|
||||
clazz->blend_build_vector = blend_build_vector_; \
|
||||
}
|
||||
|
||||
#endif /* FT_CONFIG_OPTION_PIC */
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* END */
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType CID font services (specification). */
|
||||
/* */
|
||||
/* Copyright 2007-2017 by */
|
||||
/* Copyright 2007-2018 by */
|
||||
/* Derek Clegg and Michael Toftdal. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType font format service (specification only). */
|
||||
/* */
|
||||
/* Copyright 2003-2017 by */
|
||||
/* Copyright 2003-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType glyph dictionary services (specification). */
|
||||
/* */
|
||||
/* Copyright 2003-2017 by */
|
||||
/* Copyright 2003-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -56,7 +56,7 @@ FT_BEGIN_HEADER
|
|||
|
||||
#define FT_DEFINE_SERVICE_GLYPHDICTREC( class_, \
|
||||
get_name_, \
|
||||
name_index_) \
|
||||
name_index_ ) \
|
||||
static const FT_Service_GlyphDictRec class_ = \
|
||||
{ \
|
||||
get_name_, name_index_ \
|
||||
|
@ -66,7 +66,7 @@ FT_BEGIN_HEADER
|
|||
|
||||
#define FT_DEFINE_SERVICE_GLYPHDICTREC( class_, \
|
||||
get_name_, \
|
||||
name_index_) \
|
||||
name_index_ ) \
|
||||
void \
|
||||
FT_Init_Class_ ## class_( FT_Library library, \
|
||||
FT_Service_GlyphDictRec* clazz ) \
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType API for validating TrueTypeGX/AAT tables (specification). */
|
||||
/* */
|
||||
/* Copyright 2004-2017 by */
|
||||
/* Copyright 2004-2018 by */
|
||||
/* Masatake YAMATO, Red Hat K.K., */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType Kerning service (specification). */
|
||||
/* */
|
||||
/* Copyright 2006-2017 by */
|
||||
/* Copyright 2006-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType services for metrics variations (specification). */
|
||||
/* */
|
||||
/* Copyright 2016-2017 by */
|
||||
/* Copyright 2016-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType Multiple Masters and GX var services (specification). */
|
||||
/* */
|
||||
/* Copyright 2003-2017 by */
|
||||
/* Copyright 2003-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -48,11 +48,15 @@ FT_BEGIN_HEADER
|
|||
FT_UInt num_coords,
|
||||
FT_Long* coords );
|
||||
|
||||
/* use return value -1 to indicate that the new coordinates */
|
||||
/* are equal to the current ones; no changes are thus needed */
|
||||
typedef FT_Error
|
||||
(*FT_Set_Var_Design_Func)( FT_Face face,
|
||||
FT_UInt num_coords,
|
||||
FT_Fixed* coords );
|
||||
|
||||
/* use return value -1 to indicate that the new coordinates */
|
||||
/* are equal to the current ones; no changes are thus needed */
|
||||
typedef FT_Error
|
||||
(*FT_Set_MM_Blend_Func)( FT_Face face,
|
||||
FT_UInt num_coords,
|
||||
|
@ -63,6 +67,10 @@ FT_BEGIN_HEADER
|
|||
FT_UInt num_coords,
|
||||
FT_Fixed* coords );
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Set_Instance_Func)( FT_Face face,
|
||||
FT_UInt instance_index );
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Get_MM_Blend_Func)( FT_Face face,
|
||||
FT_UInt num_coords,
|
||||
|
@ -88,6 +96,7 @@ FT_BEGIN_HEADER
|
|||
FT_Get_MM_Var_Func get_mm_var;
|
||||
FT_Set_Var_Design_Func set_var_design;
|
||||
FT_Get_Var_Design_Func get_var_design;
|
||||
FT_Set_Instance_Func set_instance;
|
||||
|
||||
/* for internal use; only needed for code sharing between modules */
|
||||
FT_Get_Var_Blend_Func get_var_blend;
|
||||
|
@ -97,27 +106,29 @@ FT_BEGIN_HEADER
|
|||
|
||||
#ifndef FT_CONFIG_OPTION_PIC
|
||||
|
||||
#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \
|
||||
get_mm_, \
|
||||
set_mm_design_, \
|
||||
set_mm_blend_, \
|
||||
get_mm_blend_, \
|
||||
get_mm_var_, \
|
||||
set_var_design_, \
|
||||
get_var_design_, \
|
||||
get_var_blend_, \
|
||||
done_blend_ ) \
|
||||
static const FT_Service_MultiMastersRec class_ = \
|
||||
{ \
|
||||
get_mm_, \
|
||||
set_mm_design_, \
|
||||
set_mm_blend_, \
|
||||
get_mm_blend_, \
|
||||
get_mm_var_, \
|
||||
set_var_design_, \
|
||||
get_var_design_, \
|
||||
get_var_blend_, \
|
||||
done_blend_ \
|
||||
#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \
|
||||
get_mm_, \
|
||||
set_mm_design_, \
|
||||
set_mm_blend_, \
|
||||
get_mm_blend_, \
|
||||
get_mm_var_, \
|
||||
set_var_design_, \
|
||||
get_var_design_, \
|
||||
set_instance_, \
|
||||
get_var_blend_, \
|
||||
done_blend_ ) \
|
||||
static const FT_Service_MultiMastersRec class_ = \
|
||||
{ \
|
||||
get_mm_, \
|
||||
set_mm_design_, \
|
||||
set_mm_blend_, \
|
||||
get_mm_blend_, \
|
||||
get_mm_var_, \
|
||||
set_var_design_, \
|
||||
get_var_design_, \
|
||||
set_instance_, \
|
||||
get_var_blend_, \
|
||||
done_blend_ \
|
||||
};
|
||||
|
||||
#else /* FT_CONFIG_OPTION_PIC */
|
||||
|
@ -130,6 +141,7 @@ FT_BEGIN_HEADER
|
|||
get_mm_var_, \
|
||||
set_var_design_, \
|
||||
get_var_design_, \
|
||||
set_instance_, \
|
||||
get_var_blend_, \
|
||||
done_blend_ ) \
|
||||
void \
|
||||
|
@ -142,6 +154,7 @@ FT_BEGIN_HEADER
|
|||
clazz->get_mm_var = get_mm_var_; \
|
||||
clazz->set_var_design = set_var_design_; \
|
||||
clazz->get_var_design = get_var_design_; \
|
||||
clazz->set_instance = set_instance_; \
|
||||
clazz->get_var_blend = get_var_blend_; \
|
||||
clazz->done_blend = done_blend_; \
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType OpenType validation service (specification). */
|
||||
/* */
|
||||
/* Copyright 2004-2017 by */
|
||||
/* Copyright 2004-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Internal PFR service functions (specification). */
|
||||
/* */
|
||||
/* Copyright 2003-2017 by */
|
||||
/* Copyright 2003-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType PostScript name services (specification). */
|
||||
/* */
|
||||
/* Copyright 2003-2017 by */
|
||||
/* Copyright 2003-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType property service (specification). */
|
||||
/* */
|
||||
/* Copyright 2012-2017 by */
|
||||
/* Copyright 2012-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType PostScript charmap service (specification). */
|
||||
/* */
|
||||
/* Copyright 2003-2017 by */
|
||||
/* Copyright 2003-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType PostScript info service (specification). */
|
||||
/* */
|
||||
/* Copyright 2003-2017 by */
|
||||
/* Copyright 2003-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType SFNT table loading service (specification). */
|
||||
/* */
|
||||
/* Copyright 2003-2017 by */
|
||||
/* Copyright 2003-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType TrueType/sfnt cmap extra information service. */
|
||||
/* */
|
||||
/* Copyright 2003-2017 by */
|
||||
/* Copyright 2003-2018 by */
|
||||
/* Masatake YAMATO, Redhat K.K., */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType TrueType engine query service (specification). */
|
||||
/* */
|
||||
/* Copyright 2006-2017 by */
|
||||
/* Copyright 2006-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType TrueType glyph service. */
|
||||
/* */
|
||||
/* Copyright 2007-2017 by */
|
||||
/* Copyright 2007-2018 by */
|
||||
/* David Turner. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* The FreeType Windows FNT/FONT service (specification). */
|
||||
/* */
|
||||
/* Copyright 2003-2017 by */
|
||||
/* Copyright 2003-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* High-level `sfnt' driver interface (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
/* Basic Type1/Type2 type definitions and interface (specification */
|
||||
/* only). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
/* Basic SFNT/TrueType type definitions and interface (specification */
|
||||
/* only). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -148,7 +148,7 @@ FT_BEGIN_HEADER
|
|||
/* <Fields> */
|
||||
/* See */
|
||||
/* */
|
||||
/* http://www.w3.org/TR/WOFF/#WOFFHeader */
|
||||
/* https://www.w3.org/TR/WOFF/#WOFFHeader */
|
||||
/* */
|
||||
typedef struct WOFF_HeaderRec_
|
||||
{
|
||||
|
@ -1299,10 +1299,6 @@ FT_BEGIN_HEADER
|
|||
/* variation tables (rather like Multiple */
|
||||
/* Master data). */
|
||||
/* */
|
||||
/* is_default_instance :: Set if the glyph outlines can be used */
|
||||
/* unmodified (i.e., without applying glyph */
|
||||
/* variation deltas). */
|
||||
/* */
|
||||
/* variation_support :: Flags that indicate which OpenType */
|
||||
/* functionality related to font variation */
|
||||
/* support is present, valid, and usable. */
|
||||
|
@ -1445,6 +1441,9 @@ FT_BEGIN_HEADER
|
|||
void* var;
|
||||
#endif
|
||||
|
||||
/* a typeless pointer to the PostScript Aux service */
|
||||
void* psaux;
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
/* */
|
||||
|
@ -1509,7 +1508,6 @@ FT_BEGIN_HEADER
|
|||
FT_Bool doblend;
|
||||
GX_Blend blend;
|
||||
|
||||
FT_Bool is_default_instance; /* since 2.7.1 */
|
||||
FT_UInt32 variation_support; /* since 2.7.1 */
|
||||
|
||||
const char* var_postscript_prefix; /* since 2.7.2 */
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
/* Basic Type 1/Type 2 tables definitions and interface (specification */
|
||||
/* only). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -554,6 +554,9 @@ FT_BEGIN_HEADER
|
|||
/* T1_ENCODING_TYPE_ISOLATIN1 :: */
|
||||
/* T1_ENCODING_TYPE_EXPERT :: */
|
||||
/* */
|
||||
/* <Since> */
|
||||
/* 2.4.8 */
|
||||
/* */
|
||||
typedef enum T1_EncodingType_
|
||||
{
|
||||
T1_ENCODING_TYPE_NONE = 0,
|
||||
|
@ -622,6 +625,9 @@ FT_BEGIN_HEADER
|
|||
/* PS_DICT_FS_TYPE :: */
|
||||
/* PS_DICT_ITALIC_ANGLE :: */
|
||||
/* */
|
||||
/* <Since> */
|
||||
/* 2.4.8 */
|
||||
/* */
|
||||
typedef enum PS_Dict_Keys_
|
||||
{
|
||||
/* conventionally in the font dictionary */
|
||||
|
@ -743,6 +749,9 @@ FT_BEGIN_HEADER
|
|||
* If the font's format is not PostScript-based, this function returns
|
||||
* the `FT_Err_Invalid_Argument' error code.
|
||||
*
|
||||
* @since:
|
||||
* 2.4.8
|
||||
*
|
||||
*/
|
||||
FT_EXPORT( FT_Long )
|
||||
FT_Get_PS_Font_Value( FT_Face face,
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* TrueType name ID definitions (specification only). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -437,7 +437,7 @@ FT_BEGIN_HEADER
|
|||
*
|
||||
* The canonical source for Microsoft's IDs is
|
||||
*
|
||||
* http://www.microsoft.com/globaldev/reference/lcid-all.mspx ,
|
||||
* https://www.microsoft.com/globaldev/reference/lcid-all.mspx ,
|
||||
*
|
||||
* however, we only provide macros for language identifiers present in
|
||||
* the OpenType specification: Microsoft has abandoned the concept of
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
/* Basic SFNT/TrueType tables definitions and interface */
|
||||
/* (specification only). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Tags for TrueType and OpenType tables (specification only). */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* FreeType 2 build and setup macros. */
|
||||
/* */
|
||||
/* Copyright 1996-2017 by */
|
||||
/* Copyright 1996-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
/* Routines used to compute vector angles with limited accuracy */
|
||||
/* and very high speed. It also contains sorting routines (body). */
|
||||
/* */
|
||||
/* Copyright 2003-2017 by */
|
||||
/* Copyright 2003-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
/* */
|
||||
/* Auto-fitter data for blue strings (body). */
|
||||
/* */
|
||||
/* Copyright 2013-2017 by */
|
||||
/* Copyright 2013-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -166,6 +166,10 @@
|
|||
'\0',
|
||||
'\xE2', '\xB4', '\x84', ' ', '\xE2', '\xB4', '\x85', ' ', '\xE2', '\xB4', '\x94', ' ', '\xE2', '\xB4', '\x95', ' ', '\xE2', '\xB4', '\x81', ' ', '\xE2', '\xB4', '\x82', ' ', '\xE2', '\xB4', '\x98', ' ', '\xE2', '\xB4', '\x9D', /* ⴄ ⴅ ⴔ ⴕ ⴁ ⴂ ⴘ ⴝ */
|
||||
'\0',
|
||||
'\xE1', '\xB2', '\x9C', ' ', '\xE1', '\xB2', '\x9F', ' ', '\xE1', '\xB2', '\xB3', ' ', '\xE1', '\xB2', '\xB8', ' ', '\xE1', '\xB2', '\x92', ' ', '\xE1', '\xB2', '\x94', ' ', '\xE1', '\xB2', '\x9D', ' ', '\xE1', '\xB2', '\xB4', /* Ნ Ჟ Ჳ Ჸ Გ Ე Ო Ჴ */
|
||||
'\0',
|
||||
'\xE1', '\xB2', '\x98', ' ', '\xE1', '\xB2', '\xB2', ' ', '\xE1', '\xB2', '\x9D', ' ', '\xE1', '\xB2', '\xA9', ' ', '\xE1', '\xB2', '\x9B', ' ', '\xE1', '\xB2', '\xA8', ' ', '\xE1', '\xB2', '\xAF', ' ', '\xE1', '\xB2', '\xBD', /* Ი Ჲ Ო Ჩ Მ Შ Ჯ Ჽ */
|
||||
'\0',
|
||||
'\xE2', '\xB0', '\x85', ' ', '\xE2', '\xB0', '\x94', ' ', '\xE2', '\xB0', '\xAA', ' ', '\xE2', '\xB0', '\x84', ' ', '\xE2', '\xB0', '\x82', ' ', '\xE2', '\xB0', '\x8A', ' ', '\xE2', '\xB0', '\xAB', ' ', '\xE2', '\xB0', '\x8B', /* Ⰵ Ⱄ Ⱚ Ⰴ Ⰲ Ⰺ Ⱛ Ⰻ */
|
||||
'\0',
|
||||
'\xE2', '\xB0', '\x85', ' ', '\xE2', '\xB0', '\x84', ' ', '\xE2', '\xB0', '\x82', ' ', '\xE2', '\xB0', '\xAA', ' ', '\xE2', '\xB0', '\x9E', ' ', '\xE2', '\xB0', '\xA1', ' ', '\xE2', '\xB0', '\x8A', ' ', '\xE2', '\xB0', '\x94', /* Ⰵ Ⰴ Ⰲ Ⱚ Ⱎ Ⱑ Ⰺ Ⱄ */
|
||||
|
@ -539,6 +543,8 @@
|
|||
{ AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM, 0 },
|
||||
{ AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP },
|
||||
{ AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER, 0 },
|
||||
{ AF_BLUE_STRING_GEORGIAN_MTAVRULI_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
|
||||
{ AF_BLUE_STRING_GEORGIAN_MTAVRULI_BOTTOM, 0 },
|
||||
{ AF_BLUE_STRING_MAX, 0 },
|
||||
{ AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
|
||||
{ AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM, 0 },
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Auto-fitter data for blue strings (body). */
|
||||
/* */
|
||||
/* Copyright 2013-2017 by */
|
||||
/* Copyright 2013-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
//
|
||||
// Auto-fitter data for blue strings.
|
||||
//
|
||||
// Copyright 2013-2017 by
|
||||
// Copyright 2013-2018 by
|
||||
// David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
//
|
||||
// This file is part of the FreeType project, and may only be used,
|
||||
|
@ -242,6 +242,11 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN:
|
|||
AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER
|
||||
"ⴄ ⴅ ⴔ ⴕ ⴁ ⴂ ⴘ ⴝ"
|
||||
|
||||
AF_BLUE_STRING_GEORGIAN_MTAVRULI_TOP
|
||||
"Ნ Ჟ Ჳ Ჸ Გ Ე Ო Ჴ"
|
||||
AF_BLUE_STRING_GEORGIAN_MTAVRULI_BOTTOM
|
||||
"Ი Ჲ Ო Ჩ Მ Შ Ჯ Ჽ"
|
||||
|
||||
AF_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP
|
||||
"Ⰵ Ⱄ Ⱚ Ⰴ Ⰲ Ⰺ Ⱛ Ⰻ"
|
||||
AF_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM
|
||||
|
@ -795,13 +800,14 @@ AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN:
|
|||
{ AF_BLUE_STRING_ETHIOPIC_BOTTOM, 0 }
|
||||
{ AF_BLUE_STRING_MAX, 0 }
|
||||
|
||||
// blue zones for Mtavruli are missing (not yet defined in Unicode)
|
||||
AF_BLUE_STRINGSET_GEOR
|
||||
{ AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
|
||||
AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
|
||||
{ AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM, 0 }
|
||||
{ AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
|
||||
{ AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER, 0 }
|
||||
{ AF_BLUE_STRING_GEORGIAN_MTAVRULI_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
|
||||
{ AF_BLUE_STRING_GEORGIAN_MTAVRULI_BOTTOM, 0 }
|
||||
{ AF_BLUE_STRING_MAX, 0 }
|
||||
|
||||
AF_BLUE_STRINGSET_GEOK
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
/* */
|
||||
/* Auto-fitter data for blue strings (specification). */
|
||||
/* */
|
||||
/* Copyright 2013-2017 by */
|
||||
/* Copyright 2013-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -147,119 +147,121 @@ FT_BEGIN_HEADER
|
|||
AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM = 1813,
|
||||
AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER = 1845,
|
||||
AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER = 1877,
|
||||
AF_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP = 1909,
|
||||
AF_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM = 1941,
|
||||
AF_BLUE_STRING_GLAGOLITIC_SMALL_TOP = 1973,
|
||||
AF_BLUE_STRING_GLAGOLITIC_SMALL_BOTTOM = 2005,
|
||||
AF_BLUE_STRING_GOTHIC_TOP = 2037,
|
||||
AF_BLUE_STRING_GOTHIC_BOTTOM = 2077,
|
||||
AF_BLUE_STRING_GREEK_CAPITAL_TOP = 2097,
|
||||
AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 2118,
|
||||
AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 2136,
|
||||
AF_BLUE_STRING_GREEK_SMALL = 2154,
|
||||
AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 2178,
|
||||
AF_BLUE_STRING_GUJARATI_TOP = 2202,
|
||||
AF_BLUE_STRING_GUJARATI_BOTTOM = 2234,
|
||||
AF_BLUE_STRING_GUJARATI_ASCENDER = 2266,
|
||||
AF_BLUE_STRING_GUJARATI_DESCENDER = 2316,
|
||||
AF_BLUE_STRING_GUJARATI_DIGIT_TOP = 2349,
|
||||
AF_BLUE_STRING_GURMUKHI_BASE = 2369,
|
||||
AF_BLUE_STRING_GURMUKHI_HEAD = 2401,
|
||||
AF_BLUE_STRING_GURMUKHI_TOP = 2433,
|
||||
AF_BLUE_STRING_GURMUKHI_BOTTOM = 2465,
|
||||
AF_BLUE_STRING_GURMUKHI_DIGIT_TOP = 2497,
|
||||
AF_BLUE_STRING_HEBREW_TOP = 2517,
|
||||
AF_BLUE_STRING_HEBREW_BOTTOM = 2541,
|
||||
AF_BLUE_STRING_HEBREW_DESCENDER = 2559,
|
||||
AF_BLUE_STRING_KANNADA_TOP = 2574,
|
||||
AF_BLUE_STRING_KANNADA_BOTTOM = 2618,
|
||||
AF_BLUE_STRING_KAYAH_LI_TOP = 2650,
|
||||
AF_BLUE_STRING_KAYAH_LI_BOTTOM = 2674,
|
||||
AF_BLUE_STRING_KAYAH_LI_ASCENDER = 2694,
|
||||
AF_BLUE_STRING_KAYAH_LI_DESCENDER = 2702,
|
||||
AF_BLUE_STRING_KAYAH_LI_LARGE_DESCENDER = 2714,
|
||||
AF_BLUE_STRING_KHMER_TOP = 2735,
|
||||
AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP = 2759,
|
||||
AF_BLUE_STRING_KHMER_BOTTOM = 2799,
|
||||
AF_BLUE_STRING_KHMER_DESCENDER = 2831,
|
||||
AF_BLUE_STRING_KHMER_LARGE_DESCENDER = 2865,
|
||||
AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP = 2952,
|
||||
AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM = 2960,
|
||||
AF_BLUE_STRING_LAO_TOP = 2968,
|
||||
AF_BLUE_STRING_LAO_BOTTOM = 3000,
|
||||
AF_BLUE_STRING_LAO_ASCENDER = 3032,
|
||||
AF_BLUE_STRING_LAO_LARGE_ASCENDER = 3048,
|
||||
AF_BLUE_STRING_LAO_DESCENDER = 3060,
|
||||
AF_BLUE_STRING_LATIN_CAPITAL_TOP = 3084,
|
||||
AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 3100,
|
||||
AF_BLUE_STRING_LATIN_SMALL_F_TOP = 3116,
|
||||
AF_BLUE_STRING_LATIN_SMALL_TOP = 3130,
|
||||
AF_BLUE_STRING_LATIN_SMALL_BOTTOM = 3146,
|
||||
AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 3162,
|
||||
AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP = 3172,
|
||||
AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM = 3192,
|
||||
AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP = 3212,
|
||||
AF_BLUE_STRING_LATIN_SUBS_SMALL = 3232,
|
||||
AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER = 3268,
|
||||
AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP = 3288,
|
||||
AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM = 3319,
|
||||
AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 3348,
|
||||
AF_BLUE_STRING_LATIN_SUPS_SMALL = 3374,
|
||||
AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 3399,
|
||||
AF_BLUE_STRING_LISU_TOP = 3410,
|
||||
AF_BLUE_STRING_LISU_BOTTOM = 3442,
|
||||
AF_BLUE_STRING_MALAYALAM_TOP = 3474,
|
||||
AF_BLUE_STRING_MALAYALAM_BOTTOM = 3518,
|
||||
AF_BLUE_STRING_MYANMAR_TOP = 3550,
|
||||
AF_BLUE_STRING_MYANMAR_BOTTOM = 3582,
|
||||
AF_BLUE_STRING_MYANMAR_ASCENDER = 3614,
|
||||
AF_BLUE_STRING_MYANMAR_DESCENDER = 3642,
|
||||
AF_BLUE_STRING_NKO_TOP = 3674,
|
||||
AF_BLUE_STRING_NKO_BOTTOM = 3698,
|
||||
AF_BLUE_STRING_NKO_SMALL_TOP = 3713,
|
||||
AF_BLUE_STRING_NKO_SMALL_BOTTOM = 3722,
|
||||
AF_BLUE_STRING_OL_CHIKI = 3734,
|
||||
AF_BLUE_STRING_OLD_TURKIC_TOP = 3758,
|
||||
AF_BLUE_STRING_OLD_TURKIC_BOTTOM = 3773,
|
||||
AF_BLUE_STRING_OSAGE_CAPITAL_TOP = 3793,
|
||||
AF_BLUE_STRING_OSAGE_CAPITAL_BOTTOM = 3833,
|
||||
AF_BLUE_STRING_OSAGE_CAPITAL_DESCENDER = 3863,
|
||||
AF_BLUE_STRING_OSAGE_SMALL_TOP = 3878,
|
||||
AF_BLUE_STRING_OSAGE_SMALL_BOTTOM = 3918,
|
||||
AF_BLUE_STRING_OSAGE_SMALL_ASCENDER = 3958,
|
||||
AF_BLUE_STRING_OSAGE_SMALL_DESCENDER = 3983,
|
||||
AF_BLUE_STRING_OSMANYA_TOP = 3998,
|
||||
AF_BLUE_STRING_OSMANYA_BOTTOM = 4038,
|
||||
AF_BLUE_STRING_SAURASHTRA_TOP = 4078,
|
||||
AF_BLUE_STRING_SAURASHTRA_BOTTOM = 4110,
|
||||
AF_BLUE_STRING_SHAVIAN_TOP = 4130,
|
||||
AF_BLUE_STRING_SHAVIAN_BOTTOM = 4140,
|
||||
AF_BLUE_STRING_SHAVIAN_DESCENDER = 4165,
|
||||
AF_BLUE_STRING_SHAVIAN_SMALL_TOP = 4175,
|
||||
AF_BLUE_STRING_SHAVIAN_SMALL_BOTTOM = 4210,
|
||||
AF_BLUE_STRING_SINHALA_TOP = 4225,
|
||||
AF_BLUE_STRING_SINHALA_BOTTOM = 4257,
|
||||
AF_BLUE_STRING_SINHALA_DESCENDER = 4289,
|
||||
AF_BLUE_STRING_SUNDANESE_TOP = 4333,
|
||||
AF_BLUE_STRING_SUNDANESE_BOTTOM = 4357,
|
||||
AF_BLUE_STRING_SUNDANESE_DESCENDER = 4389,
|
||||
AF_BLUE_STRING_TAI_VIET_TOP = 4397,
|
||||
AF_BLUE_STRING_TAI_VIET_BOTTOM = 4417,
|
||||
AF_BLUE_STRING_TAMIL_TOP = 4429,
|
||||
AF_BLUE_STRING_TAMIL_BOTTOM = 4461,
|
||||
AF_BLUE_STRING_TELUGU_TOP = 4493,
|
||||
AF_BLUE_STRING_TELUGU_BOTTOM = 4521,
|
||||
AF_BLUE_STRING_THAI_TOP = 4549,
|
||||
AF_BLUE_STRING_THAI_BOTTOM = 4573,
|
||||
AF_BLUE_STRING_THAI_ASCENDER = 4601,
|
||||
AF_BLUE_STRING_THAI_LARGE_ASCENDER = 4613,
|
||||
AF_BLUE_STRING_THAI_DESCENDER = 4625,
|
||||
AF_BLUE_STRING_THAI_LARGE_DESCENDER = 4641,
|
||||
AF_BLUE_STRING_THAI_DIGIT_TOP = 4649,
|
||||
AF_BLUE_STRING_TIFINAGH = 4661,
|
||||
AF_BLUE_STRING_VAI_TOP = 4693,
|
||||
AF_BLUE_STRING_VAI_BOTTOM = 4725,
|
||||
af_blue_1_1 = 4756,
|
||||
AF_BLUE_STRING_GEORGIAN_MTAVRULI_TOP = 1909,
|
||||
AF_BLUE_STRING_GEORGIAN_MTAVRULI_BOTTOM = 1941,
|
||||
AF_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP = 1973,
|
||||
AF_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM = 2005,
|
||||
AF_BLUE_STRING_GLAGOLITIC_SMALL_TOP = 2037,
|
||||
AF_BLUE_STRING_GLAGOLITIC_SMALL_BOTTOM = 2069,
|
||||
AF_BLUE_STRING_GOTHIC_TOP = 2101,
|
||||
AF_BLUE_STRING_GOTHIC_BOTTOM = 2141,
|
||||
AF_BLUE_STRING_GREEK_CAPITAL_TOP = 2161,
|
||||
AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 2182,
|
||||
AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 2200,
|
||||
AF_BLUE_STRING_GREEK_SMALL = 2218,
|
||||
AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 2242,
|
||||
AF_BLUE_STRING_GUJARATI_TOP = 2266,
|
||||
AF_BLUE_STRING_GUJARATI_BOTTOM = 2298,
|
||||
AF_BLUE_STRING_GUJARATI_ASCENDER = 2330,
|
||||
AF_BLUE_STRING_GUJARATI_DESCENDER = 2380,
|
||||
AF_BLUE_STRING_GUJARATI_DIGIT_TOP = 2413,
|
||||
AF_BLUE_STRING_GURMUKHI_BASE = 2433,
|
||||
AF_BLUE_STRING_GURMUKHI_HEAD = 2465,
|
||||
AF_BLUE_STRING_GURMUKHI_TOP = 2497,
|
||||
AF_BLUE_STRING_GURMUKHI_BOTTOM = 2529,
|
||||
AF_BLUE_STRING_GURMUKHI_DIGIT_TOP = 2561,
|
||||
AF_BLUE_STRING_HEBREW_TOP = 2581,
|
||||
AF_BLUE_STRING_HEBREW_BOTTOM = 2605,
|
||||
AF_BLUE_STRING_HEBREW_DESCENDER = 2623,
|
||||
AF_BLUE_STRING_KANNADA_TOP = 2638,
|
||||
AF_BLUE_STRING_KANNADA_BOTTOM = 2682,
|
||||
AF_BLUE_STRING_KAYAH_LI_TOP = 2714,
|
||||
AF_BLUE_STRING_KAYAH_LI_BOTTOM = 2738,
|
||||
AF_BLUE_STRING_KAYAH_LI_ASCENDER = 2758,
|
||||
AF_BLUE_STRING_KAYAH_LI_DESCENDER = 2766,
|
||||
AF_BLUE_STRING_KAYAH_LI_LARGE_DESCENDER = 2778,
|
||||
AF_BLUE_STRING_KHMER_TOP = 2799,
|
||||
AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP = 2823,
|
||||
AF_BLUE_STRING_KHMER_BOTTOM = 2863,
|
||||
AF_BLUE_STRING_KHMER_DESCENDER = 2895,
|
||||
AF_BLUE_STRING_KHMER_LARGE_DESCENDER = 2929,
|
||||
AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP = 3016,
|
||||
AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM = 3024,
|
||||
AF_BLUE_STRING_LAO_TOP = 3032,
|
||||
AF_BLUE_STRING_LAO_BOTTOM = 3064,
|
||||
AF_BLUE_STRING_LAO_ASCENDER = 3096,
|
||||
AF_BLUE_STRING_LAO_LARGE_ASCENDER = 3112,
|
||||
AF_BLUE_STRING_LAO_DESCENDER = 3124,
|
||||
AF_BLUE_STRING_LATIN_CAPITAL_TOP = 3148,
|
||||
AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 3164,
|
||||
AF_BLUE_STRING_LATIN_SMALL_F_TOP = 3180,
|
||||
AF_BLUE_STRING_LATIN_SMALL_TOP = 3194,
|
||||
AF_BLUE_STRING_LATIN_SMALL_BOTTOM = 3210,
|
||||
AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 3226,
|
||||
AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP = 3236,
|
||||
AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM = 3256,
|
||||
AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP = 3276,
|
||||
AF_BLUE_STRING_LATIN_SUBS_SMALL = 3296,
|
||||
AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER = 3332,
|
||||
AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP = 3352,
|
||||
AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM = 3383,
|
||||
AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 3412,
|
||||
AF_BLUE_STRING_LATIN_SUPS_SMALL = 3438,
|
||||
AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 3463,
|
||||
AF_BLUE_STRING_LISU_TOP = 3474,
|
||||
AF_BLUE_STRING_LISU_BOTTOM = 3506,
|
||||
AF_BLUE_STRING_MALAYALAM_TOP = 3538,
|
||||
AF_BLUE_STRING_MALAYALAM_BOTTOM = 3582,
|
||||
AF_BLUE_STRING_MYANMAR_TOP = 3614,
|
||||
AF_BLUE_STRING_MYANMAR_BOTTOM = 3646,
|
||||
AF_BLUE_STRING_MYANMAR_ASCENDER = 3678,
|
||||
AF_BLUE_STRING_MYANMAR_DESCENDER = 3706,
|
||||
AF_BLUE_STRING_NKO_TOP = 3738,
|
||||
AF_BLUE_STRING_NKO_BOTTOM = 3762,
|
||||
AF_BLUE_STRING_NKO_SMALL_TOP = 3777,
|
||||
AF_BLUE_STRING_NKO_SMALL_BOTTOM = 3786,
|
||||
AF_BLUE_STRING_OL_CHIKI = 3798,
|
||||
AF_BLUE_STRING_OLD_TURKIC_TOP = 3822,
|
||||
AF_BLUE_STRING_OLD_TURKIC_BOTTOM = 3837,
|
||||
AF_BLUE_STRING_OSAGE_CAPITAL_TOP = 3857,
|
||||
AF_BLUE_STRING_OSAGE_CAPITAL_BOTTOM = 3897,
|
||||
AF_BLUE_STRING_OSAGE_CAPITAL_DESCENDER = 3927,
|
||||
AF_BLUE_STRING_OSAGE_SMALL_TOP = 3942,
|
||||
AF_BLUE_STRING_OSAGE_SMALL_BOTTOM = 3982,
|
||||
AF_BLUE_STRING_OSAGE_SMALL_ASCENDER = 4022,
|
||||
AF_BLUE_STRING_OSAGE_SMALL_DESCENDER = 4047,
|
||||
AF_BLUE_STRING_OSMANYA_TOP = 4062,
|
||||
AF_BLUE_STRING_OSMANYA_BOTTOM = 4102,
|
||||
AF_BLUE_STRING_SAURASHTRA_TOP = 4142,
|
||||
AF_BLUE_STRING_SAURASHTRA_BOTTOM = 4174,
|
||||
AF_BLUE_STRING_SHAVIAN_TOP = 4194,
|
||||
AF_BLUE_STRING_SHAVIAN_BOTTOM = 4204,
|
||||
AF_BLUE_STRING_SHAVIAN_DESCENDER = 4229,
|
||||
AF_BLUE_STRING_SHAVIAN_SMALL_TOP = 4239,
|
||||
AF_BLUE_STRING_SHAVIAN_SMALL_BOTTOM = 4274,
|
||||
AF_BLUE_STRING_SINHALA_TOP = 4289,
|
||||
AF_BLUE_STRING_SINHALA_BOTTOM = 4321,
|
||||
AF_BLUE_STRING_SINHALA_DESCENDER = 4353,
|
||||
AF_BLUE_STRING_SUNDANESE_TOP = 4397,
|
||||
AF_BLUE_STRING_SUNDANESE_BOTTOM = 4421,
|
||||
AF_BLUE_STRING_SUNDANESE_DESCENDER = 4453,
|
||||
AF_BLUE_STRING_TAI_VIET_TOP = 4461,
|
||||
AF_BLUE_STRING_TAI_VIET_BOTTOM = 4481,
|
||||
AF_BLUE_STRING_TAMIL_TOP = 4493,
|
||||
AF_BLUE_STRING_TAMIL_BOTTOM = 4525,
|
||||
AF_BLUE_STRING_TELUGU_TOP = 4557,
|
||||
AF_BLUE_STRING_TELUGU_BOTTOM = 4585,
|
||||
AF_BLUE_STRING_THAI_TOP = 4613,
|
||||
AF_BLUE_STRING_THAI_BOTTOM = 4637,
|
||||
AF_BLUE_STRING_THAI_ASCENDER = 4665,
|
||||
AF_BLUE_STRING_THAI_LARGE_ASCENDER = 4677,
|
||||
AF_BLUE_STRING_THAI_DESCENDER = 4689,
|
||||
AF_BLUE_STRING_THAI_LARGE_DESCENDER = 4705,
|
||||
AF_BLUE_STRING_THAI_DIGIT_TOP = 4713,
|
||||
AF_BLUE_STRING_TIFINAGH = 4725,
|
||||
AF_BLUE_STRING_VAI_TOP = 4757,
|
||||
AF_BLUE_STRING_VAI_BOTTOM = 4789,
|
||||
af_blue_1_1 = 4820,
|
||||
#ifdef AF_CONFIG_OPTION_CJK
|
||||
AF_BLUE_STRING_CJK_TOP = af_blue_1_1 + 1,
|
||||
AF_BLUE_STRING_CJK_BOTTOM = af_blue_1_1 + 203,
|
||||
|
@ -336,41 +338,41 @@ FT_BEGIN_HEADER
|
|||
AF_BLUE_STRINGSET_DSRT = 75,
|
||||
AF_BLUE_STRINGSET_ETHI = 80,
|
||||
AF_BLUE_STRINGSET_GEOR = 83,
|
||||
AF_BLUE_STRINGSET_GEOK = 88,
|
||||
AF_BLUE_STRINGSET_GLAG = 95,
|
||||
AF_BLUE_STRINGSET_GOTH = 100,
|
||||
AF_BLUE_STRINGSET_GREK = 103,
|
||||
AF_BLUE_STRINGSET_GUJR = 110,
|
||||
AF_BLUE_STRINGSET_GURU = 116,
|
||||
AF_BLUE_STRINGSET_HEBR = 122,
|
||||
AF_BLUE_STRINGSET_KALI = 126,
|
||||
AF_BLUE_STRINGSET_KHMR = 132,
|
||||
AF_BLUE_STRINGSET_KHMS = 138,
|
||||
AF_BLUE_STRINGSET_KNDA = 141,
|
||||
AF_BLUE_STRINGSET_LAO = 144,
|
||||
AF_BLUE_STRINGSET_LATN = 150,
|
||||
AF_BLUE_STRINGSET_LATB = 157,
|
||||
AF_BLUE_STRINGSET_LATP = 164,
|
||||
AF_BLUE_STRINGSET_LISU = 171,
|
||||
AF_BLUE_STRINGSET_MLYM = 174,
|
||||
AF_BLUE_STRINGSET_MYMR = 177,
|
||||
AF_BLUE_STRINGSET_NKOO = 182,
|
||||
AF_BLUE_STRINGSET_NONE = 187,
|
||||
AF_BLUE_STRINGSET_OLCK = 188,
|
||||
AF_BLUE_STRINGSET_ORKH = 191,
|
||||
AF_BLUE_STRINGSET_OSGE = 194,
|
||||
AF_BLUE_STRINGSET_OSMA = 202,
|
||||
AF_BLUE_STRINGSET_SAUR = 205,
|
||||
AF_BLUE_STRINGSET_SHAW = 208,
|
||||
AF_BLUE_STRINGSET_SINH = 214,
|
||||
AF_BLUE_STRINGSET_SUND = 218,
|
||||
AF_BLUE_STRINGSET_TAML = 222,
|
||||
AF_BLUE_STRINGSET_TAVT = 225,
|
||||
AF_BLUE_STRINGSET_TELU = 228,
|
||||
AF_BLUE_STRINGSET_TFNG = 231,
|
||||
AF_BLUE_STRINGSET_THAI = 234,
|
||||
AF_BLUE_STRINGSET_VAII = 242,
|
||||
af_blue_2_1 = 245,
|
||||
AF_BLUE_STRINGSET_GEOK = 90,
|
||||
AF_BLUE_STRINGSET_GLAG = 97,
|
||||
AF_BLUE_STRINGSET_GOTH = 102,
|
||||
AF_BLUE_STRINGSET_GREK = 105,
|
||||
AF_BLUE_STRINGSET_GUJR = 112,
|
||||
AF_BLUE_STRINGSET_GURU = 118,
|
||||
AF_BLUE_STRINGSET_HEBR = 124,
|
||||
AF_BLUE_STRINGSET_KALI = 128,
|
||||
AF_BLUE_STRINGSET_KHMR = 134,
|
||||
AF_BLUE_STRINGSET_KHMS = 140,
|
||||
AF_BLUE_STRINGSET_KNDA = 143,
|
||||
AF_BLUE_STRINGSET_LAO = 146,
|
||||
AF_BLUE_STRINGSET_LATN = 152,
|
||||
AF_BLUE_STRINGSET_LATB = 159,
|
||||
AF_BLUE_STRINGSET_LATP = 166,
|
||||
AF_BLUE_STRINGSET_LISU = 173,
|
||||
AF_BLUE_STRINGSET_MLYM = 176,
|
||||
AF_BLUE_STRINGSET_MYMR = 179,
|
||||
AF_BLUE_STRINGSET_NKOO = 184,
|
||||
AF_BLUE_STRINGSET_NONE = 189,
|
||||
AF_BLUE_STRINGSET_OLCK = 190,
|
||||
AF_BLUE_STRINGSET_ORKH = 193,
|
||||
AF_BLUE_STRINGSET_OSGE = 196,
|
||||
AF_BLUE_STRINGSET_OSMA = 204,
|
||||
AF_BLUE_STRINGSET_SAUR = 207,
|
||||
AF_BLUE_STRINGSET_SHAW = 210,
|
||||
AF_BLUE_STRINGSET_SINH = 216,
|
||||
AF_BLUE_STRINGSET_SUND = 220,
|
||||
AF_BLUE_STRINGSET_TAML = 224,
|
||||
AF_BLUE_STRINGSET_TAVT = 227,
|
||||
AF_BLUE_STRINGSET_TELU = 230,
|
||||
AF_BLUE_STRINGSET_TFNG = 233,
|
||||
AF_BLUE_STRINGSET_THAI = 236,
|
||||
AF_BLUE_STRINGSET_VAII = 244,
|
||||
af_blue_2_1 = 247,
|
||||
#ifdef AF_CONFIG_OPTION_CJK
|
||||
AF_BLUE_STRINGSET_HANI = af_blue_2_1 + 0,
|
||||
af_blue_2_1_1 = af_blue_2_1 + 2,
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Auto-fitter data for blue strings (specification). */
|
||||
/* */
|
||||
/* Copyright 2013-2017 by */
|
||||
/* Copyright 2013-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Auto-fitter hinting routines for CJK writing system (body). */
|
||||
/* */
|
||||
/* Copyright 2006-2017 by */
|
||||
/* Copyright 2006-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -16,9 +16,9 @@
|
|||
/***************************************************************************/
|
||||
|
||||
/*
|
||||
* The algorithm is based on akito's autohint patch, available here:
|
||||
* The algorithm is based on akito's autohint patch, archived at
|
||||
*
|
||||
* http://www.kde.gr.jp/~akito/patch/freetype2/
|
||||
* https://web.archive.org/web/20051219160454/http://www.kde.gr.jp:80/~akito/patch/freetype2/2.1.7/
|
||||
*
|
||||
*/
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* Auto-fitter hinting routines for CJK writing system (specification). */
|
||||
/* */
|
||||
/* Copyright 2006-2017 by */
|
||||
/* Copyright 2006-2018 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue