From 3ae90fe7e66d63f344fd1552e03466816e577108 Mon Sep 17 00:00:00 2001 From: chenxianyin <420373550@qq.com> Date: Thu, 6 Aug 2020 15:14:44 +0800 Subject: [PATCH] update freetype to 2.10.0 --- .../x86_64/include/freetype/config/ftconfig.h | 465 +- .../x86_64/include/freetype/config/ftheader.h | 578 +- .../x86_64/include/freetype/config/ftoption.h | 1385 ++-- .../x86_64/include/freetype/config/ftstdlib.h | 169 +- android/x86_64/include/freetype/freetype.h | 6702 +++++++++-------- android/x86_64/include/freetype/ft2build.h | 68 +- android/x86_64/include/freetype/ftadvanc.h | 249 +- android/x86_64/include/freetype/ftautoh.h | 402 - android/x86_64/include/freetype/ftbbox.h | 129 +- android/x86_64/include/freetype/ftbdf.h | 249 +- android/x86_64/include/freetype/ftbitmap.h | 446 +- android/x86_64/include/freetype/ftbzip2.h | 148 +- android/x86_64/include/freetype/ftcache.h | 1217 +-- android/x86_64/include/freetype/ftcffdrv.h | 262 - android/x86_64/include/freetype/ftchapters.h | 242 +- android/x86_64/include/freetype/ftcid.h | 111 +- android/x86_64/include/freetype/ftcolor.h | 311 + android/x86_64/include/freetype/ftdriver.h | 1232 +++ android/x86_64/include/freetype/fterrdef.h | 84 +- android/x86_64/include/freetype/fterrors.h | 251 +- android/x86_64/include/freetype/ftfntfmt.h | 115 +- android/x86_64/include/freetype/ftgasp.h | 95 +- android/x86_64/include/freetype/ftglyph.h | 990 +-- android/x86_64/include/freetype/ftgxval.h | 502 +- android/x86_64/include/freetype/ftgzip.h | 227 +- android/x86_64/include/freetype/ftimage.h | 1780 ++--- android/x86_64/include/freetype/ftincrem.h | 160 +- android/x86_64/include/freetype/ftlcdfil.h | 295 +- android/x86_64/include/freetype/ftlist.h | 421 +- android/x86_64/include/freetype/ftlzw.h | 145 +- android/x86_64/include/freetype/ftmac.h | 416 +- android/x86_64/include/freetype/ftmm.h | 918 ++- android/x86_64/include/freetype/ftmodapi.h | 934 ++- android/x86_64/include/freetype/ftmoderr.h | 193 +- android/x86_64/include/freetype/ftotval.h | 315 +- android/x86_64/include/freetype/ftoutln.h | 937 +-- android/x86_64/include/freetype/ftparams.h | 204 + android/x86_64/include/freetype/ftpfr.h | 262 +- android/x86_64/include/freetype/ftrender.h | 230 +- android/x86_64/include/freetype/ftsizes.h | 239 +- android/x86_64/include/freetype/ftsnames.h | 351 +- android/x86_64/include/freetype/ftstroke.h | 441 +- android/x86_64/include/freetype/ftsynth.h | 52 +- android/x86_64/include/freetype/ftsystem.h | 144 +- android/x86_64/include/freetype/fttrigon.h | 90 +- android/x86_64/include/freetype/ftttdrv.h | 170 - android/x86_64/include/freetype/fttypes.h | 857 +-- android/x86_64/include/freetype/ftwinfnt.h | 172 +- android/x86_64/include/freetype/ftxf86.h | 84 - android/x86_64/include/freetype/t1tables.h | 624 +- android/x86_64/include/freetype/ttnameid.h | 741 +- android/x86_64/include/freetype/tttables.h | 1141 +-- android/x86_64/include/freetype/tttags.h | 52 +- android/x86_64/include/freetype/ttunpat.h | 60 - android/x86_64/libfreetype.a | Bin 1006390 -> 1111494 bytes 55 files changed, 15999 insertions(+), 13058 deletions(-) delete mode 100644 android/x86_64/include/freetype/ftautoh.h delete mode 100644 android/x86_64/include/freetype/ftcffdrv.h create mode 100644 android/x86_64/include/freetype/ftcolor.h create mode 100644 android/x86_64/include/freetype/ftdriver.h create mode 100644 android/x86_64/include/freetype/ftparams.h delete mode 100644 android/x86_64/include/freetype/ftttdrv.h delete mode 100644 android/x86_64/include/freetype/ftxf86.h delete mode 100644 android/x86_64/include/freetype/ttunpat.h diff --git a/android/x86_64/include/freetype/config/ftconfig.h b/android/x86_64/include/freetype/config/ftconfig.h index 0c8844ec..d5b27acc 100644 --- a/android/x86_64/include/freetype/config/ftconfig.h +++ b/android/x86_64/include/freetype/config/ftconfig.h @@ -1,44 +1,42 @@ /* ftconfig.h. Generated from ftconfig.in by configure. */ -/***************************************************************************/ -/* */ -/* ftconfig.in */ -/* */ -/* UNIX-specific configuration file (specification only). */ -/* */ -/* Copyright 1996-2004, 2006-2009, 2011, 2013, 2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftconfig.in + * + * UNIX-specific configuration file (specification only). + * + * Copyright (C) 1996-2019 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. + * + */ - /*************************************************************************/ - /* */ - /* This header file contains a number of macro definitions that are used */ - /* by the rest of the engine. Most of the macros here are automatically */ - /* determined at compile time, and you should not need to change it to */ - /* port FreeType, except to compile the library with a non-ANSI */ - /* compiler. */ - /* */ - /* Note however that if some specific modifications are needed, we */ - /* advise you to place a modified copy in your build directory. */ - /* */ - /* The build directory is usually `builds/', and contains */ - /* system-specific files that are always included first when building */ - /* the library. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * This header file contains a number of macro definitions that are used by + * the rest of the engine. Most of the macros here are automatically + * determined at compile time, and you should not need to change it to port + * FreeType, except to compile the library with a non-ANSI compiler. + * + * Note however that if some specific modifications are needed, we advise + * you to place a modified copy in your build directory. + * + * The build directory is usually `builds/`, and contains + * system-specific files that are always included first when building the + * library. + * + */ +#ifndef FTCONFIG_H_ +#define FTCONFIG_H_ -#ifndef __FTCONFIG_H__ -#define __FTCONFIG_H__ - -#include +#include "../ft2build.h" #include FT_CONFIG_OPTIONS_H #include FT_CONFIG_STANDARD_LIBRARY_H @@ -46,30 +44,28 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* PLATFORM-SPECIFIC CONFIGURATION MACROS */ - /* */ - /* These macros can be toggled to suit a specific system. The current */ - /* ones are defaults used to compile FreeType in an ANSI C environment */ - /* (16bit compilers are also supported). Copy this file to your own */ - /* `builds/' directory, and edit it to port the engine. */ - /* */ - /*************************************************************************/ - + /************************************************************************** + * + * PLATFORM-SPECIFIC CONFIGURATION MACROS + * + * These macros can be toggled to suit a specific system. The current ones + * are defaults used to compile FreeType in an ANSI C environment (16bit + * compilers are also supported). Copy this file to your own + * `builds/` directory, and edit it to port the engine. + * + */ #define HAVE_UNISTD_H 1 #define HAVE_FCNTL_H 1 #define HAVE_STDINT_H 1 - - /* There are systems (like the Texas Instruments 'C54x) where a `char' */ - /* has 16 bits. ANSI C says that sizeof(char) is always 1. Since an */ - /* `int' has 16 bits also for this system, sizeof(int) gives 1 which */ - /* is probably unexpected. */ - /* */ - /* `CHAR_BIT' (defined in limits.h) gives the number of bits in a */ - /* `char' type. */ + /* There are systems (like the Texas Instruments 'C54x) where a `char` */ + /* has 16~bits. ANSI~C says that `sizeof(char)` is always~1. Since an */ + /* `int` has 16~bits also for this system, `sizeof(int)` gives~1 which */ + /* is probably unexpected. */ + /* */ + /* `CHAR_BIT` (defined in `limits.h`) gives the number of bits in a */ + /* `char` type. */ #ifndef FT_CHAR_BIT #define FT_CHAR_BIT CHAR_BIT @@ -86,67 +82,66 @@ FT_BEGIN_HEADER #else /* !FT_USE_AUTOCONF_SIZEOF_TYPES */ - /* Following cpp computation of the bit length of int and long */ - /* is copied from default include/config/ftconfig.h. */ - /* If any improvement is required for this file, it should be */ - /* applied to the original header file for the builders that */ - /* does not use configure script. */ + /* Following cpp computation of the bit length of `int` and `long` */ + /* is copied from default `include/freetype/config/ftconfig.h`. */ + /* If any improvement is required for this file, it should be */ + /* applied to the original header file for the builders that do */ + /* not use configure script. */ - /* The size of an `int' type. */ + /* 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 - /* The size of a `long' type. A five-byte `long' (as used e.g. on the */ + /* 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 #endif /* !FT_USE_AUTOCONF_SIZEOF_TYPES */ - - /* FT_UNUSED is a macro used to indicate that a given parameter is not */ - /* used -- this is only used to get rid of unpleasant compiler warnings */ + /* `FT_UNUSED` indicates that a given parameter is not used -- */ + /* this is only used to get rid of unpleasant compiler warnings. */ #ifndef FT_UNUSED #define FT_UNUSED( arg ) ( (arg) = (arg) ) #endif - /*************************************************************************/ - /* */ - /* AUTOMATIC CONFIGURATION MACROS */ - /* */ - /* These macros are computed from the ones defined above. Don't touch */ - /* their definition, unless you know precisely what you are doing. No */ - /* porter should need to mess with them. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * AUTOMATIC CONFIGURATION MACROS + * + * These macros are computed from the ones defined above. Don't touch + * their definition, unless you know precisely what you are doing. No + * porter should need to mess with them. + * + */ - /*************************************************************************/ - /* */ - /* Mac support */ - /* */ - /* This is the only necessary change, so it is defined here instead */ - /* providing a new configuration file. */ - /* */ + /************************************************************************** + * + * Mac support + * + * This is the only necessary change, so it is defined here instead + * providing a new configuration file. + */ #if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) ) - /* no Carbon frameworks for 64bit 10.4.x */ - /* AvailabilityMacros.h is available since Mac OS X 10.2, */ - /* so guess the system version by maximum errno before inclusion */ + /* No Carbon frameworks for 64bit 10.4.x. */ + /* `AvailabilityMacros.h` is available since Mac OS X 10.2, */ + /* so guess the system version by maximum errno before inclusion. */ #include #ifdef ECANCELED /* defined since 10.2 */ #include "AvailabilityMacros.h" @@ -166,7 +161,7 @@ FT_BEGIN_HEADER #endif - /* Fix compiler warning with sgi compiler */ + /* Fix compiler warning with sgi compiler. */ #if defined( __sgi ) && !defined( __GNUC__ ) #if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 ) #pragma set woff 3505 @@ -174,33 +169,33 @@ FT_BEGIN_HEADER #endif - /*************************************************************************/ - /* */ - /*
*/ - /* basic_types */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * basic_types + * + */ - /*************************************************************************/ - /* */ - /* */ - /* FT_Int16 */ - /* */ - /* */ - /* A typedef for a 16bit signed integer type. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Int16 + * + * @description: + * A typedef for a 16bit signed integer type. + */ typedef signed short FT_Int16; - /*************************************************************************/ - /* */ - /* */ - /* FT_UInt16 */ - /* */ - /* */ - /* A typedef for a 16bit unsigned integer type. */ - /* */ + /************************************************************************** + * + * @type: + * FT_UInt16 + * + * @description: + * A typedef for a 16bit unsigned integer type. + */ typedef unsigned short FT_UInt16; /* */ @@ -209,50 +204,50 @@ FT_BEGIN_HEADER /* this #if 0 ... #endif clause is for documentation purposes */ #if 0 - /*************************************************************************/ - /* */ - /* */ - /* FT_Int32 */ - /* */ - /* */ - /* A typedef for a 32bit signed integer type. The size depends on */ - /* the configuration. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Int32 + * + * @description: + * A typedef for a 32bit signed integer type. The size depends on the + * configuration. + */ typedef signed XXX FT_Int32; - /*************************************************************************/ - /* */ - /* */ - /* FT_UInt32 */ - /* */ - /* A typedef for a 32bit unsigned integer type. The size depends on */ - /* the configuration. */ - /* */ + /************************************************************************** + * + * @type: + * FT_UInt32 + * + * A typedef for a 32bit unsigned integer type. The size depends on the + * configuration. + */ typedef unsigned XXX FT_UInt32; - /*************************************************************************/ - /* */ - /* */ - /* FT_Int64 */ - /* */ - /* A typedef for a 64bit signed integer type. The size depends on */ - /* the configuration. Only defined if there is real 64bit support; */ - /* otherwise, it gets emulated with a structure (if necessary). */ - /* */ + /************************************************************************** + * + * @type: + * FT_Int64 + * + * A typedef for a 64bit signed integer type. The size depends on the + * configuration. Only defined if there is real 64bit support; + * otherwise, it gets emulated with a structure (if necessary). + */ typedef signed XXX FT_Int64; - /*************************************************************************/ - /* */ - /* */ - /* FT_UInt64 */ - /* */ - /* A typedef for a 64bit unsigned integer type. The size depends on */ - /* the configuration. Only defined if there is real 64bit support; */ - /* otherwise, it gets emulated with a structure (if necessary). */ - /* */ + /************************************************************************** + * + * @type: + * FT_UInt64 + * + * A typedef for a 64bit unsigned integer type. The size depends on the + * configuration. Only defined if there is real 64bit support; + * otherwise, it gets emulated with a structure (if necessary). + */ typedef unsigned XXX FT_UInt64; /* */ @@ -274,7 +269,7 @@ FT_BEGIN_HEADER #endif - /* look up an integer type that is at least 32 bits */ + /* look up an integer type that is at least 32~bits */ #if FT_SIZEOF_INT >= 4 typedef int FT_Fast; @@ -288,37 +283,53 @@ FT_BEGIN_HEADER #endif - /* determine whether we have a 64-bit int type for platforms without */ - /* Autoconf */ + /* determine whether we have a 64-bit `int` type for platforms without */ + /* Autoconf */ #if FT_SIZEOF_LONG == 8 - /* FT_LONG64 must be defined if a 64-bit type is available */ + /* `FT_LONG64` must be defined if a 64-bit type is available */ #define FT_LONG64 #define FT_INT64 long #define FT_UINT64 unsigned long - /*************************************************************************/ - /* */ - /* A 64-bit data type may create compilation problems if you compile */ - /* in strict ANSI mode. To avoid them, we disable other 64-bit data */ - /* types if __STDC__ is defined. You can however ignore this rule */ - /* by defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */ - /* */ + /* we handle the LLP64 scheme separately for GCC and clang, */ + /* suppressing the `long long` warning */ +#elif ( FT_SIZEOF_LONG == 4 ) && \ + defined( HAVE_LONG_LONG_INT ) && \ + defined( __GNUC__ ) +#pragma GCC diagnostic ignored "-Wlong-long" +#define FT_LONG64 +#define FT_INT64 long long int +#define FT_UINT64 unsigned long long int + + /************************************************************************** + * + * A 64-bit data type may create compilation problems if you compile in + * strict ANSI mode. To avoid them, we disable other 64-bit data types if + * `__STDC__` is defined. You can however ignore this rule by defining the + * `FT_CONFIG_OPTION_FORCE_INT64` configuration macro. + */ #elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 ) -#if defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */ +#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L - /* this compiler provides the __int64 type */ +#define FT_LONG64 +#define FT_INT64 long long int +#define FT_UINT64 unsigned long long int + +#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */ + + /* this compiler provides the `__int64` type */ #define FT_LONG64 #define FT_INT64 __int64 #define FT_UINT64 unsigned __int64 #elif defined( __BORLANDC__ ) /* Borland C++ */ - /* XXXX: We should probably check the value of __BORLANDC__ in order */ - /* to test the compiler version. */ + /* XXXX: We should probably check the value of `__BORLANDC__` in order */ + /* to test the compiler version. */ - /* this compiler provides the __int64 type */ + /* this compiler provides the `__int64` type */ #define FT_LONG64 #define FT_INT64 __int64 #define FT_UINT64 unsigned __int64 @@ -335,12 +346,12 @@ FT_BEGIN_HEADER #elif defined( __GNUC__ ) - /* GCC provides the `long long' type */ + /* GCC provides the `long long` type */ #define FT_LONG64 #define FT_INT64 long long int #define FT_UINT64 unsigned long long int -#endif /* _MSC_VER */ +#endif /* __STDC_VERSION__ >= 199901L */ #endif /* FT_SIZEOF_LONG == 8 */ @@ -350,11 +361,46 @@ FT_BEGIN_HEADER #endif +#ifdef _WIN64 + /* only 64bit Windows uses the LLP64 data model, i.e., */ + /* 32bit integers, 64bit pointers */ +#define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x) +#else +#define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x) +#endif + + + /************************************************************************** + * + * miscellaneous + * + */ + + #define FT_BEGIN_STMNT do { #define FT_END_STMNT } while ( 0 ) #define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT + /* `typeof` condition taken from gnulib's `intprops.h` header file */ +#if ( ( defined( __GNUC__ ) && __GNUC__ >= 2 ) || \ + ( defined( __IBMC__ ) && __IBMC__ >= 1210 && \ + defined( __IBM__TYPEOF__ ) ) || \ + ( defined( __SUNPRO_C ) && __SUNPRO_C >= 0x5110 && !__STDC__ ) ) +#define FT_TYPEOF( type ) ( __typeof__ ( type ) ) +#else +#define FT_TYPEOF( type ) /* empty */ +#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 @@ -376,6 +422,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 @@ -398,14 +450,68 @@ 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_EXPORT ) +#define FT_EXPORT( x ) __declspec( dllexport ) x +#elif defined( __GNUC__ ) && __GNUC__ >= 4 +#define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x +#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x550 +#define FT_EXPORT( x ) __global x +#elif defined( __cplusplus ) #define FT_EXPORT( x ) extern "C" x #else #define FT_EXPORT( x ) extern x #endif +#else + +#if defined( _WIN32 ) && defined( DLL_IMPORT ) +#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 */ @@ -430,18 +536,25 @@ FT_BEGIN_HEADER #endif /* !FT_EXPORT_VAR */ + /* The following macros are needed to compile the library with a */ /* C++ compiler and with 16bit compilers. */ /* */ - /* This is special. Within C++, you must specify `extern "C"' for */ + /* This is special. Within C++, you must specify `extern "C"` for */ /* functions which are used via function pointers, and you also */ /* must do that for structures which contain function pointers to */ /* assure C linkage -- it's not possible to have (local) anonymous */ /* 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. */ @@ -451,7 +564,7 @@ FT_BEGIN_HEADER /* */ /* */ /* Some 16bit compilers have to redefine these macros to insert */ - /* the infamous `_cdecl' or `__fastcall' declarations. */ + /* the infamous `_cdecl` or `__fastcall` declarations. */ /* */ #ifndef FT_CALLBACK_DEF #ifdef __cplusplus @@ -461,6 +574,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" @@ -475,7 +598,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTCONFIG_H__ */ +#endif /* FTCONFIG_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/config/ftheader.h b/android/x86_64/include/freetype/config/ftheader.h index b6236299..696d6ba9 100644 --- a/android/x86_64/include/freetype/config/ftheader.h +++ b/android/x86_64/include/freetype/config/ftheader.h @@ -1,22 +1,22 @@ -/***************************************************************************/ -/* */ -/* ftheader.h */ -/* */ -/* Build macros of the FreeType 2 library. */ -/* */ -/* Copyright 1996-2008, 2010, 2012, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftheader.h + * + * Build macros of the FreeType 2 library. + * + * Copyright (C) 1996-2019 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 __FT_HEADER_H__ -#define __FT_HEADER_H__ +#ifndef FTHEADER_H_ +#define FTHEADER_H_ /*@***********************************************************************/ @@ -27,7 +27,7 @@ /* */ /* This macro is used in association with @FT_END_HEADER in header */ /* files to ensure that the declarations within are properly */ - /* encapsulated in an `extern "C" { .. }' block when included from a */ + /* encapsulated in an `extern "C" { .. }` block when included from a */ /* C++ compiler. */ /* */ #ifdef __cplusplus @@ -45,7 +45,7 @@ /* */ /* This macro is used in association with @FT_BEGIN_HEADER in header */ /* files to ensure that the declarations within are properly */ - /* encapsulated in an `extern "C" { .. }' block when included from a */ + /* encapsulated in an `extern "C" { .. }` block when included from a */ /* C++ compiler. */ /* */ #ifdef __cplusplus @@ -55,778 +55,760 @@ #endif - /*************************************************************************/ - /* */ - /* Aliases for the FreeType 2 public and configuration files. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * Aliases for the FreeType 2 public and configuration files. + * + */ - /*************************************************************************/ - /* */ - /*
*/ - /* header_file_macros */ - /* */ - /* */ - /* Header File Macros */ - /* */ - /* <Abstract> */ - /* Macro definitions used to #include specific header files. */ - /* */ - /* <Description> */ - /* The following macros are defined to the name of specific */ - /* FreeType~2 header files. They can be used directly in #include */ - /* statements as in: */ - /* */ - /* { */ - /* #include FT_FREETYPE_H */ - /* #include FT_MULTIPLE_MASTERS_H */ - /* #include FT_GLYPH_H */ - /* } */ - /* */ - /* There are several reasons why we are now using macros to name */ - /* public header files. The first one is that such macros are not */ - /* limited to the infamous 8.3~naming rule required by DOS (and */ - /* `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h'). */ - /* */ - /* The second reason is that it allows for more flexibility in the */ - /* way FreeType~2 is installed on a given system. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * header_file_macros + * + * @title: + * Header File Macros + * + * @abstract: + * Macro definitions used to `#include` specific header files. + * + * @description: + * The following macros are defined to the name of specific FreeType~2 + * header files. They can be used directly in `#include` statements as + * in: + * + * ``` + * #include FT_FREETYPE_H + * #include FT_MULTIPLE_MASTERS_H + * #include FT_GLYPH_H + * ``` + * + * There are several reasons why we are now using macros to name public + * header files. The first one is that such macros are not limited to + * the infamous 8.3~naming rule required by DOS (and + * `FT_MULTIPLE_MASTERS_H` is a lot more meaningful than `ftmm.h`). + * + * The second reason is that it allows for more flexibility in the way + * FreeType~2 is installed on a given system. + * + */ /* configuration files */ - /************************************************************************* + /************************************************************************** * * @macro: * FT_CONFIG_CONFIG_H * * @description: - * A macro used in #include statements to name the file containing + * A macro used in `#include` statements to name the file containing * FreeType~2 configuration data. * */ #ifndef FT_CONFIG_CONFIG_H -#define FT_CONFIG_CONFIG_H <config/ftconfig.h> +#define FT_CONFIG_CONFIG_H <freetype/config/ftconfig.h> #endif - /************************************************************************* + /************************************************************************** * * @macro: * FT_CONFIG_STANDARD_LIBRARY_H * * @description: - * A macro used in #include statements to name the file containing + * A macro used in `#include` statements to name the file containing * FreeType~2 interface to the standard C library functions. * */ #ifndef FT_CONFIG_STANDARD_LIBRARY_H -#define FT_CONFIG_STANDARD_LIBRARY_H <config/ftstdlib.h> +#define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h> #endif - /************************************************************************* + /************************************************************************** * * @macro: * FT_CONFIG_OPTIONS_H * * @description: - * A macro used in #include statements to name the file containing + * A macro used in `#include` statements to name the file containing * FreeType~2 project-specific configuration options. * */ #ifndef FT_CONFIG_OPTIONS_H -#define FT_CONFIG_OPTIONS_H <config/ftoption.h> +#define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h> #endif - /************************************************************************* + /************************************************************************** * * @macro: * FT_CONFIG_MODULES_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * list of FreeType~2 modules that are statically linked to new library * instances in @FT_Init_FreeType. * */ #ifndef FT_CONFIG_MODULES_H -#define FT_CONFIG_MODULES_H <config/ftmodule.h> +#define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h> #endif /* */ /* public headers */ - /************************************************************************* + /************************************************************************** * * @macro: * FT_FREETYPE_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * base FreeType~2 API. * */ -#define FT_FREETYPE_H <freetype.h> +#define FT_FREETYPE_H <freetype/freetype.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_ERRORS_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * list of FreeType~2 error codes (and messages). * * It is included by @FT_FREETYPE_H. * */ -#define FT_ERRORS_H <fterrors.h> +#define FT_ERRORS_H <freetype/fterrors.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_MODULE_ERRORS_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * list of FreeType~2 module error offsets (and messages). * */ -#define FT_MODULE_ERRORS_H <ftmoderr.h> +#define FT_MODULE_ERRORS_H <freetype/ftmoderr.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_SYSTEM_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * FreeType~2 interface to low-level operations (i.e., memory management * and stream i/o). * * It is included by @FT_FREETYPE_H. * */ -#define FT_SYSTEM_H <ftsystem.h> +#define FT_SYSTEM_H <freetype/ftsystem.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_IMAGE_H * * @description: - * A macro used in #include statements to name the file containing type + * A macro used in `#include` statements to name the file containing type * definitions related to glyph images (i.e., bitmaps, outlines, * scan-converter parameters). * * It is included by @FT_FREETYPE_H. * */ -#define FT_IMAGE_H <ftimage.h> +#define FT_IMAGE_H <freetype/ftimage.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_TYPES_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * basic data types defined by FreeType~2. * * It is included by @FT_FREETYPE_H. * */ -#define FT_TYPES_H <fttypes.h> +#define FT_TYPES_H <freetype/fttypes.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_LIST_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * list management API of FreeType~2. * * (Most applications will never need to include this file.) * */ -#define FT_LIST_H <ftlist.h> +#define FT_LIST_H <freetype/ftlist.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_OUTLINE_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * scalable outline management API of FreeType~2. * */ -#define FT_OUTLINE_H <ftoutln.h> +#define FT_OUTLINE_H <freetype/ftoutln.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_SIZES_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * API which manages multiple @FT_Size objects per face. * */ -#define FT_SIZES_H <ftsizes.h> +#define FT_SIZES_H <freetype/ftsizes.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_MODULE_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * module management API of FreeType~2. * */ -#define FT_MODULE_H <ftmodapi.h> +#define FT_MODULE_H <freetype/ftmodapi.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_RENDER_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * renderer module management API of FreeType~2. * */ -#define FT_RENDER_H <ftrender.h> +#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: * FT_AUTOHINTER_H * * @description: - * A macro used in #include statements to name the file containing + * 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 <ftautoh.h> +#define FT_AUTOHINTER_H FT_DRIVER_H - /************************************************************************* + /************************************************************************** * * @macro: * FT_CFF_DRIVER_H * * @description: - * A macro used in #include statements to name the file containing + * 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 <ftcffdrv.h> +#define FT_CFF_DRIVER_H FT_DRIVER_H - /************************************************************************* + /************************************************************************** * * @macro: * FT_TRUETYPE_DRIVER_H * * @description: - * A macro used in #include statements to name the file containing + * 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 <ftttdrv.h> +#define FT_TRUETYPE_DRIVER_H FT_DRIVER_H - /************************************************************************* + /************************************************************************** + * + * @macro: + * FT_PCF_DRIVER_H + * + * @description: + * 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 FT_DRIVER_H + + + /************************************************************************** * * @macro: * FT_TYPE1_TABLES_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * types and API specific to the Type~1 format. * */ -#define FT_TYPE1_TABLES_H <t1tables.h> +#define FT_TYPE1_TABLES_H <freetype/t1tables.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_TRUETYPE_IDS_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * enumeration values which identify name strings, languages, encodings, * etc. This file really contains a _large_ set of constant macro * definitions, taken from the TrueType and OpenType specifications. * */ -#define FT_TRUETYPE_IDS_H <ttnameid.h> +#define FT_TRUETYPE_IDS_H <freetype/ttnameid.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_TRUETYPE_TABLES_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * types and API specific to the TrueType (as well as OpenType) format. * */ -#define FT_TRUETYPE_TABLES_H <tttables.h> +#define FT_TRUETYPE_TABLES_H <freetype/tttables.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_TRUETYPE_TAGS_H * * @description: - * A macro used in #include statements to name the file containing the - * definitions of TrueType four-byte `tags' which identify blocks in + * A macro used in `#include` statements to name the file containing the + * definitions of TrueType four-byte 'tags' which identify blocks in * SFNT-based font formats (i.e., TrueType and OpenType). * */ -#define FT_TRUETYPE_TAGS_H <tttags.h> +#define FT_TRUETYPE_TAGS_H <freetype/tttags.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_BDF_H * * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which accesses BDF-specific strings from a - * face. + * A macro used in `#include` statements to name the file containing the + * definitions of an API which accesses BDF-specific strings from a face. * */ -#define FT_BDF_H <ftbdf.h> +#define FT_BDF_H <freetype/ftbdf.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_CID_H * * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which access CID font information from a - * face. + * A macro used in `#include` statements to name the file containing the + * definitions of an API which access CID font information from a face. * */ -#define FT_CID_H <ftcid.h> +#define FT_CID_H <freetype/ftcid.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_GZIP_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * definitions of an API which supports gzip-compressed files. * */ -#define FT_GZIP_H <ftgzip.h> +#define FT_GZIP_H <freetype/ftgzip.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_LZW_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * definitions of an API which supports LZW-compressed files. * */ -#define FT_LZW_H <ftlzw.h> +#define FT_LZW_H <freetype/ftlzw.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_BZIP2_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * definitions of an API which supports bzip2-compressed files. * */ -#define FT_BZIP2_H <ftbzip2.h> +#define FT_BZIP2_H <freetype/ftbzip2.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_WINFONTS_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * definitions of an API which supports Windows FNT files. * */ -#define FT_WINFONTS_H <ftwinfnt.h> +#define FT_WINFONTS_H <freetype/ftwinfnt.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_GLYPH_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * API of the optional glyph management component. * */ -#define FT_GLYPH_H <ftglyph.h> +#define FT_GLYPH_H <freetype/ftglyph.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_BITMAP_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * API of the optional bitmap conversion component. * */ -#define FT_BITMAP_H <ftbitmap.h> +#define FT_BITMAP_H <freetype/ftbitmap.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_BBOX_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * API of the optional exact bounding box computation routines. * */ -#define FT_BBOX_H <ftbbox.h> +#define FT_BBOX_H <freetype/ftbbox.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_CACHE_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * API of the optional FreeType~2 cache sub-system. * */ -#define FT_CACHE_H <ftcache.h> +#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: * FT_MAC_H * * @description: - * A macro used in #include statements to name the file containing the - * Macintosh-specific FreeType~2 API. The latter is used to access - * fonts embedded in resource forks. + * A macro used in `#include` statements to name the file containing the + * Macintosh-specific FreeType~2 API. The latter is used to access fonts + * embedded in resource forks. * * This header file must be explicitly included by client applications * compiled on the Mac (note that the base API still works though). * */ -#define FT_MAC_H <ftmac.h> +#define FT_MAC_H <freetype/ftmac.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_MULTIPLE_MASTERS_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * optional multiple-masters management API of FreeType~2. * */ -#define FT_MULTIPLE_MASTERS_H <ftmm.h> +#define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_SFNT_NAMES_H * * @description: - * A macro used in #include statements to name the file containing the - * optional FreeType~2 API which accesses embedded `name' strings in + * A macro used in `#include` statements to name the file containing the + * optional FreeType~2 API which accesses embedded 'name' strings in * SFNT-based font formats (i.e., TrueType and OpenType). * */ -#define FT_SFNT_NAMES_H <ftsnames.h> +#define FT_SFNT_NAMES_H <freetype/ftsnames.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_OPENTYPE_VALIDATE_H * * @description: - * A macro used in #include statements to name the file containing the - * optional FreeType~2 API which validates OpenType tables (BASE, GDEF, - * GPOS, GSUB, JSTF). + * A macro used in `#include` statements to name the file containing the + * optional FreeType~2 API which validates OpenType tables ('BASE', + * 'GDEF', 'GPOS', 'GSUB', 'JSTF'). * */ -#define FT_OPENTYPE_VALIDATE_H <ftotval.h> +#define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_GX_VALIDATE_H * * @description: - * A macro used in #include statements to name the file containing the - * optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat, - * mort, morx, bsln, just, kern, opbd, trak, prop). + * A macro used in `#include` statements to name the file containing the + * optional FreeType~2 API which validates TrueTypeGX/AAT tables ('feat', + * 'mort', 'morx', 'bsln', 'just', 'kern', 'opbd', 'trak', 'prop'). * */ -#define FT_GX_VALIDATE_H <ftgxval.h> +#define FT_GX_VALIDATE_H <freetype/ftgxval.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_PFR_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * FreeType~2 API which accesses PFR-specific data. * */ -#define FT_PFR_H <ftpfr.h> +#define FT_PFR_H <freetype/ftpfr.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_STROKER_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * FreeType~2 API which provides functions to stroke outline paths. */ -#define FT_STROKER_H <ftstroke.h> +#define FT_STROKER_H <freetype/ftstroke.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_SYNTHESIS_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * FreeType~2 API which performs artificial obliquing and emboldening. */ -#define FT_SYNTHESIS_H <ftsynth.h> +#define FT_SYNTHESIS_H <freetype/ftsynth.h> - /************************************************************************* + /************************************************************************** * * @macro: - * FT_XFREE86_H + * FT_FONT_FORMATS_H * * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which provides functions specific to the XFree86 and - * X.Org X11 servers. + * A macro used in `#include` statements to name the file containing the + * FreeType~2 API which provides functions specific to font formats. */ -#define FT_XFREE86_H <ftxf86.h> +#define FT_FONT_FORMATS_H <freetype/ftfntfmt.h> + + /* deprecated */ +#define FT_XFREE86_H FT_FONT_FORMATS_H - /************************************************************************* + /************************************************************************** * * @macro: * FT_TRIGONOMETRY_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * FreeType~2 API which performs trigonometric computations (e.g., * cosines and arc tangents). */ -#define FT_TRIGONOMETRY_H <fttrigon.h> +#define FT_TRIGONOMETRY_H <freetype/fttrigon.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_LCD_FILTER_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * FreeType~2 API which performs color filtering for subpixel rendering. */ -#define FT_LCD_FILTER_H <ftlcdfil.h> +#define FT_LCD_FILTER_H <freetype/ftlcdfil.h> - /************************************************************************* - * - * @macro: - * FT_UNPATENTED_HINTING_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs color filtering for subpixel rendering. - */ -#define FT_UNPATENTED_HINTING_H <ttunpat.h> - - - /************************************************************************* + /************************************************************************** * * @macro: * FT_INCREMENTAL_H * * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs color filtering for subpixel rendering. + * A macro used in `#include` statements to name the file containing the + * FreeType~2 API which performs incremental glyph loading. */ -#define FT_INCREMENTAL_H <ftincrem.h> +#define FT_INCREMENTAL_H <freetype/ftincrem.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_GASP_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * FreeType~2 API which returns entries from the TrueType GASP table. */ -#define FT_GASP_H <ftgasp.h> +#define FT_GASP_H <freetype/ftgasp.h> - /************************************************************************* + /************************************************************************** * * @macro: * FT_ADVANCES_H * * @description: - * A macro used in #include statements to name the file containing the + * A macro used in `#include` statements to name the file containing the * FreeType~2 API which returns individual and ranged glyph advances. */ -#define FT_ADVANCES_H <ftadvanc.h> +#define FT_ADVANCES_H <freetype/ftadvanc.h> + + + /************************************************************************** + * + * @macro: + * FT_COLOR_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * FreeType~2 API which handles the OpenType 'CPAL' table. + */ +#define FT_COLOR_H <freetype/ftcolor.h> /* */ -#define FT_ERROR_DEFINITIONS_H <fterrdef.h> + /* 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. */ + /* 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 <ftcache.h> -#define FT_CACHE_INTERNAL_MRU_H <ftcache.h> -#define FT_CACHE_INTERNAL_MANAGER_H <ftcache.h> -#define FT_CACHE_INTERNAL_CACHE_H <ftcache.h> -#define FT_CACHE_INTERNAL_GLYPH_H <ftcache.h> -#define FT_CACHE_INTERNAL_IMAGE_H <ftcache.h> -#define FT_CACHE_INTERNAL_SBITS_H <ftcache.h> - - -#define FT_INCREMENTAL_H <ftincrem.h> - -#define FT_TRUETYPE_UNPATENTED_H <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 /* - * Include internal headers definitions from <internal/...> - * only when building the library. + * Include internal headers definitions from `<internal/...>` only when + * building the library. */ #ifdef FT2_BUILD_LIBRARY -#define FT_INTERNAL_INTERNAL_H <internal/internal.h> +#define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h> #include FT_INTERNAL_INTERNAL_H #endif /* FT2_BUILD_LIBRARY */ -#endif /* __FT2_BUILD_H__ */ +#endif /* FTHEADER_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/config/ftoption.h b/android/x86_64/include/freetype/config/ftoption.h index 2b0b67e7..5e3e5673 100644 --- a/android/x86_64/include/freetype/config/ftoption.h +++ b/android/x86_64/include/freetype/config/ftoption.h @@ -1,69 +1,71 @@ -/***************************************************************************/ -/* */ -/* ftoption.h */ -/* */ -/* User-selectable configuration macros (specification only). */ -/* */ -/* Copyright 1996-2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftoption.h + * + * User-selectable configuration macros (specification only). + * + * Copyright (C) 1996-2019 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 __FTOPTION_H__ -#define __FTOPTION_H__ +#ifndef FTOPTION_H_ +#define FTOPTION_H_ -#include <ft2build.h> +#include "../ft2build.h" FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* USER-SELECTABLE CONFIGURATION MACROS */ - /* */ - /* This file contains the default configuration macro definitions for */ - /* a standard build of the FreeType library. There are three ways to */ - /* use this file to build project-specific versions of the library: */ - /* */ - /* - You can modify this file by hand, but this is not recommended in */ - /* cases where you would like to build several versions of the */ - /* library from a single source directory. */ - /* */ - /* - You can put a copy of this file in your build directory, more */ - /* precisely in `$BUILD/config/ftoption.h', where `$BUILD' is the */ - /* name of a directory that is included _before_ the FreeType include */ - /* path during compilation. */ - /* */ - /* The default FreeType Makefiles and Jamfiles use the build */ - /* directory `builds/<system>' by default, but you can easily change */ - /* that for your own projects. */ - /* */ - /* - Copy the file <ft2build.h> to `$BUILD/ft2build.h' and modify it */ - /* slightly to pre-define the macro FT_CONFIG_OPTIONS_H used to */ - /* locate this file during the build. For example, */ - /* */ - /* #define FT_CONFIG_OPTIONS_H <myftoptions.h> */ - /* #include <config/ftheader.h> */ - /* */ - /* will use `$BUILD/myftoptions.h' instead of this file for macro */ - /* definitions. */ - /* */ - /* Note also that you can similarly pre-define the macro */ - /* FT_CONFIG_MODULES_H used to locate the file listing of the modules */ - /* that are statically linked to the library at compile time. By */ - /* default, this file is <config/ftmodule.h>. */ - /* */ - /* We highly recommend using the third method whenever possible. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * USER-SELECTABLE CONFIGURATION MACROS + * + * This file contains the default configuration macro definitions for a + * standard build of the FreeType library. There are three ways to use + * this file to build project-specific versions of the library: + * + * - You can modify this file by hand, but this is not recommended in + * cases where you would like to build several versions of the library + * from a single source directory. + * + * - You can put a copy of this file in your build directory, more + * precisely in `$BUILD/freetype/config/ftoption.h`, where `$BUILD` is + * the name of a directory that is included _before_ the FreeType include + * path during compilation. + * + * The default FreeType Makefiles and Jamfiles use the build directory + * `builds/<system>` by default, but you can easily change that for your + * own projects. + * + * - Copy the file "ft2build.h" to `$BUILD/ft2build.h` and modify it + * slightly to pre-define the macro `FT_CONFIG_OPTIONS_H` used to locate + * this file during the build. For example, + * + * ``` + * #define FT_CONFIG_OPTIONS_H <myftoptions.h> + * #include <freetype/config/ftheader.h> + * ``` + * + * will use `$BUILD/myftoptions.h` instead of this file for macro + * definitions. + * + * Note also that you can similarly pre-define the macro + * `FT_CONFIG_MODULES_H` used to locate the file listing of the modules + * that are statically linked to the library at compile time. By + * default, this file is `<freetype/config/ftmodule.h>`. + * + * We highly recommend using the third method whenever possible. + * + */ /*************************************************************************/ @@ -75,428 +77,433 @@ FT_BEGIN_HEADER /*************************************************************************/ - /*************************************************************************/ - /* */ - /* Uncomment the line below if you want to activate sub-pixel rendering */ - /* (a.k.a. LCD rendering, or ClearType) in this build of the library. */ - /* */ - /* Note that this feature is covered by several Microsoft patents */ - /* and should not be activated in any default build of the library. */ - /* */ - /* This macro has no impact on the FreeType API, only on its */ - /* _implementation_. For example, using FT_RENDER_MODE_LCD when calling */ - /* FT_Render_Glyph still generates a bitmap that is 3 times wider than */ - /* the original size in case this macro isn't defined; however, each */ - /* triplet of subpixels has R=G=B. */ - /* */ - /* This is done to allow FreeType clients to run unmodified, forcing */ - /* them to display normal gray-level anti-aliased glyphs. */ - /* */ + /*#************************************************************************ + * + * 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 @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> + * <whitespace> + * <module-name2> ':' + * <property-name2> '=' <property-value2> + * ... + * ``` + * + * Example: + * + * ``` + * FREETYPE_PROPERTIES=truetype:interpreter-version=35 \ + * cff:no-stem-darkening=1 \ + * autofitter:warping=1 + * ``` + * + */ +#define FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES + + + /************************************************************************** + * + * Uncomment the line below if you want to activate LCD rendering + * technology similar to ClearType in this build of the library. This + * technology triples the resolution in the direction color subpixels. To + * mitigate color fringes inherent to this technology, you also need to + * explicitly set up LCD filtering. + * + * Note that this feature is covered by several Microsoft patents and + * should not be activated in any default build of the library. When this + * macro is not defined, FreeType offers alternative LCD rendering + * technology that produces excellent output without LCD filtering. + */ /* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ - /*************************************************************************/ - /* */ - /* Many compilers provide a non-ANSI 64-bit data type that can be used */ - /* by FreeType to speed up some computations. However, this will create */ - /* some problems when compiling the library in strict ANSI mode. */ - /* */ - /* For this reason, the use of 64-bit integers is normally disabled when */ - /* the __STDC__ macro is defined. You can however disable this by */ - /* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here. */ - /* */ - /* For most compilers, this will only create compilation warnings when */ - /* building the library. */ - /* */ - /* ObNote: The compiler-specific 64-bit integers are detected in the */ - /* file `ftconfig.h' either statically or through the */ - /* `configure' script on supported platforms. */ - /* */ + /************************************************************************** + * + * Many compilers provide a non-ANSI 64-bit data type that can be used by + * FreeType to speed up some computations. However, this will create some + * problems when compiling the library in strict ANSI mode. + * + * For this reason, the use of 64-bit integers is normally disabled when + * the `__STDC__` macro is defined. You can however disable this by + * defining the macro `FT_CONFIG_OPTION_FORCE_INT64` here. + * + * For most compilers, this will only create compilation warnings when + * building the library. + * + * ObNote: The compiler-specific 64-bit integers are detected in the + * file `ftconfig.h` either statically or through the `configure` + * script on supported platforms. + */ #undef FT_CONFIG_OPTION_FORCE_INT64 - /*************************************************************************/ - /* */ - /* If this macro is defined, do not try to use an assembler version of */ - /* performance-critical functions (e.g. FT_MulFix). You should only do */ - /* that to verify that the assembler function works properly, or to */ - /* execute benchmark tests of the various implementations. */ + /************************************************************************** + * + * If this macro is defined, do not try to use an assembler version of + * performance-critical functions (e.g., @FT_MulFix). You should only do + * that to verify that the assembler function works properly, or to execute + * benchmark tests of the various implementations. + */ /* #define FT_CONFIG_OPTION_NO_ASSEMBLER */ - /*************************************************************************/ - /* */ - /* If this macro is defined, try to use an inlined assembler version of */ - /* the `FT_MulFix' function, which is a `hotspot' when loading and */ - /* hinting glyphs, and which should be executed as fast as possible. */ - /* */ - /* Note that if your compiler or CPU is not supported, this will default */ - /* to the standard and portable implementation found in `ftcalc.c'. */ - /* */ + /************************************************************************** + * + * If this macro is defined, try to use an inlined assembler version of the + * @FT_MulFix function, which is a 'hotspot' when loading and hinting + * glyphs, and which should be executed as fast as possible. + * + * Note that if your compiler or CPU is not supported, this will default to + * the standard and portable implementation found in `ftcalc.c`. + */ #define FT_CONFIG_OPTION_INLINE_MULFIX - /*************************************************************************/ - /* */ - /* LZW-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `compress' program. This is mostly used to parse many of the PCF */ - /* files that come with various X11 distributions. The implementation */ - /* uses NetBSD's `zopen' to partially uncompress the file on the fly */ - /* (see src/lzw/ftgzip.c). */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ + /************************************************************************** + * + * LZW-compressed file support. + * + * FreeType now handles font files that have been compressed with the + * `compress` program. This is mostly used to parse many of the PCF + * files that come with various X11 distributions. The implementation + * uses NetBSD's `zopen` to partially uncompress the file on the fly (see + * `src/lzw/ftgzip.c`). + * + * Define this macro if you want to enable this 'feature'. + */ #define FT_CONFIG_OPTION_USE_LZW - /*************************************************************************/ - /* */ - /* Gzip-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `gzip' program. This is mostly used to parse many of the PCF files */ - /* that come with XFree86. The implementation uses `zlib' to */ - /* partially uncompress the file on the fly (see src/gzip/ftgzip.c). */ - /* */ - /* Define this macro if you want to enable this `feature'. See also */ - /* the macro FT_CONFIG_OPTION_SYSTEM_ZLIB below. */ - /* */ + /************************************************************************** + * + * Gzip-compressed file support. + * + * FreeType now handles font files that have been compressed with the + * `gzip` program. This is mostly used to parse many of the PCF files + * that come with XFree86. The implementation uses 'zlib' to partially + * uncompress the file on the fly (see `src/gzip/ftgzip.c`). + * + * Define this macro if you want to enable this 'feature'. See also the + * macro `FT_CONFIG_OPTION_SYSTEM_ZLIB` below. + */ #define FT_CONFIG_OPTION_USE_ZLIB - /*************************************************************************/ - /* */ - /* ZLib library selection */ - /* */ - /* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */ - /* It allows FreeType's `ftgzip' component to link to the system's */ - /* installation of the ZLib library. This is useful on systems like */ - /* Unix or VMS where it generally is already available. */ - /* */ - /* If you let it undefined, the component will use its own copy */ - /* of the zlib sources instead. These have been modified to be */ - /* included directly within the component and *not* export external */ - /* function names. This allows you to link any program with FreeType */ - /* _and_ ZLib without linking conflicts. */ - /* */ - /* Do not #undef this macro here since the build system might define */ - /* it for certain configurations only. */ - /* */ -/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ + /************************************************************************** + * + * ZLib library selection + * + * This macro is only used when `FT_CONFIG_OPTION_USE_ZLIB` is defined. + * It allows FreeType's 'ftgzip' component to link to the system's + * installation of the ZLib library. This is useful on systems like + * Unix or VMS where it generally is already available. + * + * If you let it undefined, the component will use its own copy of the + * zlib sources instead. These have been modified to be included + * directly within the component and **not** export external function + * names. This allows you to link any program with FreeType _and_ ZLib + * without linking conflicts. + * + * 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 precedence, overwriting the value + * here with the configured one. + */ +#define FT_CONFIG_OPTION_SYSTEM_ZLIB - /*************************************************************************/ - /* */ - /* Bzip2-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `bzip2' program. This is mostly used to parse many of the PCF */ - /* files that come with XFree86. The implementation uses `libbz2' to */ - /* partially uncompress the file on the fly (see src/bzip2/ftbzip2.c). */ - /* Contrary to gzip, bzip2 currently is not included and need to use */ - /* the system available bzip2 implementation. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -/* #define FT_CONFIG_OPTION_USE_BZIP2 */ + /************************************************************************** + * + * Bzip2-compressed file support. + * + * FreeType now handles font files that have been compressed with the + * `bzip2` program. This is mostly used to parse many of the PCF files + * that come with XFree86. The implementation uses `libbz2` to partially + * uncompress the file on the fly (see `src/bzip2/ftbzip2.c`). Contrary + * to gzip, bzip2 currently is not included and need to use the system + * available bzip2 implementation. + * + * 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 precedence, overwriting the value + * here with the configured one. + */ +/* #undef FT_CONFIG_OPTION_USE_BZIP2 */ - /*************************************************************************/ - /* */ - /* Define to disable the use of file stream functions and types, FILE, */ - /* fopen() etc. Enables the use of smaller system libraries on embedded */ - /* systems that have multiple system libraries, some with or without */ - /* file stream support, in the cases where file stream support is not */ - /* necessary such as memory loading of font files. */ - /* */ + /************************************************************************** + * + * Define to disable the use of file stream functions and types, `FILE`, + * `fopen`, etc. Enables the use of smaller system libraries on embedded + * systems that have multiple system libraries, some with or without file + * stream support, in the cases where file stream support is not necessary + * such as memory loading of font files. + */ /* #define FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT */ - /*************************************************************************/ - /* */ - /* PNG bitmap support. */ - /* */ - /* FreeType now handles loading color bitmap glyphs in the PNG format. */ - /* This requires help from the external libpng library. Uncompressed */ - /* color bitmaps do not need any external libraries and will be */ - /* supported regardless of this configuration. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -/* #define FT_CONFIG_OPTION_USE_PNG */ + /************************************************************************** + * + * PNG bitmap support. + * + * FreeType now handles loading color bitmap glyphs in the PNG format. + * This requires help from the external libpng library. Uncompressed + * color bitmaps do not need any external libraries and will be supported + * regardless of this configuration. + * + * 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 precedence, overwriting the value + * here with the configured one. + */ +/* #undef FT_CONFIG_OPTION_USE_PNG */ - /*************************************************************************/ - /* */ - /* HarfBuzz support. */ - /* */ - /* FreeType uses the HarfBuzz library to improve auto-hinting of */ - /* OpenType fonts. If available, many glyphs not directly addressable */ - /* by a font's character map will be hinted also. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -/* #define FT_CONFIG_OPTION_USE_HARFBUZZ */ + /************************************************************************** + * + * HarfBuzz support. + * + * FreeType uses the HarfBuzz library to improve auto-hinting of OpenType + * fonts. If available, many glyphs not directly addressable by a font's + * character map will be hinted also. + * + * 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 precedence, overwriting the value + * here with the configured one. + */ +/* #undef 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 */ - /* */ - /* By default, FreeType 2 is compiled with the `psnames' module. This */ - /* module is in charge of converting a glyph name string into a */ - /* Unicode value, or return a Macintosh standard glyph name for the */ - /* use with the TrueType `post' table. */ - /* */ - /* Undefine this macro if you do not want `psnames' compiled in your */ - /* build of FreeType. This has the following effects: */ - /* */ - /* - The TrueType driver will provide its own set of glyph names, */ - /* if you build it to support postscript names in the TrueType */ - /* `post' table. */ - /* */ - /* - The Type 1 driver will not be able to synthesize a Unicode */ - /* charmap out of the glyphs found in the fonts. */ - /* */ - /* You would normally undefine this configuration macro when building */ - /* a version of FreeType that doesn't contain a Type 1 or CFF driver. */ - /* */ + /************************************************************************** + * + * Glyph Postscript Names handling + * + * By default, FreeType 2 is compiled with the 'psnames' module. This + * module is in charge of converting a glyph name string into a Unicode + * value, or return a Macintosh standard glyph name for the use with the + * TrueType 'post' table. + * + * Undefine this macro if you do not want 'psnames' compiled in your + * build of FreeType. This has the following effects: + * + * - The TrueType driver will provide its own set of glyph names, if you + * build it to support postscript names in the TrueType 'post' table, + * but will not synthesize a missing Unicode charmap. + * + * - The Type~1 driver will not be able to synthesize a Unicode charmap + * out of the glyphs found in the fonts. + * + * You would normally undefine this configuration macro when building a + * version of FreeType that doesn't contain a Type~1 or CFF driver. + */ #define FT_CONFIG_OPTION_POSTSCRIPT_NAMES - /*************************************************************************/ - /* */ - /* Postscript Names to Unicode Values support */ - /* */ - /* By default, FreeType 2 is built with the `PSNames' module compiled */ - /* in. Among other things, the module is used to convert a glyph name */ - /* into a Unicode value. This is especially useful in order to */ - /* synthesize on the fly a Unicode charmap from the CFF/Type 1 driver */ - /* through a big table named the `Adobe Glyph List' (AGL). */ - /* */ - /* Undefine this macro if you do not want the Adobe Glyph List */ - /* compiled in your `PSNames' module. The Type 1 driver will not be */ - /* able to synthesize a Unicode charmap out of the glyphs found in the */ - /* fonts. */ - /* */ + /************************************************************************** + * + * Postscript Names to Unicode Values support + * + * By default, FreeType~2 is built with the 'psnames' module compiled in. + * Among other things, the module is used to convert a glyph name into a + * Unicode value. This is especially useful in order to synthesize on + * the fly a Unicode charmap from the CFF/Type~1 driver through a big + * table named the 'Adobe Glyph List' (AGL). + * + * Undefine this macro if you do not want the Adobe Glyph List compiled + * in your 'psnames' module. The Type~1 driver will not be able to + * synthesize a Unicode charmap out of the glyphs found in the fonts. + */ #define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST - /*************************************************************************/ - /* */ - /* Support for Mac fonts */ - /* */ - /* Define this macro if you want support for outline fonts in Mac */ - /* format (mac dfont, mac resource, macbinary containing a mac */ - /* resource) on non-Mac platforms. */ - /* */ - /* Note that the `FOND' resource isn't checked. */ - /* */ + /************************************************************************** + * + * Support for Mac fonts + * + * Define this macro if you want support for outline fonts in Mac format + * (mac dfont, mac resource, macbinary containing a mac resource) on + * non-Mac platforms. + * + * Note that the 'FOND' resource isn't checked. + */ #define FT_CONFIG_OPTION_MAC_FONTS - /*************************************************************************/ - /* */ - /* Guessing methods to access embedded resource forks */ - /* */ - /* Enable extra Mac fonts support on non-Mac platforms (e.g. */ - /* GNU/Linux). */ - /* */ - /* Resource forks which include fonts data are stored sometimes in */ - /* locations which users or developers don't expected. In some cases, */ - /* resource forks start with some offset from the head of a file. In */ - /* other cases, the actual resource fork is stored in file different */ - /* from what the user specifies. If this option is activated, */ - /* FreeType tries to guess whether such offsets or different file */ - /* names must be used. */ - /* */ - /* Note that normal, direct access of resource forks is controlled via */ - /* the FT_CONFIG_OPTION_MAC_FONTS option. */ - /* */ + /************************************************************************** + * + * Guessing methods to access embedded resource forks + * + * Enable extra Mac fonts support on non-Mac platforms (e.g., GNU/Linux). + * + * Resource forks which include fonts data are stored sometimes in + * locations which users or developers don't expected. In some cases, + * resource forks start with some offset from the head of a file. In + * other cases, the actual resource fork is stored in file different from + * what the user specifies. If this option is activated, FreeType tries + * to guess whether such offsets or different file names must be used. + * + * Note that normal, direct access of resource forks is controlled via + * the `FT_CONFIG_OPTION_MAC_FONTS` option. + */ #ifdef FT_CONFIG_OPTION_MAC_FONTS #define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK #endif - /*************************************************************************/ - /* */ - /* Allow the use of FT_Incremental_Interface to load typefaces that */ - /* contain no glyph data, but supply it via a callback function. */ - /* This is required by clients supporting document formats which */ - /* supply font data incrementally as the document is parsed, such */ - /* as the Ghostscript interpreter for the PostScript language. */ - /* */ + /************************************************************************** + * + * Allow the use of `FT_Incremental_Interface` to load typefaces that + * contain no glyph data, but supply it via a callback function. This is + * required by clients supporting document formats which supply font data + * incrementally as the document is parsed, such as the Ghostscript + * interpreter for the PostScript language. + */ #define FT_CONFIG_OPTION_INCREMENTAL - /*************************************************************************/ - /* */ - /* The size in bytes of the render pool used by the scan-line converter */ - /* to do all of its work. */ - /* */ - /* This must be greater than 4KByte if you use FreeType to rasterize */ - /* glyphs; otherwise, you may set it to zero to avoid unnecessary */ - /* allocation of the render pool. */ - /* */ + /************************************************************************** + * + * The size in bytes of the render pool used by the scan-line converter to + * do all of its work. + */ #define FT_RENDER_POOL_SIZE 16384L - /*************************************************************************/ - /* */ - /* FT_MAX_MODULES */ - /* */ - /* The maximum number of modules that can be registered in a single */ - /* FreeType library object. 32 is the default. */ - /* */ + /************************************************************************** + * + * FT_MAX_MODULES + * + * The maximum number of modules that can be registered in a single + * FreeType library object. 32~is the default. + */ #define FT_MAX_MODULES 32 - /*************************************************************************/ - /* */ - /* Debug level */ - /* */ - /* FreeType can be compiled in debug or trace mode. In debug mode, */ - /* errors are reported through the `ftdebug' component. In trace */ - /* mode, additional messages are sent to the standard output during */ - /* execution. */ - /* */ - /* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode. */ - /* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode. */ - /* */ - /* Don't define any of these macros to compile in `release' mode! */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ + /************************************************************************** + * + * Debug level + * + * FreeType can be compiled in debug or trace mode. In debug mode, + * errors are reported through the 'ftdebug' component. In trace mode, + * additional messages are sent to the standard output during execution. + * + * Define `FT_DEBUG_LEVEL_ERROR` to build the library in debug mode. + * Define `FT_DEBUG_LEVEL_TRACE` to build it in trace mode. + * + * Don't define any of these macros to compile in 'release' mode! + * + * Do not `#undef` these macros here since the build system might define + * them for certain configurations only. + */ /* #define FT_DEBUG_LEVEL_ERROR */ /* #define FT_DEBUG_LEVEL_TRACE */ - /*************************************************************************/ - /* */ - /* Autofitter debugging */ - /* */ - /* If FT_DEBUG_AUTOFIT is defined, FreeType provides some means to */ - /* control the autofitter behaviour for debugging purposes with global */ - /* boolean variables (consequently, you should *never* enable this */ - /* while compiling in `release' mode): */ - /* */ - /* _af_debug_disable_horz_hints */ - /* _af_debug_disable_vert_hints */ - /* _af_debug_disable_blue_hints */ - /* */ - /* Additionally, the following functions provide dumps of various */ - /* internal autofit structures to stdout (using `printf'): */ - /* */ - /* af_glyph_hints_dump_points */ - /* af_glyph_hints_dump_segments */ - /* af_glyph_hints_dump_edges */ - /* */ - /* As an argument, they use another global variable: */ - /* */ - /* _af_debug_hints */ - /* */ - /* Please have a look at the `ftgrid' demo program to see how those */ - /* variables and macros should be used. */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ + /************************************************************************** + * + * Autofitter debugging + * + * If `FT_DEBUG_AUTOFIT` is defined, FreeType provides some means to + * control the autofitter behaviour for debugging purposes with global + * boolean variables (consequently, you should **never** enable this + * while compiling in 'release' mode): + * + * ``` + * _af_debug_disable_horz_hints + * _af_debug_disable_vert_hints + * _af_debug_disable_blue_hints + * ``` + * + * Additionally, the following functions provide dumps of various + * internal autofit structures to stdout (using `printf`): + * + * ``` + * af_glyph_hints_dump_points + * af_glyph_hints_dump_segments + * af_glyph_hints_dump_edges + * af_glyph_hints_get_num_segments + * af_glyph_hints_get_segment_offset + * ``` + * + * As an argument, they use another global variable: + * + * ``` + * _af_debug_hints + * ``` + * + * Please have a look at the `ftgrid` demo program to see how those + * variables and macros should be used. + * + * Do not `#undef` these macros here since the build system might define + * them for certain configurations only. + */ /* #define FT_DEBUG_AUTOFIT */ - /*************************************************************************/ - /* */ - /* Memory Debugging */ - /* */ - /* FreeType now comes with an integrated memory debugger that is */ - /* capable of detecting simple errors like memory leaks or double */ - /* deletes. To compile it within your build of the library, you */ - /* should define FT_DEBUG_MEMORY here. */ - /* */ - /* Note that the memory debugger is only activated at runtime when */ - /* when the _environment_ variable `FT2_DEBUG_MEMORY' is defined also! */ - /* */ - /* Do not #undef this macro here since the build system might define */ - /* it for certain configurations only. */ - /* */ + /************************************************************************** + * + * Memory Debugging + * + * FreeType now comes with an integrated memory debugger that is capable + * of detecting simple errors like memory leaks or double deletes. To + * compile it within your build of the library, you should define + * `FT_DEBUG_MEMORY` here. + * + * Note that the memory debugger is only activated at runtime when when + * the _environment_ variable `FT2_DEBUG_MEMORY` is defined also! + * + * Do not `#undef` this macro here since the build system might define it + * for certain configurations only. + */ /* #define FT_DEBUG_MEMORY */ - /*************************************************************************/ - /* */ - /* Module errors */ - /* */ - /* If this macro is set (which is _not_ the default), the higher byte */ - /* of an error code gives the module in which the error has occurred, */ - /* while the lower byte is the real error code. */ - /* */ - /* Setting this macro makes sense for debugging purposes only, since */ - /* it would break source compatibility of certain programs that use */ - /* FreeType 2. */ - /* */ - /* More details can be found in the files ftmoderr.h and fterrors.h. */ - /* */ + /************************************************************************** + * + * Module errors + * + * If this macro is set (which is _not_ the default), the higher byte of + * an error code gives the module in which the error has occurred, while + * the lower byte is the real error code. + * + * Setting this macro makes sense for debugging purposes only, since it + * would break source compatibility of certain programs that use + * FreeType~2. + * + * More details can be found in the files `ftmoderr.h` and `fterrors.h`. + */ #undef FT_CONFIG_OPTION_USE_MODULE_ERRORS - /*************************************************************************/ - /* */ - /* Position Independent Code */ - /* */ - /* If this macro is set (which is _not_ the default), FreeType2 will */ - /* avoid creating constants that require address fixups. Instead the */ - /* constants will be moved into a struct and additional intialization */ - /* code will be used. */ - /* */ - /* Setting this macro is needed for systems that prohibit address */ - /* fixups, such as BREW. */ - /* */ -/* #define FT_CONFIG_OPTION_PIC */ + /************************************************************************** + * + * Error Strings + * + * If this macro is set, `FT_Error_String` will return meaningful + * descriptions. This is not enabled by default to reduce the overall + * size of FreeType. + * + * More details can be found in the file `fterrors.h`. + */ +/* #define FT_CONFIG_OPTION_ERROR_STRINGS */ /*************************************************************************/ @@ -508,50 +515,60 @@ FT_BEGIN_HEADER /*************************************************************************/ - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support */ - /* embedded bitmaps in all formats using the SFNT module (namely */ - /* TrueType & OpenType). */ - /* */ + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_EMBEDDED_BITMAPS` if you want to support + * embedded bitmaps in all formats using the 'sfnt' module (namely + * TrueType~& OpenType). + */ #define TT_CONFIG_OPTION_EMBEDDED_BITMAPS - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to */ - /* load and enumerate the glyph Postscript names in a TrueType or */ - /* OpenType file. */ - /* */ - /* Note that when you do not compile the `PSNames' module by undefining */ - /* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will */ - /* contain additional code used to read the PS Names table from a font. */ - /* */ - /* (By default, the module uses `PSNames' to extract glyph names.) */ - /* */ + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_COLOR_LAYERS` if you want to support coloured + * outlines (from the 'COLR'/'CPAL' tables) in all formats using the 'sfnt' + * module (namely TrueType~& OpenType). + */ +#define TT_CONFIG_OPTION_COLOR_LAYERS + + + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_POSTSCRIPT_NAMES` if you want to be able to + * load and enumerate the glyph Postscript names in a TrueType or OpenType + * file. + * + * Note that when you do not compile the 'psnames' module by undefining the + * above `FT_CONFIG_OPTION_POSTSCRIPT_NAMES`, the 'sfnt' module will + * contain additional code used to read the PS Names table from a font. + * + * (By default, the module uses 'psnames' to extract glyph names.) + */ #define TT_CONFIG_OPTION_POSTSCRIPT_NAMES - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to */ - /* access the internal name table in a SFNT-based format like TrueType */ - /* or OpenType. The name table contains various strings used to */ - /* describe the font, like family name, copyright, version, etc. It */ - /* does not contain any glyph name though. */ - /* */ - /* Accessing SFNT names is done through the functions declared in */ - /* `ftsnames.h'. */ - /* */ + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_SFNT_NAMES` if your applications need to access + * the internal name table in a SFNT-based format like TrueType or + * OpenType. The name table contains various strings used to describe the + * font, like family name, copyright, version, etc. It does not contain + * any glyph name though. + * + * Accessing SFNT names is done through the functions declared in + * `ftsnames.h`. + */ #define TT_CONFIG_OPTION_SFNT_NAMES - /*************************************************************************/ - /* */ - /* TrueType CMap support */ - /* */ - /* Here you can fine-tune which TrueType CMap table format shall be */ - /* supported. */ + /************************************************************************** + * + * TrueType CMap support + * + * Here you can fine-tune which TrueType CMap table format shall be + * supported. + */ #define TT_CONFIG_CMAP_FORMAT_0 #define TT_CONFIG_CMAP_FORMAT_2 #define TT_CONFIG_CMAP_FORMAT_4 @@ -571,142 +588,135 @@ FT_BEGIN_HEADER /*************************************************************************/ /*************************************************************************/ - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile */ - /* a bytecode interpreter in the TrueType driver. */ - /* */ - /* By undefining this, you will only compile the code necessary to load */ - /* TrueType glyphs without hinting. */ - /* */ - /* Do not #undef this macro here, since the build system might */ - /* define it for certain configurations only. */ - /* */ + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_BYTECODE_INTERPRETER` if you want to compile a + * bytecode interpreter in the TrueType driver. + * + * By undefining this, you will only compile the code necessary to load + * TrueType glyphs without hinting. + * + * Do not `#undef` this macro here, since the build system might define it + * for certain configurations only. + */ #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_SUBPIXEL_HINTING if you want to compile */ - /* EXPERIMENTAL subpixel hinting support into the TrueType driver. This */ - /* replaces the native TrueType hinting mechanism when anything but */ - /* FT_RENDER_MODE_MONO is requested. */ - /* */ - /* Enabling this causes the TrueType driver to ignore instructions under */ - /* certain conditions. This is done in accordance with the guide here, */ - /* with some minor differences: */ - /* */ - /* http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */ - /* */ - /* By undefining this, you only compile the code necessary to hint */ - /* TrueType glyphs with native TT hinting. */ - /* */ - /* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be */ - /* defined. */ - /* */ -/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING */ + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_SUBPIXEL_HINTING` if you want to compile + * subpixel hinting support into the TrueType driver. This modifies the + * TrueType hinting mechanism when anything but `FT_RENDER_MODE_MONO` is + * requested. + * + * In particular, it modifies the bytecode interpreter to interpret (or + * not) instructions in a certain way so that all TrueType fonts look like + * they do in a Windows ClearType (DirectWrite) environment. See [1] for a + * technical overview on what this means. See `ttinterp.h` for more + * details on the LEAN option. + * + * There are three possible values. + * + * Value 1: + * This value is associated with the 'Infinality' moniker, contributed by + * an individual nicknamed Infinality with the goal of making TrueType + * fonts render better than on Windows. A high amount of configurability + * and flexibility, down to rules for single glyphs in fonts, but also + * very slow. Its experimental and slow nature and the original + * developer losing interest meant that this option was never enabled in + * default builds. + * + * The corresponding interpreter version is v38. + * + * Value 2: + * The new default mode for the TrueType driver. The Infinality code + * base was stripped to the bare minimum and all configurability removed + * in the name of speed and simplicity. The configurability was mainly + * aimed at legacy fonts like 'Arial', 'Times New Roman', or 'Courier'. + * Legacy fonts are fonts that modify vertical stems to achieve clean + * black-and-white bitmaps. The new mode focuses on applying a minimal + * set of rules to all fonts indiscriminately so that modern and web + * fonts render well while legacy fonts render okay. + * + * The corresponding interpreter version is v40. + * + * Value 3: + * Compile both, making both v38 and v40 available (the latter is the + * default). + * + * By undefining these, you get rendering behavior like on Windows without + * ClearType, i.e., Windows XP without ClearType enabled and Win9x + * (interpreter version v35). Or not, depending on how much hinting blood + * and testing tears the font designer put into a given font. If you + * define one or both subpixel hinting options, you can switch between + * between v35 and the ones you define (using `FT_Property_Set`). + * + * This option requires `TT_CONFIG_OPTION_BYTECODE_INTERPRETER` to be + * defined. + * + * [1] + * https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx + */ +/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 1 */ +#define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2 +/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING ( 1 | 2 ) */ - /*************************************************************************/ - /* */ - /* If you define TT_CONFIG_OPTION_UNPATENTED_HINTING, a special version */ - /* of the TrueType bytecode interpreter is used that doesn't implement */ - /* any of the patented opcodes and algorithms. The patents related to */ - /* TrueType hinting have expired worldwide since May 2010; this option */ - /* is now deprecated. */ - /* */ - /* Note that the TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* */ - /* if you define TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, */ - /* either define TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */ - /* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time. */ - /* */ - /* This macro is only useful for a small number of font files (mostly */ - /* for Asian scripts) that require bytecode interpretation to properly */ - /* load glyphs. For all other fonts, this produces unpleasant results, */ - /* thus the unpatented interpreter is never used to load glyphs from */ - /* TrueType fonts unless one of the following two options is used. */ - /* */ - /* - The unpatented interpreter is explicitly activated by the user */ - /* through the FT_PARAM_TAG_UNPATENTED_HINTING parameter tag */ - /* when opening the FT_Face. */ - /* */ - /* - FreeType detects that the FT_Face corresponds to one of the */ - /* `trick' fonts (e.g., `Mingliu') it knows about. The font engine */ - /* contains a hard-coded list of font names and other matching */ - /* parameters (see function `tt_face_init' in file */ - /* `src/truetype/ttobjs.c'). */ - /* */ - /* Here a sample code snippet for using FT_PARAM_TAG_UNPATENTED_HINTING. */ - /* */ - /* { */ - /* FT_Parameter parameter; */ - /* FT_Open_Args open_args; */ - /* */ - /* */ - /* parameter.tag = FT_PARAM_TAG_UNPATENTED_HINTING; */ - /* */ - /* open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; */ - /* open_args.pathname = my_font_pathname; */ - /* open_args.num_params = 1; */ - /* open_args.params = ¶meter; */ - /* */ - /* error = FT_Open_Face( library, &open_args, index, &face ); */ - /* ... */ - /* } */ - /* */ -/* #define TT_CONFIG_OPTION_UNPATENTED_HINTING */ - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType */ - /* bytecode interpreter with a huge switch statement, rather than a call */ - /* table. This results in smaller and faster code for a number of */ - /* architectures. */ - /* */ - /* Note however that on some compiler/processor combinations, undefining */ - /* this macro will generate faster, though larger, code. */ - /* */ -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */ - /* TrueType glyph loader to use Apple's definition of how to handle */ - /* component offsets in composite glyphs. */ - /* */ - /* Apple and MS disagree on the default behavior of component offsets */ - /* in composites. Apple says that they should be scaled by the scaling */ - /* factors in the transformation matrix (roughly, it's more complex) */ - /* while MS says they should not. OpenType defines two bits in the */ - /* composite flags array which can be used to disambiguate, but old */ - /* fonts will not have them. */ - /* */ - /* http://www.microsoft.com/typography/otspec/glyf.htm */ - /* http://fonts.apple.com/TTRefMan/RM06/Chap6glyf.html */ - /* */ + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED` to compile the + * TrueType glyph loader to use Apple's definition of how to handle + * component offsets in composite glyphs. + * + * Apple and MS disagree on the default behavior of component offsets in + * composites. Apple says that they should be scaled by the scaling + * factors in the transformation matrix (roughly, it's more complex) while + * MS says they should not. OpenType defines two bits in the composite + * flags array which can be used to disambiguate, but old fonts will not + * have them. + * + * 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 - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_GX_VAR_SUPPORT if you want to include */ - /* support for Apple's distortable font technology (fvar, gvar, cvar, */ - /* and avar tables). This has many similarities to Type 1 Multiple */ - /* Masters support. */ - /* */ + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_GX_VAR_SUPPORT` if you want to include support + * for Apple's distortable font technology ('fvar', 'gvar', 'cvar', and + * 'avar' tables). Tagged 'Font Variations', this is now part of OpenType + * also. This has many similarities to Type~1 Multiple Masters support. + */ #define TT_CONFIG_OPTION_GX_VAR_SUPPORT - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_BDF if you want to include support for */ - /* an embedded `BDF ' table within SFNT-based bitmap formats. */ - /* */ + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_BDF` if you want to include support for an + * embedded 'BDF~' table within SFNT-based bitmap formats. + */ #define TT_CONFIG_OPTION_BDF + /************************************************************************** + * + * Option `TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES` controls the maximum + * number of bytecode instructions executed for a single run of the + * bytecode interpreter, needed to prevent infinite loops. You don't want + * to change this except for very special situations (e.g., making a + * library fuzzer spend less time to handle broken fonts). + * + * It is not expected that this value is ever modified by a configuring + * script; instead, it gets surrounded with `#ifndef ... #endif` so that + * the value can be set as a preprocessor option on the compiler's command + * line. + */ +#ifndef TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES +#define TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES 1000000L +#endif + + /*************************************************************************/ /*************************************************************************/ /**** ****/ @@ -716,52 +726,61 @@ FT_BEGIN_HEADER /*************************************************************************/ - /*************************************************************************/ - /* */ - /* T1_MAX_DICT_DEPTH is the maximum depth of nest dictionaries and */ - /* arrays in the Type 1 stream (see t1load.c). A minimum of 4 is */ - /* required. */ - /* */ + /************************************************************************** + * + * `T1_MAX_DICT_DEPTH` is the maximum depth of nest dictionaries and arrays + * in the Type~1 stream (see `t1load.c`). A minimum of~4 is required. + */ #define T1_MAX_DICT_DEPTH 5 - /*************************************************************************/ - /* */ - /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */ - /* calls during glyph loading. */ - /* */ + /************************************************************************** + * + * `T1_MAX_SUBRS_CALLS` details the maximum number of nested sub-routine + * calls during glyph loading. + */ #define T1_MAX_SUBRS_CALLS 16 - /*************************************************************************/ - /* */ - /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */ - /* minimum of 16 is required. */ - /* */ - /* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */ - /* */ + /************************************************************************** + * + * `T1_MAX_CHARSTRING_OPERANDS` is the charstring stack's capacity. A + * minimum of~16 is required. + * + * The Chinese font 'MingTiEG-Medium' (covering the CNS 11643 character + * set) needs 256. + */ #define T1_MAX_CHARSTRINGS_OPERANDS 256 - /*************************************************************************/ - /* */ - /* Define this configuration macro if you want to prevent the */ - /* compilation of `t1afm', which is in charge of reading Type 1 AFM */ - /* files into an existing face. Note that if set, the T1 driver will be */ - /* unable to produce kerning distances. */ - /* */ + /************************************************************************** + * + * Define this configuration macro if you want to prevent the compilation + * of the 't1afm' module, which is in charge of reading Type~1 AFM files + * into an existing face. Note that if set, the Type~1 driver will be + * unable to produce kerning distances. + */ #undef T1_CONFIG_OPTION_NO_AFM - /*************************************************************************/ - /* */ - /* Define this configuration macro if you want to prevent the */ - /* compilation of the Multiple Masters font support in the Type 1 */ - /* driver. */ - /* */ + /************************************************************************** + * + * Define this configuration macro if you want to prevent the compilation + * of the Multiple Masters font support in the Type~1 driver. + */ #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 */ + + /*************************************************************************/ /*************************************************************************/ /**** ****/ @@ -771,17 +790,16 @@ FT_BEGIN_HEADER /*************************************************************************/ - /*************************************************************************/ - /* */ - /* Using CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4} it is */ - /* 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. */ - /* */ - /* Do *not* undefine these macros! */ - /* */ + /************************************************************************** + * + * Using `CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}` it is + * 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 (file `ftdriver.h`), which allows the control at run-time. + * + * Do **not** undefine these macros! + */ #define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 500 #define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 400 @@ -795,16 +813,43 @@ FT_BEGIN_HEADER #define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 0 - /*************************************************************************/ - /* */ - /* CFF_CONFIG_OPTION_OLD_ENGINE controls whether the pre-Adobe CFF */ - /* engine gets compiled into FreeType. If defined, it is possible to */ - /* switch between the two engines using the `hinting-engine' property of */ - /* the cff driver module. */ - /* */ + /************************************************************************** + * + * `CFF_CONFIG_OPTION_OLD_ENGINE` controls whether the pre-Adobe CFF engine + * gets compiled into FreeType. If defined, it is possible to switch + * between the two engines using the `hinting-engine` property of the 'cff' + * driver module. + */ /* #define CFF_CONFIG_OPTION_OLD_ENGINE */ + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** P C F D R I V E R C O N F I G U R A T I O N ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + + + /************************************************************************** + * + * There are many PCF fonts just called 'Fixed' which look completely + * different, and which have nothing to do with each other. When selecting + * 'Fixed' in KDE or Gnome one gets results that appear rather random, the + * style changes often if one changes the size and one cannot select some + * fonts at all. This option makes the 'pcf' module prepend the foundry + * name (plus a space) to the family name. + * + * We also check whether we have 'wide' characters; all put together, we + * get family names like 'Sony Fixed' or 'Misc Fixed Wide'. + * + * If this option is activated, it can be controlled with the + * `no-long-family-names` property of the 'pcf' driver module. + */ +/* #define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */ + + /*************************************************************************/ /*************************************************************************/ /**** ****/ @@ -814,57 +859,95 @@ FT_BEGIN_HEADER /*************************************************************************/ - /*************************************************************************/ - /* */ - /* Compile autofit module with CJK (Chinese, Japanese, Korean) script */ - /* support. */ - /* */ + /************************************************************************** + * + * Compile 'autofit' module with CJK (Chinese, Japanese, Korean) script + * support. + */ #define AF_CONFIG_OPTION_CJK - /*************************************************************************/ - /* */ - /* Compile autofit module with Indic script support. */ - /* */ + + /************************************************************************** + * + * Compile 'autofit' module with fallback Indic script support, covering + * some scripts that the 'latin' submodule of the 'autofit' module doesn't + * (yet) handle. + */ #define AF_CONFIG_OPTION_INDIC - /*************************************************************************/ - /* */ - /* Compile autofit module with warp hinting. The idea of the warping */ - /* code is to slightly scale and shift a glyph within a single dimension */ - /* so that as much of its segments are aligned (more or less) on the */ - /* grid. To find out the optimal scaling and shifting value, various */ - /* parameter combinations are tried and scored. */ - /* */ - /* This experimental option is only active if the render mode is */ - /* FT_RENDER_MODE_LIGHT. */ - /* */ -/* #define AF_CONFIG_OPTION_USE_WARPER */ + + /************************************************************************** + * + * Compile 'autofit' module with warp hinting. The idea of the warping + * code is to slightly scale and shift a glyph within a single dimension so + * that as much of its segments are aligned (more or less) on the grid. To + * find out the optimal scaling and shifting value, various parameter + * combinations are tried and scored. + * + * You can switch warping on and off with the `warping` property of the + * auto-hinter (see file `ftdriver.h` for more information; by default it + * is switched off). + * + * This experimental option is not active if the rendering mode is + * `FT_RENDER_MODE_LIGHT`. + */ +#define AF_CONFIG_OPTION_USE_WARPER + + + /************************************************************************** + * + * Use TrueType-like size metrics for 'light' auto-hinting. + * + * It is strongly recommended to avoid this option, which exists only to + * help some legacy applications retain its appearance and behaviour with + * respect to auto-hinted TrueType fonts. + * + * The very reason this option exists at all are GNU/Linux distributions + * like Fedora that did not un-patch the following change (which was + * present in FreeType between versions 2.4.6 and 2.7.1, inclusive). + * + * ``` + * 2011-07-16 Steven Chu <steven.f.chu@gmail.com> + * + * [truetype] Fix metrics on size request for scalable fonts. + * ``` + * + * This problematic commit is now reverted (more or less). + */ +/* #define AF_CONFIG_OPTION_TT_SIZE_METRICS */ /* */ /* - * This macro is obsolete. Support has been removed in FreeType - * version 2.5. + * This macro is obsolete. Support has been removed in FreeType version + * 2.5. */ /* #define FT_CONFIG_OPTION_OLD_INTERNALS */ /* - * This macro is defined if either unpatented or native TrueType - * hinting is requested by the definitions above. + * The next three macros are defined if native TrueType hinting is + * requested by the definitions above. Don't change this. */ #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER #define TT_USE_BYTECODE_INTERPRETER -#undef TT_CONFIG_OPTION_UNPATENTED_HINTING -#elif defined TT_CONFIG_OPTION_UNPATENTED_HINTING -#define TT_USE_BYTECODE_INTERPRETER + +#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING +#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 1 +#define TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY +#endif + +#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 2 +#define TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL +#endif +#endif #endif /* * Check CFF darkening parameters. The checks are the same as in function - * `cff_property_set' in file `cffdrivr.c'. + * `cff_property_set` in file `cffdrivr.c`. */ #if CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 < 0 || \ CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 < 0 || \ @@ -893,7 +976,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTOPTION_H__ */ +#endif /* FTOPTION_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/config/ftstdlib.h b/android/x86_64/include/freetype/config/ftstdlib.h index b940efc4..438b6145 100644 --- a/android/x86_64/include/freetype/config/ftstdlib.h +++ b/android/x86_64/include/freetype/config/ftstdlib.h @@ -1,36 +1,35 @@ -/***************************************************************************/ -/* */ -/* ftstdlib.h */ -/* */ -/* ANSI-specific library and header configuration file (specification */ -/* only). */ -/* */ -/* Copyright 2002-2007, 2009, 2011-2012 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftstdlib.h + * + * ANSI-specific library and header configuration file (specification + * only). + * + * Copyright (C) 2002-2019 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. + * + */ - /*************************************************************************/ - /* */ - /* This file is used to group all #includes to the ANSI C library that */ - /* FreeType normally requires. It also defines macros to rename the */ - /* standard functions within the FreeType source code. */ - /* */ - /* Load a file which defines __FTSTDLIB_H__ before this one to override */ - /* it. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * This file is used to group all `#includes` to the ANSI~C library that + * FreeType normally requires. It also defines macros to rename the + * standard functions within the FreeType source code. + * + * Load a file which defines `FTSTDLIB_H_` before this one to override it. + * + */ -#ifndef __FTSTDLIB_H__ -#define __FTSTDLIB_H__ +#ifndef FTSTDLIB_H_ +#define FTSTDLIB_H_ #include <stddef.h> @@ -38,23 +37,23 @@ #define ft_ptrdiff_t ptrdiff_t - /**********************************************************************/ - /* */ - /* integer limits */ - /* */ - /* UINT_MAX and ULONG_MAX are used to automatically compute the size */ - /* of `int' and `long' in bytes at compile-time. So far, this works */ - /* for all platforms the library has been tested on. */ - /* */ - /* Note that on the extremely rare platforms that do not provide */ - /* integer types that are _exactly_ 16 and 32 bits wide (e.g. some */ - /* old Crays where `int' is 36 bits), we do not make any guarantee */ - /* about the correct behaviour of FT2 with all fonts. */ - /* */ - /* In these case, `ftconfig.h' will refuse to compile anyway with a */ - /* message like `couldn't find 32-bit type' or something similar. */ - /* */ - /**********************************************************************/ + /************************************************************************** + * + * integer limits + * + * `UINT_MAX` and `ULONG_MAX` are used to automatically compute the size of + * `int` and `long` in bytes at compile-time. So far, this works for all + * platforms the library has been tested on. + * + * Note that on the extremely rare platforms that do not provide integer + * types that are _exactly_ 16 and 32~bits wide (e.g., some old Crays where + * `int` is 36~bits), we do not make any guarantee about the correct + * behaviour of FreeType~2 with all fonts. + * + * In these cases, `ftconfig.h` will refuse to compile anyway with a + * message like 'couldn't find 32-bit type' or something similar. + * + */ #include <limits.h> @@ -64,14 +63,16 @@ #define FT_INT_MAX INT_MAX #define FT_INT_MIN INT_MIN #define FT_UINT_MAX UINT_MAX +#define FT_LONG_MIN LONG_MIN +#define FT_LONG_MAX LONG_MAX #define FT_ULONG_MAX ULONG_MAX - /**********************************************************************/ - /* */ - /* character and string processing */ - /* */ - /**********************************************************************/ + /************************************************************************** + * + * character and string processing + * + */ #include <string.h> @@ -91,11 +92,11 @@ #define ft_strstr strstr - /**********************************************************************/ - /* */ - /* file handling */ - /* */ - /**********************************************************************/ + /************************************************************************** + * + * file handling + * + */ #include <stdio.h> @@ -109,11 +110,11 @@ #define ft_sprintf sprintf - /**********************************************************************/ - /* */ - /* sorting */ - /* */ - /**********************************************************************/ + /************************************************************************** + * + * sorting + * + */ #include <stdlib.h> @@ -121,11 +122,11 @@ #define ft_qsort qsort - /**********************************************************************/ - /* */ - /* memory allocation */ - /* */ - /**********************************************************************/ + /************************************************************************** + * + * memory allocation + * + */ #define ft_scalloc calloc @@ -134,41 +135,41 @@ #define ft_srealloc realloc - /**********************************************************************/ - /* */ - /* miscellaneous */ - /* */ - /**********************************************************************/ + /************************************************************************** + * + * miscellaneous + * + */ -#define ft_atol atol -#define ft_labs labs +#define ft_strtol strtol +#define ft_getenv getenv - /**********************************************************************/ - /* */ - /* execution control */ - /* */ - /**********************************************************************/ + /************************************************************************** + * + * execution control + * + */ #include <setjmp.h> -#define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */ - /* jmp_buf is defined as a macro */ - /* on certain platforms */ +#define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */ + /* `jmp_buf` is defined as a macro */ + /* on certain platforms */ #define ft_longjmp longjmp #define ft_setjmp( b ) setjmp( *(ft_jmp_buf*) &(b) ) /* same thing here */ - /* the following is only used for debugging purposes, i.e., if */ - /* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */ + /* The following is only used for debugging purposes, i.e., if */ + /* `FT_DEBUG_LEVEL_ERROR` or `FT_DEBUG_LEVEL_TRACE` are defined. */ #include <stdarg.h> -#endif /* __FTSTDLIB_H__ */ +#endif /* FTSTDLIB_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/freetype.h b/android/x86_64/include/freetype/freetype.h index 27fd44bf..82af09e9 100644 --- a/android/x86_64/include/freetype/freetype.h +++ b/android/x86_64/include/freetype/freetype.h @@ -1,35 +1,35 @@ -/***************************************************************************/ -/* */ -/* freetype.h */ -/* */ -/* FreeType high-level API and common types (specification only). */ -/* */ -/* Copyright 1996-2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * freetype.h + * + * FreeType high-level API and common types (specification only). + * + * Copyright (C) 1996-2019 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 __FREETYPE_H__ -#define __FREETYPE_H__ +#ifndef FREETYPE_H_ +#define FREETYPE_H_ #ifndef FT_FREETYPE_H #error "`ft2build.h' hasn't been included yet!" #error "Please always use macros to include FreeType header files." #error "Example:" -#error " #include <ft2build.h>" +#error " #include "ft2build.h"" #error " #include FT_FREETYPE_H" #endif -#include <ft2build.h> +#include "ft2build.h" #include FT_CONFIG_CONFIG_H #include FT_TYPES_H #include FT_ERRORS_H @@ -39,56 +39,55 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* header_inclusion */ - /* */ - /* <Title> */ - /* FreeType's header inclusion scheme */ - /* */ - /* <Abstract> */ - /* How client applications should include FreeType header files. */ - /* */ - /* <Description> */ - /* To be as flexible as possible (and for historical reasons), */ - /* FreeType uses a very special inclusion scheme to load header */ - /* files, for example */ - /* */ - /* { */ - /* #include <ft2build.h> */ - /* */ - /* #include FT_FREETYPE_H */ - /* #include FT_OUTLINE_H */ - /* } */ - /* */ - /* A compiler and its preprocessor only needs an include path to find */ - /* the file `ft2build.h'; the exact locations and names of the other */ - /* FreeType header files are hidden by preprocessor macro names, */ - /* loaded by `ft2build.h'. The API documentation always gives the */ - /* header macro name needed for a particular function. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * header_inclusion + * + * @title: + * FreeType's header inclusion scheme + * + * @abstract: + * How client applications should include FreeType header files. + * + * @description: + * To be as flexible as possible (and for historical reasons), FreeType + * uses a very special inclusion scheme to load header files, for example + * + * ``` + * #include "ft2build.h" + * + * #include FT_FREETYPE_H + * #include FT_OUTLINE_H + * ``` + * + * A compiler and its preprocessor only needs an include path to find the + * file `ft2build.h`; the exact locations and names of the other FreeType + * header files are hidden by @header_file_macros, loaded by + * `ft2build.h`. The API documentation always gives the header macro + * name needed for a particular function. + * + */ - /*************************************************************************/ - /* */ - /* <Section> */ - /* user_allocation */ - /* */ - /* <Title> */ - /* User allocation */ - /* */ - /* <Abstract> */ - /* How client applications should allocate FreeType data structures. */ - /* */ - /* <Description> */ - /* FreeType assumes that structures allocated by the user and passed */ - /* as arguments are zeroed out except for the actual data. In other */ - /* words, it is recommended to use `calloc' (or variants of it) */ - /* instead of `malloc' for allocation. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * user_allocation + * + * @title: + * User allocation + * + * @abstract: + * How client applications should allocate FreeType data structures. + * + * @description: + * FreeType assumes that structures allocated by the user and passed as + * arguments are zeroed out except for the actual data. In other words, + * it is recommended to use `calloc` (or variants of it) instead of + * `malloc` for allocation. + * + */ @@ -101,211 +100,219 @@ FT_BEGIN_HEADER /*************************************************************************/ - /*************************************************************************/ - /* */ - /* <Section> */ - /* base_interface */ - /* */ - /* <Title> */ - /* Base Interface */ - /* */ - /* <Abstract> */ - /* The FreeType~2 base font interface. */ - /* */ - /* <Description> */ - /* This section describes the most important public high-level API */ - /* functions of FreeType~2. */ - /* */ - /* <Order> */ - /* FT_Library */ - /* FT_Face */ - /* FT_Size */ - /* FT_GlyphSlot */ - /* FT_CharMap */ - /* FT_Encoding */ - /* FT_ENC_TAG */ - /* */ - /* FT_FaceRec */ - /* */ - /* FT_FACE_FLAG_SCALABLE */ - /* FT_FACE_FLAG_FIXED_SIZES */ - /* FT_FACE_FLAG_FIXED_WIDTH */ - /* FT_FACE_FLAG_HORIZONTAL */ - /* FT_FACE_FLAG_VERTICAL */ - /* FT_FACE_FLAG_COLOR */ - /* FT_FACE_FLAG_SFNT */ - /* FT_FACE_FLAG_CID_KEYED */ - /* FT_FACE_FLAG_TRICKY */ - /* FT_FACE_FLAG_KERNING */ - /* FT_FACE_FLAG_MULTIPLE_MASTERS */ - /* FT_FACE_FLAG_GLYPH_NAMES */ - /* FT_FACE_FLAG_EXTERNAL_STREAM */ - /* FT_FACE_FLAG_HINTER */ - /* FT_FACE_FLAG_TRICKY */ - /* */ - /* FT_HAS_HORIZONTAL */ - /* FT_HAS_VERTICAL */ - /* FT_HAS_KERNING */ - /* FT_HAS_FIXED_SIZES */ - /* FT_HAS_GLYPH_NAMES */ - /* FT_HAS_MULTIPLE_MASTERS */ - /* FT_HAS_COLOR */ - /* */ - /* FT_IS_SFNT */ - /* FT_IS_SCALABLE */ - /* FT_IS_FIXED_WIDTH */ - /* FT_IS_CID_KEYED */ - /* FT_IS_TRICKY */ - /* */ - /* FT_STYLE_FLAG_BOLD */ - /* FT_STYLE_FLAG_ITALIC */ - /* */ - /* FT_SizeRec */ - /* FT_Size_Metrics */ - /* */ - /* FT_GlyphSlotRec */ - /* FT_Glyph_Metrics */ - /* FT_SubGlyph */ - /* */ - /* FT_Bitmap_Size */ - /* */ - /* FT_Init_FreeType */ - /* FT_Done_FreeType */ - /* */ - /* FT_New_Face */ - /* FT_Done_Face */ - /* FT_Reference_Face */ - /* FT_New_Memory_Face */ - /* FT_Open_Face */ - /* FT_Open_Args */ - /* FT_Parameter */ - /* FT_Attach_File */ - /* FT_Attach_Stream */ - /* */ - /* FT_Set_Char_Size */ - /* FT_Set_Pixel_Sizes */ - /* FT_Request_Size */ - /* FT_Select_Size */ - /* FT_Size_Request_Type */ - /* FT_Size_RequestRec */ - /* FT_Size_Request */ - /* FT_Set_Transform */ - /* FT_Load_Glyph */ - /* FT_Get_Char_Index */ - /* FT_Get_First_Char */ - /* FT_Get_Next_Char */ - /* FT_Get_Name_Index */ - /* FT_Load_Char */ - /* */ - /* FT_OPEN_MEMORY */ - /* FT_OPEN_STREAM */ - /* FT_OPEN_PATHNAME */ - /* FT_OPEN_DRIVER */ - /* FT_OPEN_PARAMS */ - /* */ - /* FT_LOAD_DEFAULT */ - /* FT_LOAD_RENDER */ - /* FT_LOAD_MONOCHROME */ - /* FT_LOAD_LINEAR_DESIGN */ - /* FT_LOAD_NO_SCALE */ - /* FT_LOAD_NO_HINTING */ - /* FT_LOAD_NO_BITMAP */ - /* FT_LOAD_NO_AUTOHINT */ - /* FT_LOAD_COLOR */ - /* */ - /* FT_LOAD_VERTICAL_LAYOUT */ - /* FT_LOAD_IGNORE_TRANSFORM */ - /* FT_LOAD_FORCE_AUTOHINT */ - /* FT_LOAD_NO_RECURSE */ - /* FT_LOAD_PEDANTIC */ - /* */ - /* FT_LOAD_TARGET_NORMAL */ - /* FT_LOAD_TARGET_LIGHT */ - /* FT_LOAD_TARGET_MONO */ - /* FT_LOAD_TARGET_LCD */ - /* FT_LOAD_TARGET_LCD_V */ - /* */ - /* FT_LOAD_TARGET_MODE */ - /* */ - /* FT_Render_Glyph */ - /* FT_Render_Mode */ - /* FT_Get_Kerning */ - /* FT_Kerning_Mode */ - /* FT_Get_Track_Kerning */ - /* FT_Get_Glyph_Name */ - /* FT_Get_Postscript_Name */ - /* */ - /* FT_CharMapRec */ - /* FT_Select_Charmap */ - /* FT_Set_Charmap */ - /* FT_Get_Charmap_Index */ - /* */ - /* FT_Get_FSType_Flags */ - /* FT_Get_SubGlyph_Info */ - /* */ - /* FT_Face_Internal */ - /* FT_Size_Internal */ - /* FT_Slot_Internal */ - /* */ - /* FT_FACE_FLAG_XXX */ - /* FT_STYLE_FLAG_XXX */ - /* FT_OPEN_XXX */ - /* FT_LOAD_XXX */ - /* FT_LOAD_TARGET_XXX */ - /* FT_SUBGLYPH_FLAG_XXX */ - /* FT_FSTYPE_XXX */ - /* */ - /* FT_HAS_FAST_GLYPHS */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * base_interface + * + * @title: + * Base Interface + * + * @abstract: + * The FreeType~2 base font interface. + * + * @description: + * This section describes the most important public high-level API + * functions of FreeType~2. + * + * @order: + * FT_Library + * FT_Face + * FT_Size + * FT_GlyphSlot + * FT_CharMap + * FT_Encoding + * FT_ENC_TAG + * + * FT_FaceRec + * + * FT_FACE_FLAG_SCALABLE + * FT_FACE_FLAG_FIXED_SIZES + * FT_FACE_FLAG_FIXED_WIDTH + * FT_FACE_FLAG_HORIZONTAL + * FT_FACE_FLAG_VERTICAL + * FT_FACE_FLAG_COLOR + * FT_FACE_FLAG_SFNT + * FT_FACE_FLAG_CID_KEYED + * 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 + * + * FT_HAS_HORIZONTAL + * FT_HAS_VERTICAL + * FT_HAS_KERNING + * FT_HAS_FIXED_SIZES + * FT_HAS_GLYPH_NAMES + * 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 + * + * FT_SizeRec + * FT_Size_Metrics + * + * FT_GlyphSlotRec + * FT_Glyph_Metrics + * FT_SubGlyph + * + * FT_Bitmap_Size + * + * FT_Init_FreeType + * FT_Done_FreeType + * + * FT_New_Face + * FT_Done_Face + * FT_Reference_Face + * FT_New_Memory_Face + * FT_Face_Properties + * FT_Open_Face + * FT_Open_Args + * FT_Parameter + * FT_Attach_File + * FT_Attach_Stream + * + * FT_Set_Char_Size + * FT_Set_Pixel_Sizes + * FT_Request_Size + * FT_Select_Size + * FT_Size_Request_Type + * FT_Size_RequestRec + * FT_Size_Request + * FT_Set_Transform + * FT_Load_Glyph + * FT_Get_Char_Index + * FT_Get_First_Char + * FT_Get_Next_Char + * FT_Get_Name_Index + * FT_Load_Char + * + * FT_OPEN_MEMORY + * FT_OPEN_STREAM + * FT_OPEN_PATHNAME + * FT_OPEN_DRIVER + * FT_OPEN_PARAMS + * + * FT_LOAD_DEFAULT + * FT_LOAD_RENDER + * FT_LOAD_MONOCHROME + * FT_LOAD_LINEAR_DESIGN + * FT_LOAD_NO_SCALE + * FT_LOAD_NO_HINTING + * FT_LOAD_NO_BITMAP + * FT_LOAD_NO_AUTOHINT + * FT_LOAD_COLOR + * + * FT_LOAD_VERTICAL_LAYOUT + * FT_LOAD_IGNORE_TRANSFORM + * FT_LOAD_FORCE_AUTOHINT + * FT_LOAD_NO_RECURSE + * FT_LOAD_PEDANTIC + * + * FT_LOAD_TARGET_NORMAL + * FT_LOAD_TARGET_LIGHT + * FT_LOAD_TARGET_MONO + * FT_LOAD_TARGET_LCD + * FT_LOAD_TARGET_LCD_V + * + * FT_LOAD_TARGET_MODE + * + * FT_Render_Glyph + * FT_Render_Mode + * FT_Get_Kerning + * FT_Kerning_Mode + * FT_Get_Track_Kerning + * FT_Get_Glyph_Name + * FT_Get_Postscript_Name + * + * FT_CharMapRec + * FT_Select_Charmap + * FT_Set_Charmap + * FT_Get_Charmap_Index + * + * FT_Get_FSType_Flags + * FT_Get_SubGlyph_Info + * + * FT_Face_Internal + * FT_Size_Internal + * FT_Slot_Internal + * + * FT_FACE_FLAG_XXX + * FT_STYLE_FLAG_XXX + * FT_OPEN_XXX + * FT_LOAD_XXX + * FT_LOAD_TARGET_XXX + * FT_SUBGLYPH_FLAG_XXX + * FT_FSTYPE_XXX + * + * FT_HAS_FAST_GLYPHS + * + */ - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Glyph_Metrics */ - /* */ - /* <Description> */ - /* A structure used to model the metrics of a single glyph. The */ - /* values are expressed in 26.6 fractional pixel format; if the flag */ - /* @FT_LOAD_NO_SCALE has been used while loading the glyph, values */ - /* are expressed in font units instead. */ - /* */ - /* <Fields> */ - /* width :: */ - /* The glyph's width. */ - /* */ - /* height :: */ - /* The glyph's height. */ - /* */ - /* horiBearingX :: */ - /* Left side bearing for horizontal layout. */ - /* */ - /* horiBearingY :: */ - /* Top side bearing for horizontal layout. */ - /* */ - /* horiAdvance :: */ - /* Advance width for horizontal layout. */ - /* */ - /* vertBearingX :: */ - /* Left side bearing for vertical layout. */ - /* */ - /* vertBearingY :: */ - /* Top side bearing for vertical layout. Larger positive values */ - /* mean further below the vertical glyph origin. */ - /* */ - /* vertAdvance :: */ - /* Advance height for vertical layout. Positive values mean the */ - /* glyph has a positive advance downward. */ - /* */ - /* <Note> */ - /* If not disabled with @FT_LOAD_NO_HINTING, the values represent */ - /* dimensions of the hinted glyph (in case hinting is applicable). */ - /* */ - /* Stroking a glyph with an outside border does not increase */ - /* `horiAdvance' or `vertAdvance'; you have to manually adjust these */ - /* values to account for the added width and height. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Glyph_Metrics + * + * @description: + * A structure to model the metrics of a single glyph. The values are + * expressed in 26.6 fractional pixel format; if the flag + * @FT_LOAD_NO_SCALE has been used while loading the glyph, values are + * expressed in font units instead. + * + * @fields: + * width :: + * The glyph's width. + * + * height :: + * The glyph's height. + * + * horiBearingX :: + * Left side bearing for horizontal layout. + * + * horiBearingY :: + * Top side bearing for horizontal layout. + * + * horiAdvance :: + * Advance width for horizontal layout. + * + * vertBearingX :: + * Left side bearing for vertical layout. + * + * vertBearingY :: + * Top side bearing for vertical layout. Larger positive values mean + * further below the vertical glyph origin. + * + * vertAdvance :: + * Advance height for vertical layout. Positive values mean the glyph + * has a positive advance downward. + * + * @note: + * If not disabled with @FT_LOAD_NO_HINTING, the values represent + * dimensions of the hinted glyph (in case hinting is applicable). + * + * Stroking a glyph with an outside border does not increase + * `horiAdvance` or `vertAdvance`; you have to manually adjust these + * values to account for the added width and height. + * + * FreeType doesn't use the 'VORG' table data for CFF fonts because it + * doesn't have an interface to quickly retrieve the glyph height. The + * y~coordinate of the vertical origin can be simply computed as + * `vertBearingY + height` after loading a glyph. + */ typedef struct FT_Glyph_Metrics_ { FT_Pos width; @@ -322,44 +329,45 @@ FT_BEGIN_HEADER } FT_Glyph_Metrics; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Bitmap_Size */ - /* */ - /* <Description> */ - /* This structure models the metrics of a bitmap strike (i.e., a set */ - /* of glyphs for a given point size and resolution) in a bitmap font. */ - /* It is used for the `available_sizes' field of @FT_Face. */ - /* */ - /* <Fields> */ - /* height :: The vertical distance, in pixels, between two */ - /* consecutive baselines. It is always positive. */ - /* */ - /* width :: The average width, in pixels, of all glyphs in the */ - /* strike. */ - /* */ - /* size :: The nominal size of the strike in 26.6 fractional */ - /* points. This field is not very useful. */ - /* */ - /* x_ppem :: The horizontal ppem (nominal width) in 26.6 fractional */ - /* pixels. */ - /* */ - /* y_ppem :: The vertical ppem (nominal height) in 26.6 fractional */ - /* pixels. */ - /* */ - /* <Note> */ - /* Windows FNT: */ - /* The nominal size given in a FNT font is not reliable. Thus when */ - /* the driver finds it incorrect, it sets `size' to some calculated */ - /* values and sets `x_ppem' and `y_ppem' to the pixel width and */ - /* height given in the font, respectively. */ - /* */ - /* TrueType embedded bitmaps: */ - /* `size', `width', and `height' values are not contained in the */ - /* bitmap strike itself. They are computed from the global font */ - /* parameters. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Bitmap_Size + * + * @description: + * This structure models the metrics of a bitmap strike (i.e., a set of + * glyphs for a given point size and resolution) in a bitmap font. It is + * used for the `available_sizes` field of @FT_Face. + * + * @fields: + * height :: + * The vertical distance, in pixels, between two consecutive baselines. + * It is always positive. + * + * width :: + * The average width, in pixels, of all glyphs in the strike. + * + * size :: + * The nominal size of the strike in 26.6 fractional points. This + * field is not very useful. + * + * x_ppem :: + * The horizontal ppem (nominal width) in 26.6 fractional pixels. + * + * y_ppem :: + * The vertical ppem (nominal height) in 26.6 fractional pixels. + * + * @note: + * Windows FNT: + * The nominal size given in a FNT font is not reliable. If the driver + * finds it incorrect, it sets `size` to some calculated values, and + * `x_ppem` and `y_ppem` to the pixel width and height given in the + * font, respectively. + * + * TrueType embedded bitmaps: + * `size`, `width`, and `height` values are not contained in the bitmap + * strike itself. They are computed from the global font parameters. + */ typedef struct FT_Bitmap_Size_ { FT_Short height; @@ -381,213 +389,218 @@ FT_BEGIN_HEADER /*************************************************************************/ /*************************************************************************/ - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Library */ - /* */ - /* <Description> */ - /* A handle to a FreeType library instance. Each `library' is */ - /* completely independent from the others; it is the `root' of a set */ - /* of objects like fonts, faces, sizes, etc. */ - /* */ - /* It also embeds a memory manager (see @FT_Memory), as well as a */ - /* scan-line converter object (see @FT_Raster). */ - /* */ - /* In multi-threaded applications, make sure that the same FT_Library */ - /* object or any of its children doesn't get accessed in parallel. */ - /* */ - /* <Note> */ - /* Library objects are normally created by @FT_Init_FreeType, and */ - /* destroyed with @FT_Done_FreeType. If you need reference-counting */ - /* (cf. @FT_Reference_Library), use @FT_New_Library and */ - /* @FT_Done_Library. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Library + * + * @description: + * A handle to a FreeType library instance. Each 'library' is completely + * independent from the others; it is the 'root' of a set of objects like + * fonts, faces, sizes, etc. + * + * It also embeds a memory manager (see @FT_Memory), as well as a + * scan-line converter object (see @FT_Raster). + * + * [Since 2.5.6] In multi-threaded applications it is easiest to use one + * `FT_Library` object per thread. In case this is too cumbersome, a + * single `FT_Library` object across threads is possible also, as long as + * a mutex lock is used around @FT_New_Face and @FT_Done_Face. + * + * @note: + * Library objects are normally created by @FT_Init_FreeType, and + * destroyed with @FT_Done_FreeType. If you need reference-counting + * (cf. @FT_Reference_Library), use @FT_New_Library and @FT_Done_Library. + */ typedef struct FT_LibraryRec_ *FT_Library; - /*************************************************************************/ - /* */ - /* <Section> */ - /* module_management */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * module_management + * + */ - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Module */ - /* */ - /* <Description> */ - /* A handle to a given FreeType module object. Each module can be a */ - /* font driver, a renderer, or anything else that provides services */ - /* to the formers. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Module + * + * @description: + * A handle to a given FreeType module object. A module can be a font + * driver, a renderer, or anything else that provides services to the + * former. + */ typedef struct FT_ModuleRec_* FT_Module; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Driver */ - /* */ - /* <Description> */ - /* A handle to a given FreeType font driver object. Each font driver */ - /* is a special module capable of creating faces from font files. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Driver + * + * @description: + * A handle to a given FreeType font driver object. A font driver is a + * module capable of creating faces from font files. + */ typedef struct FT_DriverRec_* FT_Driver; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Renderer */ - /* */ - /* <Description> */ - /* A handle to a given FreeType renderer. A renderer is a special */ - /* module in charge of converting a glyph image to a bitmap, when */ - /* necessary. Each renderer supports a given glyph image format, and */ - /* one or more target surface depths. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Renderer + * + * @description: + * A handle to a given FreeType renderer. A renderer is a module in + * charge of converting a glyph's outline image to a bitmap. It supports + * a single glyph image format, and one or more target surface depths. + */ typedef struct FT_RendererRec_* FT_Renderer; - /*************************************************************************/ - /* */ - /* <Section> */ - /* base_interface */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * base_interface + * + */ - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Face */ - /* */ - /* <Description> */ - /* A handle to a given typographic face object. A face object models */ - /* a given typeface, in a given style. */ - /* */ - /* <Note> */ - /* Each face object also owns a single @FT_GlyphSlot object, as well */ - /* as one or more @FT_Size objects. */ - /* */ - /* Use @FT_New_Face or @FT_Open_Face to create a new face object from */ - /* a given filepathname or a custom input stream. */ - /* */ - /* Use @FT_Done_Face to destroy it (along with its slot and sizes). */ - /* */ - /* <Also> */ - /* See @FT_FaceRec for the publicly accessible fields of a given face */ - /* object. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Face + * + * @description: + * A handle to a typographic face object. A face object models a given + * typeface, in a given style. + * + * @note: + * A face object also owns a single @FT_GlyphSlot object, as well as one + * or more @FT_Size objects. + * + * Use @FT_New_Face or @FT_Open_Face to create a new face object from a + * given filepath or a custom input stream. + * + * Use @FT_Done_Face to destroy it (along with its slot and sizes). + * + * An `FT_Face` object can only be safely used from one thread at a time. + * Similarly, creation and destruction of `FT_Face` with the same + * @FT_Library object can only be done from one thread at a time. On the + * other hand, functions like @FT_Load_Glyph and its siblings are + * thread-safe and do not need the lock to be held as long as the same + * `FT_Face` object is not used from multiple threads at the same time. + * + * @also: + * See @FT_FaceRec for the publicly accessible fields of a given face + * object. + */ typedef struct FT_FaceRec_* FT_Face; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Size */ - /* */ - /* <Description> */ - /* A handle to an object used to model a face scaled to a given */ - /* character size. */ - /* */ - /* <Note> */ - /* Each @FT_Face has an _active_ @FT_Size object that is used by */ - /* functions like @FT_Load_Glyph to determine the scaling */ - /* transformation that in turn is used to load and hint glyphs and */ - /* metrics. */ - /* */ - /* You can use @FT_Set_Char_Size, @FT_Set_Pixel_Sizes, */ - /* @FT_Request_Size or even @FT_Select_Size to change the content */ - /* (i.e., the scaling values) of the active @FT_Size. */ - /* */ - /* You can use @FT_New_Size to create additional size objects for a */ - /* given @FT_Face, but they won't be used by other functions until */ - /* you activate it through @FT_Activate_Size. Only one size can be */ - /* activated at any given time per face. */ - /* */ - /* <Also> */ - /* See @FT_SizeRec for the publicly accessible fields of a given size */ - /* object. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Size + * + * @description: + * A handle to an object that models a face scaled to a given character + * size. + * + * @note: + * An @FT_Face has one _active_ @FT_Size object that is used by functions + * like @FT_Load_Glyph to determine the scaling transformation that in + * turn is used to load and hint glyphs and metrics. + * + * You can use @FT_Set_Char_Size, @FT_Set_Pixel_Sizes, @FT_Request_Size + * or even @FT_Select_Size to change the content (i.e., the scaling + * values) of the active @FT_Size. + * + * You can use @FT_New_Size to create additional size objects for a given + * @FT_Face, but they won't be used by other functions until you activate + * it through @FT_Activate_Size. Only one size can be activated at any + * given time per face. + * + * @also: + * See @FT_SizeRec for the publicly accessible fields of a given size + * object. + */ typedef struct FT_SizeRec_* FT_Size; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_GlyphSlot */ - /* */ - /* <Description> */ - /* A handle to a given `glyph slot'. A slot is a container where it */ - /* is possible to load any of the glyphs contained in its parent */ - /* face. */ - /* */ - /* In other words, each time you call @FT_Load_Glyph or */ - /* @FT_Load_Char, the slot's content is erased by the new glyph data, */ - /* i.e., the glyph's metrics, its image (bitmap or outline), and */ - /* other control information. */ - /* */ - /* <Also> */ - /* See @FT_GlyphSlotRec for the publicly accessible glyph fields. */ - /* */ + /************************************************************************** + * + * @type: + * FT_GlyphSlot + * + * @description: + * A handle to a given 'glyph slot'. A slot is a container that can hold + * any of the glyphs contained in its parent face. + * + * In other words, each time you call @FT_Load_Glyph or @FT_Load_Char, + * the slot's content is erased by the new glyph data, i.e., the glyph's + * metrics, its image (bitmap or outline), and other control information. + * + * @also: + * See @FT_GlyphSlotRec for the publicly accessible glyph fields. + */ typedef struct FT_GlyphSlotRec_* FT_GlyphSlot; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_CharMap */ - /* */ - /* <Description> */ - /* A handle to a given character map. A charmap is used to translate */ - /* character codes in a given encoding into glyph indexes for its */ - /* parent's face. Some font formats may provide several charmaps per */ - /* font. */ - /* */ - /* Each face object owns zero or more charmaps, but only one of them */ - /* can be `active' and used by @FT_Get_Char_Index or @FT_Load_Char. */ - /* */ - /* The list of available charmaps in a face is available through the */ - /* `face->num_charmaps' and `face->charmaps' fields of @FT_FaceRec. */ - /* */ - /* The currently active charmap is available as `face->charmap'. */ - /* You should call @FT_Set_Charmap to change it. */ - /* */ - /* <Note> */ - /* When a new face is created (either through @FT_New_Face or */ - /* @FT_Open_Face), the library looks for a Unicode charmap within */ - /* the list and automatically activates it. */ - /* */ - /* <Also> */ - /* See @FT_CharMapRec for the publicly accessible fields of a given */ - /* character map. */ - /* */ + /************************************************************************** + * + * @type: + * FT_CharMap + * + * @description: + * A handle to a character map (usually abbreviated to 'charmap'). A + * charmap is used to translate character codes in a given encoding into + * glyph indexes for its parent's face. Some font formats may provide + * several charmaps per font. + * + * Each face object owns zero or more charmaps, but only one of them can + * be 'active', providing the data used by @FT_Get_Char_Index or + * @FT_Load_Char. + * + * The list of available charmaps in a face is available through the + * `face->num_charmaps` and `face->charmaps` fields of @FT_FaceRec. + * + * The currently active charmap is available as `face->charmap`. You + * should call @FT_Set_Charmap to change it. + * + * @note: + * When a new face is created (either through @FT_New_Face or + * @FT_Open_Face), the library looks for a Unicode charmap within the + * list and automatically activates it. If there is no Unicode charmap, + * FreeType doesn't set an 'active' charmap. + * + * @also: + * See @FT_CharMapRec for the publicly accessible fields of a given + * character map. + */ typedef struct FT_CharMapRec_* FT_CharMap; - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_ENC_TAG */ - /* */ - /* <Description> */ - /* This macro converts four-letter tags into an unsigned long. It is */ - /* used to define `encoding' identifiers (see @FT_Encoding). */ - /* */ - /* <Note> */ - /* Since many 16-bit compilers don't like 32-bit enumerations, you */ - /* should redefine this macro in case of problems to something like */ - /* this: */ - /* */ - /* { */ - /* #define FT_ENC_TAG( value, a, b, c, d ) value */ - /* } */ - /* */ - /* to get a simple enumeration without assigning special numbers. */ - /* */ + /************************************************************************** + * + * @macro: + * FT_ENC_TAG + * + * @description: + * This macro converts four-letter tags into an unsigned long. It is + * used to define 'encoding' identifiers (see @FT_Encoding). + * + * @note: + * Since many 16-bit compilers don't like 32-bit enumerations, you should + * redefine this macro in case of problems to something like this: + * + * ``` + * #define FT_ENC_TAG( value, a, b, c, d ) value + * ``` + * + * to get a simple enumeration without assigning special numbers. + */ #ifndef FT_ENC_TAG #define FT_ENC_TAG( value, a, b, c, d ) \ @@ -599,146 +612,147 @@ FT_BEGIN_HEADER #endif /* FT_ENC_TAG */ - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Encoding */ - /* */ - /* <Description> */ - /* An enumeration used to specify character sets supported by */ - /* charmaps. Used in the @FT_Select_Charmap API function. */ - /* */ - /* <Note> */ - /* Despite the name, this enumeration lists specific character */ - /* repertories (i.e., charsets), and not text encoding methods (e.g., */ - /* UTF-8, UTF-16, etc.). */ - /* */ - /* Other encodings might be defined in the future. */ - /* */ - /* <Values> */ - /* FT_ENCODING_NONE :: */ - /* The encoding value~0 is reserved. */ - /* */ - /* FT_ENCODING_UNICODE :: */ - /* Corresponds to the Unicode character set. This value covers */ - /* all versions of the Unicode repertoire, including ASCII and */ - /* Latin-1. Most fonts include a Unicode charmap, but not all */ - /* of them. */ - /* */ - /* For example, if you want to access Unicode value U+1F028 (and */ - /* the font contains it), use value 0x1F028 as the input value for */ - /* @FT_Get_Char_Index. */ - /* */ - /* FT_ENCODING_MS_SYMBOL :: */ - /* Corresponds to the Microsoft Symbol encoding, used to encode */ - /* mathematical symbols in the 32..255 character code range. For */ - /* more information, see */ - /* `http://www.kostis.net/charsets/symbol.htm'. */ - /* */ - /* FT_ENCODING_SJIS :: */ - /* Corresponds to Japanese SJIS encoding. More info at */ - /* at `http://en.wikipedia.org/wiki/Shift_JIS'. */ - /* See note on multi-byte encodings below. */ - /* */ - /* FT_ENCODING_GB2312 :: */ - /* Corresponds to an encoding system for Simplified Chinese as used */ - /* used in mainland China. */ - /* */ - /* FT_ENCODING_BIG5 :: */ - /* Corresponds to an encoding system for Traditional Chinese as */ - /* used in Taiwan and Hong Kong. */ - /* */ - /* FT_ENCODING_WANSUNG :: */ - /* Corresponds to the Korean encoding system known as Wansung. */ - /* For more information see */ - /* `http://msdn.microsoft.com/en-US/goglobal/cc305154'. */ - /* */ - /* FT_ENCODING_JOHAB :: */ - /* The Korean standard character set (KS~C 5601-1992), which */ - /* corresponds to MS Windows code page 1361. This character set */ - /* includes all possible Hangeul character combinations. */ - /* */ - /* FT_ENCODING_ADOBE_LATIN_1 :: */ - /* Corresponds to a Latin-1 encoding as defined in a Type~1 */ - /* PostScript font. It is limited to 256 character codes. */ - /* */ - /* FT_ENCODING_ADOBE_STANDARD :: */ - /* Corresponds to the Adobe Standard encoding, as found in Type~1, */ - /* CFF, and OpenType/CFF fonts. It is limited to 256 character */ - /* codes. */ - /* */ - /* FT_ENCODING_ADOBE_EXPERT :: */ - /* Corresponds to the Adobe Expert encoding, as found in Type~1, */ - /* CFF, and OpenType/CFF fonts. It is limited to 256 character */ - /* codes. */ - /* */ - /* FT_ENCODING_ADOBE_CUSTOM :: */ - /* Corresponds to a custom encoding, as found in Type~1, CFF, and */ - /* OpenType/CFF fonts. It is limited to 256 character codes. */ - /* */ - /* FT_ENCODING_APPLE_ROMAN :: */ - /* Corresponds to the 8-bit Apple roman encoding. Many TrueType */ - /* and OpenType fonts contain a charmap for this encoding, since */ - /* older versions of Mac OS are able to use it. */ - /* */ - /* FT_ENCODING_OLD_LATIN_2 :: */ - /* This value is deprecated and was never used nor reported by */ - /* FreeType. Don't use or test for it. */ - /* */ - /* FT_ENCODING_MS_SJIS :: */ - /* Same as FT_ENCODING_SJIS. Deprecated. */ - /* */ - /* FT_ENCODING_MS_GB2312 :: */ - /* Same as FT_ENCODING_GB2312. Deprecated. */ - /* */ - /* FT_ENCODING_MS_BIG5 :: */ - /* Same as FT_ENCODING_BIG5. Deprecated. */ - /* */ - /* FT_ENCODING_MS_WANSUNG :: */ - /* Same as FT_ENCODING_WANSUNG. Deprecated. */ - /* */ - /* FT_ENCODING_MS_JOHAB :: */ - /* Same as FT_ENCODING_JOHAB. Deprecated. */ - /* */ - /* <Note> */ - /* By default, FreeType automatically synthesizes a Unicode charmap */ - /* for PostScript fonts, using their glyph names 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. */ - /* */ - /* 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 */ - /* FT_ENCODING_UNICODE). Use @FT_Get_BDF_Charset_ID to find out */ - /* which encoding is really present. If, for example, the */ - /* `cs_registry' field is `KOI8' and the `cs_encoding' field is `R', */ - /* the font is encoded in KOI8-R. */ - /* */ - /* FT_ENCODING_NONE is always set (with a single exception) by the */ - /* winfonts driver. Use @FT_Get_WinFNT_Header and examine the */ - /* `charset' field of the @FT_WinFNT_HeaderRec structure to find out */ - /* which encoding is really present. For example, */ - /* @FT_WinFNT_ID_CP1251 (204) means Windows code page 1251 (for */ - /* Russian). */ - /* */ - /* FT_ENCODING_NONE is set if `platform_id' is @TT_PLATFORM_MACINTOSH */ - /* and `encoding_id' is not @TT_MAC_ID_ROMAN (otherwise it is set to */ - /* FT_ENCODING_APPLE_ROMAN). */ - /* */ - /* If `platform_id' is @TT_PLATFORM_MACINTOSH, use the function */ - /* @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 */ - /* */ - /* 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. */ - /* Then examine `encoding_id'. If, for example, `encoding_id' is */ - /* @TT_MAC_ID_ROMAN and the language ID (minus~1) is */ - /* `TT_MAC_LANGID_GREEK', it is the Greek encoding, not Roman. */ - /* @TT_MAC_ID_ARABIC with `TT_MAC_LANGID_FARSI' means the Farsi */ - /* variant the Arabic encoding. */ - /* */ + /************************************************************************** + * + * @enum: + * FT_Encoding + * + * @description: + * An enumeration to specify character sets supported by charmaps. Used + * in the @FT_Select_Charmap API function. + * + * @note: + * Despite the name, this enumeration lists specific character + * repertories (i.e., charsets), and not text encoding methods (e.g., + * UTF-8, UTF-16, etc.). + * + * Other encodings might be defined in the future. + * + * @values: + * FT_ENCODING_NONE :: + * The encoding value~0 is reserved for all formats except BDF, PCF, + * and Windows FNT; see below for more information. + * + * FT_ENCODING_UNICODE :: + * The Unicode character set. This value covers all versions of the + * Unicode repertoire, including ASCII and Latin-1. Most fonts include + * a Unicode charmap, but not all of them. + * + * For example, if you want to access Unicode value U+1F028 (and the + * font contains it), use value 0x1F028 as the input value for + * @FT_Get_Char_Index. + * + * FT_ENCODING_MS_SYMBOL :: + * Microsoft Symbol encoding, used to encode mathematical symbols and + * wingdings. For more information, see + * 'https://www.microsoft.com/typography/otspec/recom.htm', + * 'http://www.kostis.net/charsets/symbol.htm', and + * 'http://www.kostis.net/charsets/wingding.htm'. + * + * This encoding uses character codes from the PUA (Private Unicode + * Area) in the range U+F020-U+F0FF. + * + * FT_ENCODING_SJIS :: + * Shift JIS encoding for Japanese. More info at + * 'https://en.wikipedia.org/wiki/Shift_JIS'. See note on multi-byte + * encodings below. + * + * FT_ENCODING_PRC :: + * Corresponds to encoding systems mainly for Simplified Chinese as + * used in People's Republic of China (PRC). The encoding layout is + * based on GB~2312 and its supersets GBK and GB~18030. + * + * FT_ENCODING_BIG5 :: + * Corresponds to an encoding system for Traditional Chinese as used in + * Taiwan and Hong Kong. + * + * FT_ENCODING_WANSUNG :: + * Corresponds to the Korean encoding system known as Extended Wansung + * (MS Windows code page 949). For more information see + * 'https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit949.txt'. + * + * FT_ENCODING_JOHAB :: + * The Korean standard character set (KS~C 5601-1992), which + * corresponds to MS Windows code page 1361. This character set + * includes all possible Hangul character combinations. + * + * FT_ENCODING_ADOBE_LATIN_1 :: + * Corresponds to a Latin-1 encoding as defined in a Type~1 PostScript + * font. It is limited to 256 character codes. + * + * FT_ENCODING_ADOBE_STANDARD :: + * Adobe Standard encoding, as found in Type~1, CFF, and OpenType/CFF + * fonts. It is limited to 256 character codes. + * + * FT_ENCODING_ADOBE_EXPERT :: + * Adobe Expert encoding, as found in Type~1, CFF, and OpenType/CFF + * fonts. It is limited to 256 character codes. + * + * FT_ENCODING_ADOBE_CUSTOM :: + * Corresponds to a custom encoding, as found in Type~1, CFF, and + * OpenType/CFF fonts. It is limited to 256 character codes. + * + * FT_ENCODING_APPLE_ROMAN :: + * Apple roman encoding. Many TrueType and OpenType fonts contain a + * charmap for this 8-bit encoding, since older versions of Mac OS are + * able to use it. + * + * FT_ENCODING_OLD_LATIN_2 :: + * This value is deprecated and was neither used nor reported by + * FreeType. Don't use or test for it. + * + * FT_ENCODING_MS_SJIS :: + * Same as FT_ENCODING_SJIS. Deprecated. + * + * FT_ENCODING_MS_GB2312 :: + * Same as FT_ENCODING_PRC. Deprecated. + * + * FT_ENCODING_MS_BIG5 :: + * Same as FT_ENCODING_BIG5. Deprecated. + * + * FT_ENCODING_MS_WANSUNG :: + * Same as FT_ENCODING_WANSUNG. Deprecated. + * + * FT_ENCODING_MS_JOHAB :: + * Same as FT_ENCODING_JOHAB. Deprecated. + * + * @note: + * 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 + * `FT_ENCODING_UNICODE`). Use @FT_Get_BDF_Charset_ID to find out which + * encoding is really present. If, for example, the `cs_registry` field + * is 'KOI8' and the `cs_encoding` field is 'R', the font is encoded in + * KOI8-R. + * + * `FT_ENCODING_NONE` is always set (with a single exception) by the + * winfonts driver. Use @FT_Get_WinFNT_Header and examine the `charset` + * field of the @FT_WinFNT_HeaderRec structure to find out which encoding + * is really present. For example, @FT_WinFNT_ID_CP1251 (204) means + * Windows code page 1251 (for Russian). + * + * `FT_ENCODING_NONE` is set if `platform_id` is @TT_PLATFORM_MACINTOSH + * and `encoding_id` is not `TT_MAC_ID_ROMAN` (otherwise it is set to + * `FT_ENCODING_APPLE_ROMAN`). + * + * If `platform_id` is @TT_PLATFORM_MACINTOSH, use the function + * @FT_Get_CMap_Language_ID to query the Mac language ID that may be + * needed to be able to distinguish Apple encoding variants. See + * + * 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. Then examine + * `encoding_id`. If, for example, `encoding_id` is `TT_MAC_ID_ROMAN` + * and the language ID (minus~1) is `TT_MAC_LANGID_GREEK`, it is the + * Greek encoding, not Roman. `TT_MAC_ID_ARABIC` with + * `TT_MAC_LANGID_FARSI` means the Farsi variant the Arabic encoding. + */ typedef enum FT_Encoding_ { FT_ENC_TAG( FT_ENCODING_NONE, 0, 0, 0, 0 ), @@ -747,14 +761,15 @@ FT_BEGIN_HEADER FT_ENC_TAG( FT_ENCODING_UNICODE, 'u', 'n', 'i', 'c' ), FT_ENC_TAG( FT_ENCODING_SJIS, 's', 'j', 'i', 's' ), - FT_ENC_TAG( FT_ENCODING_GB2312, 'g', 'b', ' ', ' ' ), + FT_ENC_TAG( FT_ENCODING_PRC, 'g', 'b', ' ', ' ' ), FT_ENC_TAG( FT_ENCODING_BIG5, 'b', 'i', 'g', '5' ), FT_ENC_TAG( FT_ENCODING_WANSUNG, 'w', 'a', 'n', 's' ), FT_ENC_TAG( FT_ENCODING_JOHAB, 'j', 'o', 'h', 'a' ), - /* for backwards compatibility */ + /* for backward compatibility */ + FT_ENCODING_GB2312 = FT_ENCODING_PRC, FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS, - FT_ENCODING_MS_GB2312 = FT_ENCODING_GB2312, + FT_ENCODING_MS_GB2312 = FT_ENCODING_PRC, FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5, FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG, FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB, @@ -771,7 +786,7 @@ FT_BEGIN_HEADER } FT_Encoding; - /* these constants are deprecated; use the corresponding `FT_Encoding' */ + /* these constants are deprecated; use the corresponding `FT_Encoding` */ /* values instead */ #define ft_encoding_none FT_ENCODING_NONE #define ft_encoding_unicode FT_ENCODING_UNICODE @@ -779,7 +794,7 @@ FT_BEGIN_HEADER #define ft_encoding_latin_1 FT_ENCODING_ADOBE_LATIN_1 #define ft_encoding_latin_2 FT_ENCODING_OLD_LATIN_2 #define ft_encoding_sjis FT_ENCODING_SJIS -#define ft_encoding_gb2312 FT_ENCODING_GB2312 +#define ft_encoding_gb2312 FT_ENCODING_PRC #define ft_encoding_big5 FT_ENCODING_BIG5 #define ft_encoding_wansung FT_ENCODING_WANSUNG #define ft_encoding_johab FT_ENCODING_JOHAB @@ -790,29 +805,31 @@ FT_BEGIN_HEADER #define ft_encoding_apple_roman FT_ENCODING_APPLE_ROMAN - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_CharMapRec */ - /* */ - /* <Description> */ - /* The base charmap structure. */ - /* */ - /* <Fields> */ - /* face :: A handle to the parent face object. */ - /* */ - /* encoding :: An @FT_Encoding tag identifying the charmap. Use */ - /* this with @FT_Select_Charmap. */ - /* */ - /* platform_id :: An ID number describing the platform for the */ - /* following encoding ID. This comes directly from */ - /* the TrueType specification and should be emulated */ - /* for other formats. */ - /* */ - /* encoding_id :: A platform specific encoding number. This also */ - /* comes from the TrueType specification and should be */ - /* emulated similarly. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_CharMapRec + * + * @description: + * The base charmap structure. + * + * @fields: + * face :: + * A handle to the parent face object. + * + * encoding :: + * An @FT_Encoding tag identifying the charmap. Use this with + * @FT_Select_Charmap. + * + * platform_id :: + * An ID number describing the platform for the following encoding ID. + * This comes directly from the TrueType specification and gets + * emulated for other formats. + * + * encoding_id :: + * A platform-specific encoding number. This also comes from the + * TrueType specification and gets emulated similarly. + */ typedef struct FT_CharMapRec_ { FT_Face face; @@ -832,166 +849,195 @@ FT_BEGIN_HEADER /*************************************************************************/ - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Face_Internal */ - /* */ - /* <Description> */ - /* An opaque handle to an `FT_Face_InternalRec' structure, used to */ - /* model private data of a given @FT_Face object. */ - /* */ - /* This structure might change between releases of FreeType~2 and is */ - /* not generally available to client applications. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Face_Internal + * + * @description: + * An opaque handle to an `FT_Face_InternalRec` structure that models the + * private data of a given @FT_Face object. + * + * This structure might change between releases of FreeType~2 and is not + * generally available to client applications. + */ typedef struct FT_Face_InternalRec_* FT_Face_Internal; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_FaceRec */ - /* */ - /* <Description> */ - /* FreeType root face class structure. A face object models a */ - /* typeface in a font file. */ - /* */ - /* <Fields> */ - /* num_faces :: The number of faces in the font file. Some */ - /* font formats can have multiple faces in */ - /* a font file. */ - /* */ - /* face_index :: The index of the face in the font file. It */ - /* is set to~0 if there is only one face in */ - /* the font file. */ - /* */ - /* face_flags :: A set of bit flags that give important */ - /* information about the face; see */ - /* @FT_FACE_FLAG_XXX for the details. */ - /* */ - /* style_flags :: A set of bit flags indicating the style of */ - /* the face; see @FT_STYLE_FLAG_XXX for the */ - /* details. */ - /* */ - /* num_glyphs :: The number of glyphs in the face. If the */ - /* face is scalable and has sbits (see */ - /* `num_fixed_sizes'), it is set to the number */ - /* of outline glyphs. */ - /* */ - /* For CID-keyed fonts, this value gives the */ - /* highest CID used in the font. */ - /* */ - /* family_name :: The face's family name. This is an ASCII */ - /* string, usually in English, that describes */ - /* the typeface's family (like `Times New */ - /* Roman', `Bodoni', `Garamond', etc). This */ - /* is a least common denominator used to list */ - /* fonts. Some formats (TrueType & OpenType) */ - /* provide localized and Unicode versions of */ - /* this string. Applications should use the */ - /* format specific interface to access them. */ - /* Can be NULL (e.g., in fonts embedded in a */ - /* PDF file). */ - /* */ - /* style_name :: The face's style name. This is an ASCII */ - /* string, usually in English, that describes */ - /* the typeface's style (like `Italic', */ - /* `Bold', `Condensed', etc). Not all font */ - /* formats provide a style name, so this field */ - /* is optional, and can be set to NULL. As */ - /* for `family_name', some formats provide */ - /* localized and Unicode versions of this */ - /* string. Applications should use the format */ - /* specific interface to access them. */ - /* */ - /* num_fixed_sizes :: The number of bitmap strikes in the face. */ - /* Even if the face is scalable, there might */ - /* still be bitmap strikes, which are called */ - /* `sbits' in that case. */ - /* */ - /* available_sizes :: An array of @FT_Bitmap_Size for all bitmap */ - /* strikes in the face. It is set to NULL if */ - /* there is no bitmap strike. */ - /* */ - /* num_charmaps :: The number of charmaps in the face. */ - /* */ - /* charmaps :: An array of the charmaps of the face. */ - /* */ - /* generic :: A field reserved for client uses. See the */ - /* @FT_Generic type description. */ - /* */ - /* bbox :: The font bounding box. Coordinates are */ - /* expressed in font units (see */ - /* `units_per_EM'). The box is large enough */ - /* to contain any glyph from the font. Thus, */ - /* `bbox.yMax' can be seen as the `maximum */ - /* ascender', and `bbox.yMin' as the `minimum */ - /* descender'. Only relevant for scalable */ - /* formats. */ - /* */ - /* Note that the bounding box might be off by */ - /* (at least) one pixel for hinted fonts. See */ - /* @FT_Size_Metrics for further discussion. */ - /* */ - /* units_per_EM :: The number of font units per EM square for */ - /* this face. This is typically 2048 for */ - /* TrueType fonts, and 1000 for Type~1 fonts. */ - /* Only relevant for scalable formats. */ - /* */ - /* ascender :: The typographic ascender of the face, */ - /* expressed in font units. For font formats */ - /* not having this information, it is set to */ - /* `bbox.yMax'. Only relevant for scalable */ - /* formats. */ - /* */ - /* descender :: The typographic descender of the face, */ - /* expressed in font units. For font formats */ - /* not having this information, it is set to */ - /* `bbox.yMin'. Note that this field is */ - /* usually negative. Only relevant for */ - /* scalable formats. */ - /* */ - /* height :: This value is the vertical distance */ - /* between two consecutive baselines, */ - /* expressed in font units. It is always */ - /* positive. Only relevant for scalable */ - /* formats. */ - /* */ - /* If you want the global glyph height, use */ - /* `ascender - descender'. */ - /* */ - /* max_advance_width :: The maximum advance width, in font units, */ - /* for all glyphs in this face. This can be */ - /* used to make word wrapping computations */ - /* faster. Only relevant for scalable */ - /* formats. */ - /* */ - /* max_advance_height :: The maximum advance height, in font units, */ - /* for all glyphs in this face. This is only */ - /* relevant for vertical layouts, and is set */ - /* to `height' for fonts that do not provide */ - /* vertical metrics. Only relevant for */ - /* scalable formats. */ - /* */ - /* underline_position :: The position, in font units, of the */ - /* underline line for this face. It is the */ - /* center of the underlining stem. Only */ - /* relevant for scalable formats. */ - /* */ - /* underline_thickness :: The thickness, in font units, of the */ - /* underline for this face. Only relevant for */ - /* scalable formats. */ - /* */ - /* glyph :: The face's associated glyph slot(s). */ - /* */ - /* size :: The current active size for this face. */ - /* */ - /* charmap :: The current active charmap for this face. */ - /* */ - /* <Note> */ - /* Fields may be changed after a call to @FT_Attach_File or */ - /* @FT_Attach_Stream. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_FaceRec + * + * @description: + * FreeType root face class structure. A face object models a typeface + * in a font file. + * + * @fields: + * num_faces :: + * The number of faces in the font file. Some font formats can have + * multiple faces in a single font file. + * + * face_index :: + * This field holds two different values. Bits 0-15 are the index of + * the face in the font file (starting with value~0). They are set + * to~0 if there is only one face in the font file. + * + * [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. + * + * [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 `num_fixed_sizes`), it is set to the number of outline + * glyphs. + * + * For CID-keyed fonts (not in an SFNT wrapper) this value gives the + * highest CID used in the font. + * + * family_name :: + * The face's family name. This is an ASCII string, usually in + * English, that describes the typeface's family (like 'Times New + * Roman', 'Bodoni', 'Garamond', etc). This is a least common + * denominator used to list fonts. Some formats (TrueType & OpenType) + * provide localized and Unicode versions of this string. Applications + * should use the format-specific interface to access them. Can be + * `NULL` (e.g., in fonts embedded in a PDF file). + * + * In case the font doesn't provide a specific family name entry, + * FreeType tries to synthesize one, deriving it from other name + * entries. + * + * style_name :: + * The face's style name. This is an ASCII string, usually in English, + * that describes the typeface's style (like 'Italic', 'Bold', + * 'Condensed', etc). Not all font formats provide a style name, so + * this field is optional, and can be set to `NULL`. As for + * `family_name`, some formats provide localized and Unicode versions + * of this string. Applications should use the format-specific + * interface to access them. + * + * num_fixed_sizes :: + * The number of bitmap strikes in the face. Even if the face is + * scalable, there might still be bitmap strikes, which are called + * 'sbits' in that case. + * + * available_sizes :: + * An array of @FT_Bitmap_Size for all bitmap strikes in the face. It + * is set to `NULL` if there is no bitmap strike. + * + * Note that FreeType tries to sanitize the strike data since they are + * sometimes sloppy or incorrect, but this can easily fail. + * + * num_charmaps :: + * The number of charmaps in the face. + * + * charmaps :: + * An array of the charmaps of the face. + * + * generic :: + * A field reserved for client uses. See the @FT_Generic type + * description. + * + * bbox :: + * The font bounding box. Coordinates are expressed in font units (see + * `units_per_EM`). The box is large enough to contain any glyph from + * the font. Thus, `bbox.yMax` can be seen as the 'maximum ascender', + * and `bbox.yMin` as the 'minimum descender'. Only relevant for + * scalable formats. + * + * Note that the bounding box might be off by (at least) one pixel for + * hinted fonts. See @FT_Size_Metrics for further discussion. + * + * units_per_EM :: + * The number of font units per EM square for this face. This is + * typically 2048 for TrueType fonts, and 1000 for Type~1 fonts. Only + * relevant for scalable formats. + * + * ascender :: + * The typographic ascender of the face, expressed in font units. For + * font formats not having this information, it is set to `bbox.yMax`. + * Only relevant for scalable formats. + * + * descender :: + * The typographic descender of the face, expressed in font units. For + * font formats not having this information, it is set to `bbox.yMin`. + * Note that this field is negative for values below the baseline. + * Only relevant for scalable formats. + * + * height :: + * This value is the vertical distance between two consecutive + * baselines, expressed in font units. It is always positive. Only + * relevant for scalable formats. + * + * If you want the global glyph height, use `ascender - descender`. + * + * max_advance_width :: + * The maximum advance width, in font units, for all glyphs in this + * face. This can be used to make word wrapping computations faster. + * Only relevant for scalable formats. + * + * max_advance_height :: + * The maximum advance height, in font units, for all glyphs in this + * face. This is only relevant for vertical layouts, and is set to + * `height` for fonts that do not provide vertical metrics. Only + * relevant for scalable formats. + * + * underline_position :: + * The position, in font units, of the underline line for this face. + * It is the center of the underlining stem. Only relevant for + * scalable formats. + * + * underline_thickness :: + * The thickness, in font units, of the underline for this face. Only + * relevant for scalable formats. + * + * glyph :: + * The face's associated glyph slot(s). + * + * size :: + * The current active size for this face. + * + * charmap :: + * The current active charmap for this face. + * + * @note: + * Fields may be changed after a call to @FT_Attach_File or + * @FT_Attach_Stream. + * + * For an OpenType variation font, the values of the following fields can + * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if + * the font contains an 'MVAR' table: `ascender`, `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; @@ -1013,7 +1059,7 @@ FT_BEGIN_HEADER FT_Generic generic; - /*# The following member variables (down to `underline_thickness') */ + /*# The following member variables (down to `underline_thickness`) */ /*# are only relevant to scalable outlines; cf. @FT_Bitmap_Size */ /*# for bitmap fonts. */ FT_BBox bbox; @@ -1051,108 +1097,116 @@ FT_BEGIN_HEADER } FT_FaceRec; - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_FACE_FLAG_XXX */ - /* */ - /* <Description> */ - /* A list of bit flags used in the `face_flags' field of the */ - /* @FT_FaceRec structure. They inform client applications of */ - /* properties of the corresponding face. */ - /* */ - /* <Values> */ - /* FT_FACE_FLAG_SCALABLE :: */ - /* Indicates that the face contains outline glyphs. This doesn't */ - /* prevent bitmap strikes, i.e., a face can have both this and */ - /* and @FT_FACE_FLAG_FIXED_SIZES set. */ - /* */ - /* FT_FACE_FLAG_FIXED_SIZES :: */ - /* Indicates that the face contains bitmap strikes. See also the */ - /* `num_fixed_sizes' and `available_sizes' fields of @FT_FaceRec. */ - /* */ - /* FT_FACE_FLAG_FIXED_WIDTH :: */ - /* Indicates that the face contains fixed-width characters (like */ - /* Courier, Lucido, MonoType, etc.). */ - /* */ - /* FT_FACE_FLAG_SFNT :: */ - /* Indicates that the face uses the `sfnt' storage scheme. For */ - /* now, this means TrueType and OpenType. */ - /* */ - /* FT_FACE_FLAG_HORIZONTAL :: */ - /* Indicates that the face contains horizontal glyph metrics. This */ - /* should be set for all common formats. */ - /* */ - /* FT_FACE_FLAG_VERTICAL :: */ - /* Indicates that the face contains vertical glyph metrics. This */ - /* is only available in some formats, not all of them. */ - /* */ - /* FT_FACE_FLAG_KERNING :: */ - /* Indicates that the face contains kerning information. If set, */ - /* the kerning distance can be retrieved through the function */ - /* @FT_Get_Kerning. Otherwise the function always return the */ - /* vector (0,0). Note that FreeType doesn't handle kerning data */ - /* from the `GPOS' table (as present in some OpenType fonts). */ - /* */ - /* FT_FACE_FLAG_FAST_GLYPHS :: */ - /* THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT. */ - /* */ - /* FT_FACE_FLAG_MULTIPLE_MASTERS :: */ - /* Indicates that the font contains multiple masters and is capable */ - /* of interpolating between them. See the multiple-masters */ - /* specific API for details. */ - /* */ - /* FT_FACE_FLAG_GLYPH_NAMES :: */ - /* Indicates that the font contains glyph names that can be */ - /* retrieved through @FT_Get_Glyph_Name. Note that some TrueType */ - /* fonts contain broken glyph name tables. Use the function */ - /* @FT_Has_PS_Glyph_Names when needed. */ - /* */ - /* FT_FACE_FLAG_EXTERNAL_STREAM :: */ - /* Used internally by FreeType to indicate that a face's stream was */ - /* provided by the client application and should not be destroyed */ - /* when @FT_Done_Face is called. Don't read or test this flag. */ - /* */ - /* FT_FACE_FLAG_HINTER :: */ - /* Set if the font driver has a hinting machine of its own. For */ - /* example, with TrueType fonts, it makes sense to use data from */ - /* the SFNT `gasp' table only if the native TrueType hinting engine */ - /* (with the bytecode interpreter) is available and active. */ - /* */ - /* FT_FACE_FLAG_CID_KEYED :: */ - /* Set if the font is CID-keyed. In that case, the font is not */ - /* accessed by glyph indices but by CID values. For subsetted */ - /* CID-keyed fonts this has the consequence that not all index */ - /* values are a valid argument to FT_Load_Glyph. Only the CID */ - /* values for which corresponding glyphs in the subsetted font */ - /* exist make FT_Load_Glyph return successfully; in all other cases */ - /* you get an `FT_Err_Invalid_Argument' error. */ - /* */ - /* Note that CID-keyed fonts that are in an SFNT wrapper don't */ - /* have this flag set since the glyphs are accessed in the normal */ - /* way (using contiguous indices); the `CID-ness' isn't visible to */ - /* the application. */ - /* */ - /* FT_FACE_FLAG_TRICKY :: */ - /* Set if the font is `tricky', this is, it always needs the */ - /* font format's native hinting engine to get a reasonable result. */ - /* A typical example is the Chinese font `mingli.ttf' that uses */ - /* TrueType bytecode instructions to move and scale all of its */ - /* subglyphs. */ - /* */ - /* It is not possible to autohint such fonts using */ - /* @FT_LOAD_FORCE_AUTOHINT; it will also ignore */ - /* @FT_LOAD_NO_HINTING. You have to set both @FT_LOAD_NO_HINTING */ - /* and @FT_LOAD_NO_AUTOHINT to really disable hinting; however, you */ - /* probably never want this except for demonstration purposes. */ - /* */ - /* Currently, there are about a dozen TrueType fonts in the list of */ - /* tricky fonts; they are hard-coded in file `ttobjs.c'. */ - /* */ - /* FT_FACE_FLAG_COLOR :: */ - /* Set if the font has color glyph tables. To access color glyphs */ - /* use @FT_LOAD_COLOR. */ - /* */ + /************************************************************************** + * + * @enum: + * FT_FACE_FLAG_XXX + * + * @description: + * A list of bit flags used in the `face_flags` field of the @FT_FaceRec + * structure. They inform client applications of properties of the + * corresponding face. + * + * @values: + * FT_FACE_FLAG_SCALABLE :: + * The face contains outline glyphs. Note that a face can contain + * bitmap strikes also, i.e., a face can have both this flag and + * @FT_FACE_FLAG_FIXED_SIZES set. + * + * FT_FACE_FLAG_FIXED_SIZES :: + * The face contains bitmap strikes. See also the `num_fixed_sizes` + * and `available_sizes` fields of @FT_FaceRec. + * + * FT_FACE_FLAG_FIXED_WIDTH :: + * The face contains fixed-width characters (like Courier, Lucida, + * MonoType, etc.). + * + * FT_FACE_FLAG_SFNT :: + * The face uses the SFNT storage scheme. For now, this means TrueType + * and OpenType. + * + * FT_FACE_FLAG_HORIZONTAL :: + * The face contains horizontal glyph metrics. This should be set for + * all common formats. + * + * FT_FACE_FLAG_VERTICAL :: + * The face contains vertical glyph metrics. This is only available in + * some formats, not all of them. + * + * FT_FACE_FLAG_KERNING :: + * The face contains kerning information. If set, the kerning distance + * can be retrieved using the function @FT_Get_Kerning. Otherwise the + * function always return the vector (0,0). Note that FreeType doesn't + * handle kerning data from the SFNT 'GPOS' table (as present in many + * OpenType fonts). + * + * FT_FACE_FLAG_FAST_GLYPHS :: + * THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT. + * + * FT_FACE_FLAG_MULTIPLE_MASTERS :: + * The face contains multiple masters and is capable of interpolating + * between them. Supported formats are Adobe MM, TrueType GX, and + * OpenType variation fonts. + * + * See section @multiple_masters for API details. + * + * FT_FACE_FLAG_GLYPH_NAMES :: + * The face contains glyph names, which can be retrieved using + * @FT_Get_Glyph_Name. Note that some TrueType fonts contain broken + * glyph name tables. Use the function @FT_Has_PS_Glyph_Names when + * needed. + * + * FT_FACE_FLAG_EXTERNAL_STREAM :: + * Used internally by FreeType to indicate that a face's stream was + * provided by the client application and should not be destroyed when + * @FT_Done_Face is called. Don't read or test this flag. + * + * FT_FACE_FLAG_HINTER :: + * The font driver has a hinting machine of its own. For example, with + * TrueType fonts, it makes sense to use data from the SFNT 'gasp' + * table only if the native TrueType hinting engine (with the bytecode + * interpreter) is available and active. + * + * FT_FACE_FLAG_CID_KEYED :: + * The face is CID-keyed. In that case, the face is not accessed by + * glyph indices but by CID values. For subsetted CID-keyed fonts this + * has the consequence that not all index values are a valid argument + * to @FT_Load_Glyph. Only the CID values for which corresponding + * glyphs in the subsetted font exist make `FT_Load_Glyph` return + * successfully; in all other cases you get an + * `FT_Err_Invalid_Argument` error. + * + * Note that CID-keyed fonts that are in an SFNT wrapper (this is, all + * OpenType/CFF fonts) don't have this flag set since the glyphs are + * accessed in the normal way (using contiguous indices); the + * 'CID-ness' isn't visible to the application. + * + * FT_FACE_FLAG_TRICKY :: + * The face is 'tricky', this is, it always needs the font format's + * native hinting engine to get a reasonable result. A typical example + * is the old Chinese font `mingli.ttf` (but not `mingliu.ttc`) that + * uses TrueType bytecode instructions to move and scale all of its + * subglyphs. + * + * It is not possible to auto-hint such fonts using + * @FT_LOAD_FORCE_AUTOHINT; it will also ignore @FT_LOAD_NO_HINTING. + * You have to set both @FT_LOAD_NO_HINTING and @FT_LOAD_NO_AUTOHINT to + * really disable hinting; however, you probably never want this except + * for demonstration purposes. + * + * Currently, there are about a dozen TrueType fonts in the list of + * tricky fonts; they are hard-coded in file `ttobjs.c`. + * + * FT_FACE_FLAG_COLOR :: + * [Since 2.5.1] The face has color glyph tables. See @FT_LOAD_COLOR + * for more information. + * + * 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 ) #define FT_FACE_FLAG_FIXED_WIDTH ( 1L << 2 ) @@ -1168,29 +1222,30 @@ 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 ) - /************************************************************************* + /************************************************************************** * * @macro: - * FT_HAS_HORIZONTAL( face ) + * FT_HAS_HORIZONTAL * * @description: - * A macro that returns true whenever a face object contains - * horizontal metrics (this is true for all font formats though). + * A macro that returns true whenever a face object contains horizontal + * metrics (this is true for all font formats though). * * @also: * @FT_HAS_VERTICAL can be used to check for vertical metrics. * */ #define FT_HAS_HORIZONTAL( face ) \ - ( face->face_flags & FT_FACE_FLAG_HORIZONTAL ) + ( (face)->face_flags & FT_FACE_FLAG_HORIZONTAL ) - /************************************************************************* + /************************************************************************** * * @macro: - * FT_HAS_VERTICAL( face ) + * FT_HAS_VERTICAL * * @description: * A macro that returns true whenever a face object contains real @@ -1198,91 +1253,91 @@ FT_BEGIN_HEADER * */ #define FT_HAS_VERTICAL( face ) \ - ( face->face_flags & FT_FACE_FLAG_VERTICAL ) + ( (face)->face_flags & FT_FACE_FLAG_VERTICAL ) - /************************************************************************* + /************************************************************************** * * @macro: - * FT_HAS_KERNING( face ) + * FT_HAS_KERNING * * @description: - * A macro that returns true whenever a face object contains kerning - * data that can be accessed with @FT_Get_Kerning. + * A macro that returns true whenever a face object contains kerning data + * that can be accessed with @FT_Get_Kerning. * */ #define FT_HAS_KERNING( face ) \ - ( face->face_flags & FT_FACE_FLAG_KERNING ) + ( (face)->face_flags & FT_FACE_FLAG_KERNING ) - /************************************************************************* + /************************************************************************** * * @macro: - * FT_IS_SCALABLE( face ) + * FT_IS_SCALABLE * * @description: * A macro that returns true whenever a face object contains a scalable - * font face (true for TrueType, Type~1, Type~42, CID, OpenType/CFF, - * and PFR font formats. + * font face (true for TrueType, Type~1, Type~42, CID, OpenType/CFF, and + * PFR font formats). * */ #define FT_IS_SCALABLE( face ) \ - ( face->face_flags & FT_FACE_FLAG_SCALABLE ) + ( (face)->face_flags & FT_FACE_FLAG_SCALABLE ) - /************************************************************************* + /************************************************************************** * * @macro: - * FT_IS_SFNT( face ) + * FT_IS_SFNT * * @description: - * A macro that returns true whenever a face object contains a font - * whose format is based on the SFNT storage scheme. This usually - * means: TrueType fonts, OpenType fonts, as well as SFNT-based embedded - * bitmap fonts. + * A macro that returns true whenever a face object contains a font whose + * format is based on the SFNT storage scheme. This usually means: + * TrueType fonts, OpenType fonts, as well as SFNT-based embedded bitmap + * fonts. * * If this macro is true, all functions defined in @FT_SFNT_NAMES_H and * @FT_TRUETYPE_TABLES_H are available. * */ #define FT_IS_SFNT( face ) \ - ( face->face_flags & FT_FACE_FLAG_SFNT ) + ( (face)->face_flags & FT_FACE_FLAG_SFNT ) - /************************************************************************* + /************************************************************************** * * @macro: - * FT_IS_FIXED_WIDTH( face ) + * FT_IS_FIXED_WIDTH * * @description: * A macro that returns true whenever a face object contains a font face - * that contains fixed-width (or `monospace', `fixed-pitch', etc.) + * that contains fixed-width (or 'monospace', 'fixed-pitch', etc.) * glyphs. * */ #define FT_IS_FIXED_WIDTH( face ) \ - ( face->face_flags & FT_FACE_FLAG_FIXED_WIDTH ) + ( (face)->face_flags & FT_FACE_FLAG_FIXED_WIDTH ) - /************************************************************************* + /************************************************************************** * * @macro: - * FT_HAS_FIXED_SIZES( face ) + * FT_HAS_FIXED_SIZES * * @description: * A macro that returns true whenever a face object contains some - * embedded bitmaps. See the `available_sizes' field of the - * @FT_FaceRec structure. + * embedded bitmaps. See the `available_sizes` field of the @FT_FaceRec + * structure. * */ #define FT_HAS_FIXED_SIZES( face ) \ - ( face->face_flags & FT_FACE_FLAG_FIXED_SIZES ) + ( (face)->face_flags & FT_FACE_FLAG_FIXED_SIZES ) - /************************************************************************* + /************************************************************************** * * @macro: - * FT_HAS_FAST_GLYPHS( face ) + * FT_HAS_FAST_GLYPHS * * @description: * Deprecated. @@ -1291,10 +1346,10 @@ FT_BEGIN_HEADER #define FT_HAS_FAST_GLYPHS( face ) 0 - /************************************************************************* + /************************************************************************** * * @macro: - * FT_HAS_GLYPH_NAMES( face ) + * FT_HAS_GLYPH_NAMES * * @description: * A macro that returns true whenever a face object contains some glyph @@ -1302,13 +1357,13 @@ FT_BEGIN_HEADER * */ #define FT_HAS_GLYPH_NAMES( face ) \ - ( face->face_flags & FT_FACE_FLAG_GLYPH_NAMES ) + ( (face)->face_flags & FT_FACE_FLAG_GLYPH_NAMES ) - /************************************************************************* + /************************************************************************** * * @macro: - * FT_HAS_MULTIPLE_MASTERS( face ) + * FT_HAS_MULTIPLE_MASTERS * * @description: * A macro that returns true whenever a face object contains some @@ -1317,148 +1372,239 @@ FT_BEGIN_HEADER * */ #define FT_HAS_MULTIPLE_MASTERS( face ) \ - ( face->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS ) + ( (face)->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS ) - /************************************************************************* + /************************************************************************** * * @macro: - * FT_IS_CID_KEYED( face ) + * FT_IS_NAMED_INSTANCE + * + * @description: + * 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 + * + * @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: + * FT_IS_CID_KEYED * * @description: * A macro that returns true whenever a face object contains a CID-keyed - * font. See the discussion of @FT_FACE_FLAG_CID_KEYED for more - * details. + * font. See the discussion of @FT_FACE_FLAG_CID_KEYED for more details. * * If this macro is true, all functions defined in @FT_CID_H are * available. * */ #define FT_IS_CID_KEYED( face ) \ - ( face->face_flags & FT_FACE_FLAG_CID_KEYED ) + ( (face)->face_flags & FT_FACE_FLAG_CID_KEYED ) - /************************************************************************* + /************************************************************************** * * @macro: - * FT_IS_TRICKY( face ) + * FT_IS_TRICKY * * @description: - * A macro that returns true whenever a face represents a `tricky' font. + * A macro that returns true whenever a face represents a 'tricky' font. * See the discussion of @FT_FACE_FLAG_TRICKY for more details. * */ #define FT_IS_TRICKY( face ) \ - ( face->face_flags & FT_FACE_FLAG_TRICKY ) + ( (face)->face_flags & FT_FACE_FLAG_TRICKY ) - /************************************************************************* + /************************************************************************** * * @macro: - * FT_HAS_COLOR( face ) + * FT_HAS_COLOR * * @description: - * A macro that returns true whenever a face object contains - * tables for color glyphs. + * 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 ) + ( (face)->face_flags & FT_FACE_FLAG_COLOR ) - /*************************************************************************/ - /* */ - /* <Const> */ - /* FT_STYLE_FLAG_XXX */ - /* */ - /* <Description> */ - /* A list of bit-flags used to indicate the style of a given face. */ - /* These are used in the `style_flags' field of @FT_FaceRec. */ - /* */ - /* <Values> */ - /* FT_STYLE_FLAG_ITALIC :: */ - /* Indicates that a given face style is italic or oblique. */ - /* */ - /* FT_STYLE_FLAG_BOLD :: */ - /* Indicates that a given face is bold. */ - /* */ - /* <Note> */ - /* The style information as provided by FreeType is very basic. More */ - /* details are beyond the scope and should be done on a higher level */ - /* (for example, by analyzing various fields of the `OS/2' table in */ - /* SFNT based fonts). */ - /* */ + /************************************************************************** + * + * @enum: + * FT_STYLE_FLAG_XXX + * + * @description: + * A list of bit flags to indicate the style of a given face. These are + * used in the `style_flags` field of @FT_FaceRec. + * + * @values: + * FT_STYLE_FLAG_ITALIC :: + * The face style is italic or oblique. + * + * FT_STYLE_FLAG_BOLD :: + * The face is bold. + * + * @note: + * The style information as provided by FreeType is very basic. More + * details are beyond the scope and should be done on a higher level (for + * example, by analyzing various fields of the 'OS/2' table in SFNT based + * fonts). + */ #define FT_STYLE_FLAG_ITALIC ( 1 << 0 ) #define FT_STYLE_FLAG_BOLD ( 1 << 1 ) - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Size_Internal */ - /* */ - /* <Description> */ - /* An opaque handle to an `FT_Size_InternalRec' structure, used to */ - /* model private data of a given @FT_Size object. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Size_Internal + * + * @description: + * An opaque handle to an `FT_Size_InternalRec` structure, used to model + * private data of a given @FT_Size object. + */ typedef struct FT_Size_InternalRec_* FT_Size_Internal; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_Metrics */ - /* */ - /* <Description> */ - /* The size metrics structure gives the metrics of a size object. */ - /* */ - /* <Fields> */ - /* x_ppem :: The width of the scaled EM square in pixels, hence */ - /* the term `ppem' (pixels per EM). It is also */ - /* referred to as `nominal width'. */ - /* */ - /* y_ppem :: The height of the scaled EM square in pixels, */ - /* hence the term `ppem' (pixels per EM). It is also */ - /* referred to as `nominal height'. */ - /* */ - /* x_scale :: A 16.16 fractional scaling value used to convert */ - /* horizontal metrics from font units to 26.6 */ - /* fractional pixels. Only relevant for scalable */ - /* font formats. */ - /* */ - /* y_scale :: A 16.16 fractional scaling value used to convert */ - /* vertical metrics from font units to 26.6 */ - /* fractional pixels. Only relevant for scalable */ - /* font formats. */ - /* */ - /* ascender :: The ascender in 26.6 fractional pixels. See */ - /* @FT_FaceRec for the details. */ - /* */ - /* descender :: The descender in 26.6 fractional pixels. See */ - /* @FT_FaceRec for the details. */ - /* */ - /* height :: The height in 26.6 fractional pixels. See */ - /* @FT_FaceRec for the details. */ - /* */ - /* max_advance :: The maximum advance width in 26.6 fractional */ - /* pixels. See @FT_FaceRec for the details. */ - /* */ - /* <Note> */ - /* The scaling values, if relevant, are determined first during a */ - /* size changing operation. The remaining fields are then set by the */ - /* driver. For scalable formats, they are usually set to scaled */ - /* values of the corresponding fields in @FT_FaceRec. */ - /* */ - /* Note that due to glyph hinting, these values might not be exact */ - /* for certain fonts. Thus they must be treated as unreliable */ - /* with an error margin of at least one pixel! */ - /* */ - /* Indeed, the only way to get the exact metrics is to render _all_ */ - /* glyphs. As this would be a definite performance hit, it is up to */ - /* client applications to perform such computations. */ - /* */ - /* The FT_Size_Metrics structure is valid for bitmap fonts also. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Size_Metrics + * + * @description: + * The size metrics structure gives the metrics of a size object. + * + * @fields: + * x_ppem :: + * The width of the scaled EM square in pixels, hence the term 'ppem' + * (pixels per EM). It is also referred to as 'nominal width'. + * + * y_ppem :: + * The height of the scaled EM square in pixels, hence the term 'ppem' + * (pixels per EM). It is also referred to as 'nominal height'. + * + * x_scale :: + * A 16.16 fractional scaling value to convert horizontal metrics from + * font units to 26.6 fractional pixels. Only relevant for scalable + * font formats. + * + * y_scale :: + * A 16.16 fractional scaling value to convert vertical metrics from + * font units to 26.6 fractional pixels. Only relevant for scalable + * font formats. + * + * ascender :: + * The ascender in 26.6 fractional pixels, rounded up to an integer + * value. See @FT_FaceRec for the details. + * + * descender :: + * The descender in 26.6 fractional pixels, rounded down to an integer + * value. See @FT_FaceRec for the details. + * + * height :: + * The height in 26.6 fractional pixels, rounded to an integer value. + * See @FT_FaceRec for the details. + * + * max_advance :: + * The maximum advance width in 26.6 fractional pixels, rounded to an + * integer value. See @FT_FaceRec for the details. + * + * @note: + * The scaling values, if relevant, are determined first during a size + * changing operation. The remaining fields are then set by the driver. + * For scalable formats, they are usually set to scaled values of the + * corresponding fields in @FT_FaceRec. Some values like ascender or + * descender are rounded for historical reasons; more precise values (for + * outline fonts) can be derived by scaling the corresponding @FT_FaceRec + * values manually, with code similar to the following. + * + * ``` + * scaled_ascender = FT_MulFix( face->ascender, + * size_metrics->y_scale ); + * ``` + * + * Note that due to glyph hinting and the selected rendering mode these + * values are usually not exact; consequently, they must be treated as + * unreliable with an error margin of at least one pixel! + * + * Indeed, the only way to get the exact metrics is to render _all_ + * glyphs. As this would be a definite performance hit, it is up to + * client applications to perform such computations. + * + * 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 */ @@ -1475,25 +1621,27 @@ FT_BEGIN_HEADER } FT_Size_Metrics; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_SizeRec */ - /* */ - /* <Description> */ - /* FreeType root size class structure. A size object models a face */ - /* object at a given size. */ - /* */ - /* <Fields> */ - /* face :: Handle to the parent face object. */ - /* */ - /* generic :: A typeless pointer, unused by the FreeType library or */ - /* any of its drivers. It can be used by client */ - /* applications to link their own data to each size */ - /* object. */ - /* */ - /* metrics :: Metrics for this size object. This field is read-only. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_SizeRec + * + * @description: + * FreeType root size class structure. A size object models a face + * object at a given size. + * + * @fields: + * face :: + * Handle to the parent face object. + * + * generic :: + * A typeless pointer, unused by the FreeType library or any of its + * drivers. It can be used by client applications to link their own + * data to each size object. + * + * metrics :: + * Metrics for this size object. This field is read-only. + */ typedef struct FT_SizeRec_ { FT_Face face; /* parent face object */ @@ -1504,211 +1652,234 @@ FT_BEGIN_HEADER } FT_SizeRec; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_SubGlyph */ - /* */ - /* <Description> */ - /* The subglyph structure is an internal object used to describe */ - /* subglyphs (for example, in the case of composites). */ - /* */ - /* <Note> */ - /* The subglyph implementation is not part of the high-level API, */ - /* hence the forward structure declaration. */ - /* */ - /* You can however retrieve subglyph information with */ - /* @FT_Get_SubGlyph_Info. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_SubGlyph + * + * @description: + * The subglyph structure is an internal object used to describe + * subglyphs (for example, in the case of composites). + * + * @note: + * The subglyph implementation is not part of the high-level API, hence + * the forward structure declaration. + * + * You can however retrieve subglyph information with + * @FT_Get_SubGlyph_Info. + */ typedef struct FT_SubGlyphRec_* FT_SubGlyph; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Slot_Internal */ - /* */ - /* <Description> */ - /* An opaque handle to an `FT_Slot_InternalRec' structure, used to */ - /* model private data of a given @FT_GlyphSlot object. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Slot_Internal + * + * @description: + * An opaque handle to an `FT_Slot_InternalRec` structure, used to model + * private data of a given @FT_GlyphSlot object. + */ typedef struct FT_Slot_InternalRec_* FT_Slot_Internal; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_GlyphSlotRec */ - /* */ - /* <Description> */ - /* FreeType root glyph slot class structure. A glyph slot is a */ - /* container where individual glyphs can be loaded, be they in */ - /* outline or bitmap format. */ - /* */ - /* <Fields> */ - /* library :: A handle to the FreeType library instance */ - /* this slot belongs to. */ - /* */ - /* face :: A handle to the parent face object. */ - /* */ - /* next :: In some cases (like some font tools), several */ - /* glyph slots per face object can be a good */ - /* thing. As this is rare, the glyph slots are */ - /* listed through a direct, single-linked list */ - /* using its `next' field. */ - /* */ - /* generic :: A typeless pointer unused by the FreeType */ - /* library or any of its drivers. It can be */ - /* used by client applications to link their own */ - /* data to each glyph slot object. */ - /* */ - /* metrics :: The metrics of the last loaded glyph in the */ - /* slot. The returned values depend on the last */ - /* load flags (see the @FT_Load_Glyph API */ - /* function) and can be expressed either in 26.6 */ - /* fractional pixels or font units. */ - /* */ - /* Note that even when the glyph image is */ - /* transformed, the metrics are not. */ - /* */ - /* linearHoriAdvance :: The advance width of the unhinted glyph. */ - /* Its value is expressed in 16.16 fractional */ - /* pixels, unless @FT_LOAD_LINEAR_DESIGN is set */ - /* when loading the glyph. This field can be */ - /* important to perform correct WYSIWYG layout. */ - /* Only relevant for outline glyphs. */ - /* */ - /* linearVertAdvance :: The advance height of the unhinted glyph. */ - /* Its value is expressed in 16.16 fractional */ - /* pixels, unless @FT_LOAD_LINEAR_DESIGN is set */ - /* when loading the glyph. This field can be */ - /* important to perform correct WYSIWYG layout. */ - /* Only relevant for outline glyphs. */ - /* */ - /* advance :: This shorthand is, depending on */ - /* @FT_LOAD_IGNORE_TRANSFORM, the transformed */ - /* (hinted) advance width for the glyph, in 26.6 */ - /* fractional pixel format. As specified with */ - /* @FT_LOAD_VERTICAL_LAYOUT, it uses either the */ - /* `horiAdvance' or the `vertAdvance' value of */ - /* `metrics' field. */ - /* */ - /* format :: This field indicates the format of the image */ - /* contained in the glyph slot. Typically */ - /* @FT_GLYPH_FORMAT_BITMAP, */ - /* @FT_GLYPH_FORMAT_OUTLINE, or */ - /* @FT_GLYPH_FORMAT_COMPOSITE, but others 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_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. */ - /* */ - /* bitmap_top :: The bitmap's top bearing expressed in integer */ - /* pixels. Remember that this is the distance */ - /* from the baseline to the top-most glyph */ - /* scanline, upwards y~coordinates being */ - /* *positive*. */ - /* */ - /* outline :: The outline descriptor for the current glyph */ - /* image if its format is */ - /* @FT_GLYPH_FORMAT_OUTLINE. Once a glyph is */ - /* loaded, `outline' can be transformed, */ - /* distorted, embolded, etc. However, it must */ - /* not be freed. */ - /* */ - /* num_subglyphs :: The number of subglyphs in a composite glyph. */ - /* This field is only valid for the composite */ - /* glyph format that should normally only be */ - /* loaded with the @FT_LOAD_NO_RECURSE flag. */ - /* */ - /* subglyphs :: An array of subglyph descriptors for */ - /* composite glyphs. There are `num_subglyphs' */ - /* elements in there. Currently internal to */ - /* FreeType. */ - /* */ - /* control_data :: Certain font drivers can also return the */ - /* control data for a given glyph image (e.g. */ - /* TrueType bytecode, Type~1 charstrings, etc.). */ - /* This field is a pointer to such data. */ - /* */ - /* control_len :: This is the length in bytes of the control */ - /* data. */ - /* */ - /* other :: Really wicked formats can use this pointer to */ - /* present their own glyph image to client */ - /* applications. Note that the application */ - /* needs to know about the image format. */ - /* */ - /* lsb_delta :: The difference between hinted and unhinted */ - /* left side bearing while autohinting is */ - /* active. Zero otherwise. */ - /* */ - /* rsb_delta :: The difference between hinted and unhinted */ - /* right side bearing while autohinting is */ - /* active. Zero otherwise. */ - /* */ - /* <Note> */ - /* 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). */ - /* */ - /* This image can later be converted into a bitmap by calling */ - /* @FT_Render_Glyph. This function finds the current renderer for */ - /* the native image's format, then invokes it. */ - /* */ - /* The renderer is in charge of transforming the native image through */ - /* the slot's face transformation fields, then converting it into a */ - /* bitmap that is returned in `slot->bitmap'. */ - /* */ - /* Note that `slot->bitmap_left' and `slot->bitmap_top' are also used */ - /* to specify the position of the bitmap relative to the current pen */ - /* position (e.g., coordinates (0,0) on the baseline). Of course, */ - /* `slot->format' is also changed to @FT_GLYPH_FORMAT_BITMAP. */ - /* */ - /* <Note> */ - /* Here a small pseudo code fragment that shows how to use */ - /* `lsb_delta' and `rsb_delta': */ - /* */ - /* { */ - /* FT_Pos origin_x = 0; */ - /* FT_Pos prev_rsb_delta = 0; */ - /* */ - /* */ - /* for all glyphs do */ - /* <compute kern between current and previous glyph and add it to */ - /* `origin_x'> */ - /* */ - /* <load glyph with `FT_Load_Glyph'> */ - /* */ - /* if ( prev_rsb_delta - face->glyph->lsb_delta >= 32 ) */ - /* origin_x -= 64; */ - /* else if ( prev_rsb_delta - face->glyph->lsb_delta < -32 ) */ - /* origin_x += 64; */ - /* */ - /* prev_rsb_delta = face->glyph->rsb_delta; */ - /* */ - /* <save glyph image, or render glyph, or ...> */ - /* */ - /* origin_x += face->glyph->advance.x; */ - /* endfor */ - /* } */ - /* */ + /************************************************************************** + * + * @struct: + * FT_GlyphSlotRec + * + * @description: + * FreeType root glyph slot class structure. A glyph slot is a container + * where individual glyphs can be loaded, be they in outline or bitmap + * format. + * + * @fields: + * library :: + * A handle to the FreeType library instance this slot belongs to. + * + * face :: + * A handle to the parent face object. + * + * next :: + * In some cases (like some font tools), several glyph slots per face + * object can be a good thing. As this is rare, the glyph slots are + * listed through a direct, single-linked list using its `next` field. + * + * glyph_index :: + * [Since 2.10] The glyph index passed as an argument to @FT_Load_Glyph + * while initializing the glyph slot. + * + * generic :: + * A typeless pointer unused by the FreeType library or any of its + * drivers. It can be used by client applications to link their own + * data to each glyph slot object. + * + * metrics :: + * The metrics of the last loaded glyph in the slot. The returned + * values depend on the last load flags (see the @FT_Load_Glyph API + * function) and can be expressed either in 26.6 fractional pixels or + * font units. + * + * Note that even when the glyph image is transformed, the metrics are + * not. + * + * linearHoriAdvance :: + * The advance width of the unhinted glyph. Its value is expressed in + * 16.16 fractional pixels, unless @FT_LOAD_LINEAR_DESIGN is set when + * loading the glyph. This field can be important to perform correct + * WYSIWYG layout. Only relevant for outline glyphs. + * + * linearVertAdvance :: + * The advance height of the unhinted glyph. Its value is expressed in + * 16.16 fractional pixels, unless @FT_LOAD_LINEAR_DESIGN is set when + * loading the glyph. This field can be important to perform correct + * WYSIWYG layout. Only relevant for outline glyphs. + * + * advance :: + * This shorthand is, depending on @FT_LOAD_IGNORE_TRANSFORM, the + * transformed (hinted) advance width for the glyph, in 26.6 fractional + * pixel format. As specified with @FT_LOAD_VERTICAL_LAYOUT, it uses + * either the `horiAdvance` or the `vertAdvance` value of `metrics` + * field. + * + * format :: + * This field indicates the format of the image contained in the glyph + * slot. Typically @FT_GLYPH_FORMAT_BITMAP, @FT_GLYPH_FORMAT_OUTLINE, + * or @FT_GLYPH_FORMAT_COMPOSITE, but other values are possible. + * + * 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. + * + * bitmap_top :: + * The bitmap's top bearing expressed in integer pixels. This is the + * distance from the baseline to the top-most glyph scanline, upwards + * y~coordinates being **positive**. + * + * outline :: + * The outline descriptor for the current glyph image if its format is + * @FT_GLYPH_FORMAT_OUTLINE. Once a glyph is loaded, `outline` can be + * transformed, distorted, emboldened, etc. However, it must not be + * freed. + * + * num_subglyphs :: + * The number of subglyphs in a composite glyph. This field is only + * valid for the composite glyph format that should normally only be + * loaded with the @FT_LOAD_NO_RECURSE flag. + * + * subglyphs :: + * An array of subglyph descriptors for composite glyphs. There are + * `num_subglyphs` elements in there. Currently internal to FreeType. + * + * control_data :: + * Certain font drivers can also return the control data for a given + * glyph image (e.g. TrueType bytecode, Type~1 charstrings, etc.). + * This field is a pointer to such data; it is currently internal to + * FreeType. + * + * control_len :: + * This is the length in bytes of the control data. Currently internal + * to FreeType. + * + * other :: + * Reserved. + * + * lsb_delta :: + * The difference between hinted and unhinted left side bearing while + * auto-hinting is active. Zero otherwise. + * + * rsb_delta :: + * The difference between hinted and unhinted right side bearing while + * auto-hinting is active. Zero otherwise. + * + * @note: + * 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). [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 the + * native image's format, then invokes it. + * + * The renderer is in charge of transforming the native image through the + * slot's face transformation fields, then converting it into a bitmap + * that is returned in `slot->bitmap`. + * + * Note that `slot->bitmap_left` and `slot->bitmap_top` are also used to + * specify the position of the bitmap relative to the current pen + * position (e.g., coordinates (0,0) on the baseline). Of course, + * `slot->format` is also changed to @FT_GLYPH_FORMAT_BITMAP. + * + * Here is a small pseudo code fragment that shows how to use `lsb_delta` + * and `rsb_delta` to do fractional positioning of glyphs: + * + * ``` + * FT_GlyphSlot slot = face->glyph; + * FT_Pos origin_x = 0; + * + * + * for all glyphs do + * <load glyph with `FT_Load_Glyph'> + * + * FT_Outline_Translate( slot->outline, origin_x & 63, 0 ); + * + * <save glyph image, or render glyph, or ...> + * + * <compute kern between current and next glyph + * and add it to `origin_x'> + * + * origin_x += slot->advance.x; + * origin_x += slot->lsb_delta - slot->rsb_delta; + * endfor + * ``` + * + * Here is another small pseudo code fragment that shows how to use + * `lsb_delta` and `rsb_delta` to improve integer positioning of glyphs: + * + * ``` + * FT_GlyphSlot slot = face->glyph; + * FT_Pos origin_x = 0; + * FT_Pos prev_rsb_delta = 0; + * + * + * for all glyphs do + * <compute kern between current and previous glyph + * and add it to `origin_x'> + * + * <load glyph with `FT_Load_Glyph'> + * + * if ( prev_rsb_delta - slot->lsb_delta > 32 ) + * origin_x -= 64; + * else if ( prev_rsb_delta - slot->lsb_delta < -31 ) + * origin_x += 64; + * + * prev_rsb_delta = slot->rsb_delta; + * + * <save glyph image, or render glyph, or ...> + * + * origin_x += slot->advance.x; + * endfor + * ``` + * + * If you use strong auto-hinting, you **must** apply these delta values! + * Otherwise you will experience far too large inter-glyph spacing at + * small rendering sizes in most cases. Note that it doesn't harm to use + * the above code for other hinting modes also, since the delta values + * are zero then. + */ typedef struct FT_GlyphSlotRec_ { FT_Library library; FT_Face face; FT_GlyphSlot next; - FT_UInt reserved; /* retained for binary compatibility */ + FT_UInt glyph_index; /* new in 2.10; was reserved previously */ FT_Generic generic; FT_Glyph_Metrics metrics; @@ -1749,80 +1920,92 @@ FT_BEGIN_HEADER /*************************************************************************/ - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Init_FreeType */ - /* */ - /* <Description> */ - /* Initialize a new FreeType library object. The set of modules */ - /* that are registered by this function is determined at build time. */ - /* */ - /* <Output> */ - /* alibrary :: A handle to a new library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* In case you want to provide your own memory allocating routines, */ - /* use @FT_New_Library instead, followed by a call to */ - /* @FT_Add_Default_Modules (or a series of calls to @FT_Add_Module). */ - /* */ - /* For multi-threading applications each thread should have its own */ - /* FT_Library object. */ - /* */ - /* If you need reference-counting (cf. @FT_Reference_Library), use */ - /* @FT_New_Library and @FT_Done_Library. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Init_FreeType + * + * @description: + * Initialize a new FreeType library object. The set of modules that are + * registered by this function is determined at build time. + * + * @output: + * alibrary :: + * A handle to a new library object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * In case you want to provide your own memory allocating routines, use + * @FT_New_Library instead, followed by a call to @FT_Add_Default_Modules + * (or a series of calls to @FT_Add_Module) and + * @FT_Set_Default_Properties. + * + * See the documentation of @FT_Library and @FT_Face for multi-threading + * issues. + * + * If you need reference-counting (cf. @FT_Reference_Library), use + * @FT_New_Library and @FT_Done_Library. + * + * If compilation option `FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES` is + * set, this function reads the `FREETYPE_PROPERTIES` environment + * variable to control driver properties. See section @properties for + * more. + */ FT_EXPORT( FT_Error ) FT_Init_FreeType( FT_Library *alibrary ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_FreeType */ - /* */ - /* <Description> */ - /* Destroy a given FreeType library object and all of its children, */ - /* including resources, drivers, faces, sizes, etc. */ - /* */ - /* <Input> */ - /* library :: A handle to the target library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Done_FreeType + * + * @description: + * Destroy a given FreeType library object and all of its children, + * including resources, drivers, faces, sizes, etc. + * + * @input: + * library :: + * A handle to the target library object. + * + * @return: + * FreeType error code. 0~means success. + */ FT_EXPORT( FT_Error ) FT_Done_FreeType( FT_Library library ); - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_OPEN_XXX */ - /* */ - /* <Description> */ - /* A list of bit-field constants used within the `flags' field of the */ - /* @FT_Open_Args structure. */ - /* */ - /* <Values> */ - /* FT_OPEN_MEMORY :: This is a memory-based stream. */ - /* */ - /* FT_OPEN_STREAM :: Copy the stream from the `stream' field. */ - /* */ - /* FT_OPEN_PATHNAME :: Create a new input stream from a C~path */ - /* name. */ - /* */ - /* FT_OPEN_DRIVER :: Use the `driver' field. */ - /* */ - /* FT_OPEN_PARAMS :: Use the `num_params' and `params' fields. */ - /* */ - /* <Note> */ - /* The `FT_OPEN_MEMORY', `FT_OPEN_STREAM', and `FT_OPEN_PATHNAME' */ - /* flags are mutually exclusive. */ - /* */ + /************************************************************************** + * + * @enum: + * FT_OPEN_XXX + * + * @description: + * A list of bit field constants used within the `flags` field of the + * @FT_Open_Args structure. + * + * @values: + * FT_OPEN_MEMORY :: + * This is a memory-based stream. + * + * FT_OPEN_STREAM :: + * Copy the stream from the `stream` field. + * + * FT_OPEN_PATHNAME :: + * Create a new input stream from a C~path name. + * + * FT_OPEN_DRIVER :: + * Use the `driver` field. + * + * FT_OPEN_PARAMS :: + * Use the `num_params` and `params` fields. + * + * @note: + * The `FT_OPEN_MEMORY`, `FT_OPEN_STREAM`, and `FT_OPEN_PATHNAME` flags + * are mutually exclusive. + */ #define FT_OPEN_MEMORY 0x1 #define FT_OPEN_STREAM 0x2 #define FT_OPEN_PATHNAME 0x4 @@ -1830,7 +2013,7 @@ FT_BEGIN_HEADER #define FT_OPEN_PARAMS 0x10 - /* these constants are deprecated; use the corresponding `FT_OPEN_XXX' */ + /* these constants are deprecated; use the corresponding `FT_OPEN_XXX` */ /* values instead */ #define ft_open_memory FT_OPEN_MEMORY #define ft_open_stream FT_OPEN_STREAM @@ -1839,24 +2022,26 @@ FT_BEGIN_HEADER #define ft_open_params FT_OPEN_PARAMS - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Parameter */ - /* */ - /* <Description> */ - /* A simple structure used to pass more or less generic parameters to */ - /* @FT_Open_Face. */ - /* */ - /* <Fields> */ - /* tag :: A four-byte identification tag. */ - /* */ - /* 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. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Parameter + * + * @description: + * A simple structure to pass more or less generic parameters to + * @FT_Open_Face and @FT_Face_Properties. + * + * @fields: + * tag :: + * A four-byte identification tag. + * + * data :: + * A pointer to the parameter data. + * + * @note: + * The ID and function of parameters are driver-specific. See section + * @parameter_tags for more information. + */ typedef struct FT_Parameter_ { FT_ULong tag; @@ -1865,64 +2050,69 @@ FT_BEGIN_HEADER } FT_Parameter; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Open_Args */ - /* */ - /* <Description> */ - /* A structure used to indicate how to open a new font file or */ - /* stream. A pointer to such a structure can be used as a parameter */ - /* for the functions @FT_Open_Face and @FT_Attach_Stream. */ - /* */ - /* <Fields> */ - /* flags :: A set of bit flags indicating how to use the */ - /* structure. */ - /* */ - /* memory_base :: The first byte of the file in memory. */ - /* */ - /* memory_size :: The size in bytes of the file in memory. */ - /* */ - /* pathname :: A pointer to an 8-bit file pathname. */ - /* */ - /* stream :: A handle to a source stream object. */ - /* */ - /* driver :: This field is exclusively used by @FT_Open_Face; */ - /* it simply specifies the font driver to use to open */ - /* the face. If set to~0, FreeType tries to load the */ - /* face with each one of the drivers in its list. */ - /* */ - /* num_params :: The number of extra parameters. */ - /* */ - /* params :: Extra parameters passed to the font driver when */ - /* opening a new face. */ - /* */ - /* <Note> */ - /* The stream type is determined by the contents of `flags' that */ - /* are tested in the following order by @FT_Open_Face: */ - /* */ - /* If the @FT_OPEN_MEMORY bit is set, assume that this is a */ - /* memory file of `memory_size' bytes, located at `memory_address'. */ - /* The data are are not copied, and the client is responsible for */ - /* releasing and destroying them _after_ the corresponding call to */ - /* @FT_Done_Face. */ - /* */ - /* Otherwise, if the @FT_OPEN_STREAM bit is set, assume that a */ - /* custom input stream `stream' is used. */ - /* */ - /* Otherwise, if the @FT_OPEN_PATHNAME bit is set, assume that this */ - /* is a normal file and use `pathname' to open it. */ - /* */ - /* If the @FT_OPEN_DRIVER bit is set, @FT_Open_Face only tries to */ - /* open the file with the driver whose handler is in `driver'. */ - /* */ - /* If the @FT_OPEN_PARAMS bit is set, the parameters given by */ - /* `num_params' and `params' is used. They are ignored otherwise. */ - /* */ - /* Ideally, both the `pathname' and `params' fields should be tagged */ - /* as `const'; this is missing for API backwards compatibility. In */ - /* other words, applications should treat them as read-only. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Open_Args + * + * @description: + * A structure to indicate how to open a new font file or stream. A + * pointer to such a structure can be used as a parameter for the + * functions @FT_Open_Face and @FT_Attach_Stream. + * + * @fields: + * flags :: + * A set of bit flags indicating how to use the structure. + * + * memory_base :: + * The first byte of the file in memory. + * + * memory_size :: + * The size in bytes of the file in memory. + * + * pathname :: + * A pointer to an 8-bit file pathname. + * + * stream :: + * A handle to a source stream object. + * + * driver :: + * This field is exclusively used by @FT_Open_Face; it simply specifies + * the font driver to use for opening the face. If set to `NULL`, + * FreeType tries to load the face with each one of the drivers in its + * list. + * + * num_params :: + * The number of extra parameters. + * + * params :: + * Extra parameters passed to the font driver when opening a new face. + * + * @note: + * The stream type is determined by the contents of `flags` that are + * tested in the following order by @FT_Open_Face: + * + * If the @FT_OPEN_MEMORY bit is set, assume that this is a memory file + * of `memory_size` bytes, located at `memory_address`. The data are not + * copied, and the client is responsible for releasing and destroying + * them _after_ the corresponding call to @FT_Done_Face. + * + * Otherwise, if the @FT_OPEN_STREAM bit is set, assume that a custom + * input stream `stream` is used. + * + * Otherwise, if the @FT_OPEN_PATHNAME bit is set, assume that this is a + * normal file and use `pathname` to open it. + * + * If the @FT_OPEN_DRIVER bit is set, @FT_Open_Face only tries to open + * the file with the driver whose handler is in `driver`. + * + * If the @FT_OPEN_PARAMS bit is set, the parameters given by + * `num_params` and `params` is used. They are ignored otherwise. + * + * Ideally, both the `pathname` and `params` fields should be tagged as + * 'const'; this is missing for API backward compatibility. In other + * words, applications should treat them as read-only. + */ typedef struct FT_Open_Args_ { FT_UInt flags; @@ -1937,35 +2127,37 @@ FT_BEGIN_HEADER } FT_Open_Args; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face */ - /* */ - /* <Description> */ - /* This function calls @FT_Open_Face to open a font by its pathname. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* pathname :: A path to the font file. */ - /* */ - /* face_index :: The index of the face within the font. The first */ - /* face has index~0. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. If `face_index' is */ - /* greater than or equal to zero, it must be non-NULL. */ - /* See @FT_Open_Face for more details. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Use @FT_Done_Face to destroy the created @FT_Face object (along */ - /* with its slot and sizes). */ - /* */ + /************************************************************************** + * + * @function: + * FT_New_Face + * + * @description: + * Call @FT_Open_Face to open a font by its pathname. + * + * @inout: + * library :: + * A handle to the library resource. + * + * @input: + * pathname :: + * A path to the font file. + * + * face_index :: + * See @FT_Open_Face for a detailed description of this parameter. + * + * @output: + * aface :: + * A handle to a new face object. If `face_index` is greater than or + * equal to zero, it must be non-`NULL`. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Use @FT_Done_Face to destroy the created @FT_Face object (along with + * its slot and sizes). + */ FT_EXPORT( FT_Error ) FT_New_Face( FT_Library library, const char* filepathname, @@ -1973,37 +2165,39 @@ FT_BEGIN_HEADER FT_Face *aface ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Memory_Face */ - /* */ - /* <Description> */ - /* This function calls @FT_Open_Face to open a font that has been */ - /* loaded into memory. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* file_base :: A pointer to the beginning of the font data. */ - /* */ - /* file_size :: The size of the memory chunk used by the font data. */ - /* */ - /* face_index :: The index of the face within the font. The first */ - /* face has index~0. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. If `face_index' is */ - /* greater than or equal to zero, it must be non-NULL. */ - /* See @FT_Open_Face for more details. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You must not deallocate the memory before calling @FT_Done_Face. */ - /* */ + /************************************************************************** + * + * @function: + * FT_New_Memory_Face + * + * @description: + * Call @FT_Open_Face to open a font that has been loaded into memory. + * + * @inout: + * library :: + * A handle to the library resource. + * + * @input: + * file_base :: + * A pointer to the beginning of the font data. + * + * file_size :: + * The size of the memory chunk used by the font data. + * + * face_index :: + * See @FT_Open_Face for a detailed description of this parameter. + * + * @output: + * aface :: + * A handle to a new face object. If `face_index` is greater than or + * equal to zero, it must be non-`NULL`. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * You must not deallocate the memory before calling @FT_Done_Face. + */ FT_EXPORT( FT_Error ) FT_New_Memory_Face( FT_Library library, const FT_Byte* file_base, @@ -2012,58 +2206,143 @@ FT_BEGIN_HEADER FT_Face *aface ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Open_Face */ - /* */ - /* <Description> */ - /* Create a face object from a given resource described by */ - /* @FT_Open_Args. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* args :: A pointer to an `FT_Open_Args' structure that must */ - /* be filled by the caller. */ - /* */ - /* face_index :: The index of the face within the font. The first */ - /* face has index~0. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. If `face_index' is */ - /* greater than or equal to zero, it must be non-NULL. */ - /* See note below. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Unlike FreeType 1.x, this function automatically creates a glyph */ - /* slot for the face object that can be accessed directly through */ - /* `face->glyph'. */ - /* */ - /* FT_Open_Face can be used to quickly check whether the font */ - /* format of a given font resource is supported by FreeType. If the */ - /* `face_index' field is negative, the function's return value is~0 */ - /* if the font format is recognized, or non-zero otherwise; */ - /* the function returns a more or less empty face handle in `*aface' */ - /* (if `aface' isn't NULL). The only useful field in this special */ - /* case is `face->num_faces' that gives the number of faces within */ - /* the font file. After examination, the returned @FT_Face structure */ - /* should be deallocated with a call to @FT_Done_Face. */ - /* */ - /* Each new face object created with this function also owns a */ - /* default @FT_Size object, accessible as `face->size'. */ - /* */ - /* One @FT_Library instance can have multiple face objects, this is, */ - /* @FT_Open_Face and its siblings can be called multiple times using */ - /* the same `library' argument. */ - /* */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Face. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Open_Face + * + * @description: + * Create a face object from a given resource described by @FT_Open_Args. + * + * @inout: + * library :: + * A handle to the library resource. + * + * @input: + * args :: + * A pointer to an `FT_Open_Args` structure that must be filled by the + * caller. + * + * face_index :: + * This field holds two different values. Bits 0-15 are the index of + * the face in the font file (starting with value~0). Set it to~0 if + * there is only one face in the font file. + * + * [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. + * + * `FT_Open_Face` and its siblings can be used to quickly check whether + * the font format of a given font resource is supported by FreeType. + * In general, if the `face_index` argument is negative, the function's + * return value is~0 if the font format is recognized, or non-zero + * otherwise. The function allocates a more or less empty face handle + * in `*aface` (if `aface` isn't `NULL`); the only two useful fields in + * this special case are `face->num_faces` and `face->style_flags`. + * For any negative value of `face_index`, `face->num_faces` gives the + * number of faces within the font file. For the negative value + * '-(N+1)' (with 'N' a non-negative 16-bit value), bits 16-30 in + * `face->style_flags` give the number of named instances in face 'N' + * if we have a variation font (or zero otherwise). After examination, + * the returned @FT_Face structure should be deallocated with a call to + * @FT_Done_Face. + * + * @output: + * aface :: + * A handle to a new face object. If `face_index` is greater than or + * equal to zero, it must be non-`NULL`. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Unlike FreeType 1.x, this function automatically creates a glyph slot + * for the face object that can be accessed directly through + * `face->glyph`. + * + * Each new face object created with this function also owns a default + * @FT_Size object, accessible as `face->size`. + * + * One @FT_Library instance can have multiple face objects, this is, + * @FT_Open_Face and its siblings can be called multiple times using the + * same `library` argument. + * + * See the discussion of reference counters in the description of + * @FT_Reference_Face. + * + * @example: + * To loop over all faces, use code similar to the following snippet + * (omitting the error handling). + * + * ``` + * ... + * FT_Face face; + * FT_Long i, num_faces; + * + * + * error = FT_Open_Face( library, args, -1, &face ); + * if ( error ) { ... } + * + * num_faces = face->num_faces; + * FT_Done_Face( face ); + * + * for ( i = 0; i < num_faces; i++ ) + * { + * ... + * error = FT_Open_Face( library, args, i, &face ); + * ... + * FT_Done_Face( face ); + * ... + * } + * ``` + * + * To loop over all valid values for `face_index`, use something similar + * to the following snippet, again without error handling. The code + * accesses all faces immediately (thus only a single call of + * `FT_Open_Face` within the do-loop), with and without named instances. + * + * ``` + * ... + * FT_Face face; + * + * FT_Long num_faces = 0; + * FT_Long num_instances = 0; + * + * FT_Long face_idx = 0; + * FT_Long instance_idx = 0; + * + * + * do + * { + * FT_Long id = ( instance_idx << 16 ) + face_idx; + * + * + * error = FT_Open_Face( library, args, id, &face ); + * if ( error ) { ... } + * + * num_faces = face->num_faces; + * num_instances = face->style_flags >> 16; + * + * ... + * + * FT_Done_Face( face ); + * + * if ( instance_idx < num_instances ) + * instance_idx++; + * else + * { + * face_idx++; + * instance_idx = 0; + * } + * + * } while ( face_idx < num_faces ) + * ``` + */ FT_EXPORT( FT_Error ) FT_Open_Face( FT_Library library, const FT_Open_Args* args, @@ -2071,178 +2350,208 @@ FT_BEGIN_HEADER FT_Face *aface ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Attach_File */ - /* */ - /* <Description> */ - /* This function calls @FT_Attach_Stream to attach a file. */ - /* */ - /* <InOut> */ - /* face :: The target face object. */ - /* */ - /* <Input> */ - /* filepathname :: The pathname. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Attach_File + * + * @description: + * Call @FT_Attach_Stream to attach a file. + * + * @inout: + * face :: + * The target face object. + * + * @input: + * filepathname :: + * The pathname. + * + * @return: + * FreeType error code. 0~means success. + */ FT_EXPORT( FT_Error ) FT_Attach_File( FT_Face face, const char* filepathname ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Attach_Stream */ - /* */ - /* <Description> */ - /* `Attach' data to a face object. Normally, this is used to read */ - /* additional information for the face object. For example, you can */ - /* attach an AFM file that comes with a Type~1 font to get the */ - /* kerning values and other metrics. */ - /* */ - /* <InOut> */ - /* face :: The target face object. */ - /* */ - /* <Input> */ - /* parameters :: A pointer to @FT_Open_Args that must be filled by */ - /* the caller. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The meaning of the `attach' (i.e., what really happens when the */ - /* new file is read) is not fixed by FreeType itself. It really */ - /* depends on the font format (and thus the font driver). */ - /* */ - /* Client applications are expected to know what they are doing */ - /* when invoking this function. Most drivers simply do not implement */ - /* file attachments. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Attach_Stream + * + * @description: + * 'Attach' data to a face object. Normally, this is used to read + * additional information for the face object. For example, you can + * attach an AFM file that comes with a Type~1 font to get the kerning + * values and other metrics. + * + * @inout: + * face :: + * The target face object. + * + * @input: + * parameters :: + * A pointer to @FT_Open_Args that must be filled by the caller. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The meaning of the 'attach' (i.e., what really happens when the new + * file is read) is not fixed by FreeType itself. It really depends on + * the font format (and thus the font driver). + * + * Client applications are expected to know what they are doing when + * invoking this function. Most drivers simply do not implement file or + * stream attachments. + */ FT_EXPORT( FT_Error ) FT_Attach_Stream( FT_Face face, FT_Open_Args* parameters ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Reference_Face */ - /* */ - /* <Description> */ - /* A counter gets initialized to~1 at the time an @FT_Face structure */ - /* is created. This function increments the counter. @FT_Done_Face */ - /* then only destroys a face if the counter is~1, otherwise it simply */ - /* decrements the counter. */ - /* */ - /* This function helps in managing life-cycles of structures that */ - /* reference @FT_Face objects. */ - /* */ - /* <Input> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Since> */ - /* 2.4.2 */ - /* */ + /************************************************************************** + * + * @function: + * FT_Reference_Face + * + * @description: + * A counter gets initialized to~1 at the time an @FT_Face structure is + * created. This function increments the counter. @FT_Done_Face then + * only destroys a face if the counter is~1, otherwise it simply + * decrements the counter. + * + * This function helps in managing life-cycles of structures that + * reference @FT_Face objects. + * + * @input: + * face :: + * A handle to a target face object. + * + * @return: + * FreeType error code. 0~means success. + * + * @since: + * 2.4.2 + */ FT_EXPORT( FT_Error ) FT_Reference_Face( FT_Face face ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Face */ - /* */ - /* <Description> */ - /* Discard a given face object, as well as all of its child slots and */ - /* sizes. */ - /* */ - /* <Input> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Face. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Done_Face + * + * @description: + * Discard a given face object, as well as all of its child slots and + * sizes. + * + * @input: + * face :: + * A handle to a target face object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * See the discussion of reference counters in the description of + * @FT_Reference_Face. + */ FT_EXPORT( FT_Error ) FT_Done_Face( FT_Face face ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Select_Size */ - /* */ - /* <Description> */ - /* Select a bitmap strike. */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Input> */ - /* strike_index :: The index of the bitmap strike in the */ - /* `available_sizes' field of @FT_FaceRec structure. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Select_Size + * + * @description: + * Select a bitmap strike. To be more precise, this function sets the + * scaling factors of the active @FT_Size object in a face so that + * bitmaps from this particular strike are taken by @FT_Load_Glyph and + * friends. + * + * @inout: + * face :: + * A handle to a target face object. + * + * @input: + * strike_index :: + * The index of the bitmap strike in the `available_sizes` field of + * @FT_FaceRec structure. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * For bitmaps embedded in outline fonts it is common that only a subset + * of the available glyphs at a given ppem value is available. FreeType + * silently uses outlines if there is no bitmap for a given glyph index. + * + * For GX and OpenType variation fonts, a bitmap strike makes sense only + * if the default instance is active (this is, no glyph variation takes + * place); otherwise, FreeType simply ignores bitmap strikes. The same + * is true for all named instances that are different from the default + * instance. + * + * Don't use this function if you are using the FreeType cache API. + */ FT_EXPORT( FT_Error ) FT_Select_Size( FT_Face face, FT_Int strike_index ); - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Size_Request_Type */ - /* */ - /* <Description> */ - /* An enumeration type that lists the supported size request types. */ - /* */ - /* <Values> */ - /* FT_SIZE_REQUEST_TYPE_NOMINAL :: */ - /* The nominal size. The `units_per_EM' field of @FT_FaceRec is */ - /* used to determine both scaling values. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_REAL_DIM :: */ - /* The real dimension. The sum of the the `ascender' and (minus */ - /* of) the `descender' fields of @FT_FaceRec are used to determine */ - /* both scaling values. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_BBOX :: */ - /* The font bounding box. The width and height of the `bbox' field */ - /* of @FT_FaceRec are used to determine the horizontal and vertical */ - /* scaling value, respectively. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_CELL :: */ - /* The `max_advance_width' field of @FT_FaceRec is used to */ - /* determine the horizontal scaling value; the vertical scaling */ - /* value is determined the same way as */ - /* @FT_SIZE_REQUEST_TYPE_REAL_DIM does. Finally, both scaling */ - /* values are set to the smaller one. This type is useful if you */ - /* want to specify the font size for, say, a window of a given */ - /* dimension and 80x24 cells. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_SCALES :: */ - /* Specify the scaling values directly. */ - /* */ - /* <Note> */ - /* The above descriptions only apply to scalable formats. For bitmap */ - /* formats, the behaviour is up to the driver. */ - /* */ - /* See the note section of @FT_Size_Metrics if you wonder how size */ - /* requesting relates to scaling values. */ - /* */ + /************************************************************************** + * + * @enum: + * FT_Size_Request_Type + * + * @description: + * An enumeration type that lists the supported size request types, i.e., + * what input size (in font units) maps to the requested output size (in + * pixels, as computed from the arguments of @FT_Size_Request). + * + * @values: + * FT_SIZE_REQUEST_TYPE_NOMINAL :: + * The nominal size. The `units_per_EM` field of @FT_FaceRec is used + * to determine both scaling values. + * + * This is the standard scaling found in most applications. In + * particular, use this size request type for TrueType fonts if they + * provide optical scaling or something similar. Note, however, that + * `units_per_EM` is a rather abstract value which bears no relation to + * the actual size of the glyphs in a font. + * + * FT_SIZE_REQUEST_TYPE_REAL_DIM :: + * The real dimension. The sum of the `ascender` and (minus of) the + * `descender` fields of @FT_FaceRec is used to determine both scaling + * values. + * + * FT_SIZE_REQUEST_TYPE_BBOX :: + * The font bounding box. The width and height of the `bbox` field of + * @FT_FaceRec are used to determine the horizontal and vertical + * scaling value, respectively. + * + * FT_SIZE_REQUEST_TYPE_CELL :: + * The `max_advance_width` field of @FT_FaceRec is used to determine + * the horizontal scaling value; the vertical scaling value is + * determined the same way as @FT_SIZE_REQUEST_TYPE_REAL_DIM does. + * Finally, both scaling values are set to the smaller one. This type + * is useful if you want to specify the font size for, say, a window of + * a given dimension and 80x24 cells. + * + * FT_SIZE_REQUEST_TYPE_SCALES :: + * Specify the scaling values directly. + * + * @note: + * The above descriptions only apply to scalable formats. For bitmap + * formats, the behaviour is up to the driver. + * + * See the note section of @FT_Size_Metrics if you wonder how size + * requesting relates to scaling values. + */ typedef enum FT_Size_Request_Type_ { FT_SIZE_REQUEST_TYPE_NOMINAL, @@ -2256,33 +2565,45 @@ FT_BEGIN_HEADER } FT_Size_Request_Type; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_RequestRec */ - /* */ - /* <Description> */ - /* A structure used to model a size request. */ - /* */ - /* <Fields> */ - /* type :: See @FT_Size_Request_Type. */ - /* */ - /* width :: The desired width. */ - /* */ - /* height :: The desired height. */ - /* */ - /* horiResolution :: The horizontal resolution. If set to zero, */ - /* `width' is treated as a 26.6 fractional pixel */ - /* value. */ - /* */ - /* vertResolution :: The vertical resolution. If set to zero, */ - /* `height' is treated as a 26.6 fractional pixel */ - /* value. */ - /* */ - /* <Note> */ - /* If `width' is zero, then the horizontal scaling value is set equal */ - /* to the vertical scaling value, and vice versa. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Size_RequestRec + * + * @description: + * A structure to model a size request. + * + * @fields: + * type :: + * See @FT_Size_Request_Type. + * + * width :: + * The desired width, given as a 26.6 fractional point value (with 72pt + * = 1in). + * + * height :: + * The desired height, given as a 26.6 fractional point value (with + * 72pt = 1in). + * + * horiResolution :: + * The horizontal resolution (dpi, i.e., pixels per inch). If set to + * zero, `width` is treated as a 26.6 fractional **pixel** value, which + * gets internally rounded to an integer. + * + * vertResolution :: + * The vertical resolution (dpi, i.e., pixels per inch). If set to + * zero, `height` is treated as a 26.6 fractional **pixel** value, + * which gets internally rounded to an integer. + * + * @note: + * If `width` is zero, the horizontal scaling value is set equal to the + * vertical scaling value, and vice versa. + * + * If `type` is `FT_SIZE_REQUEST_TYPE_SCALES`, `width` and `height` are + * interpreted directly as 16.16 fractional scaling values, without any + * further modification, and both `horiResolution` and `vertResolution` + * are ignored. + */ typedef struct FT_Size_RequestRec_ { FT_Size_Request_Type type; @@ -2294,89 +2615,102 @@ FT_BEGIN_HEADER } FT_Size_RequestRec; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_Request */ - /* */ - /* <Description> */ - /* A handle to a size request structure. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Size_Request + * + * @description: + * A handle to a size request structure. + */ typedef struct FT_Size_RequestRec_ *FT_Size_Request; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Request_Size */ - /* */ - /* <Description> */ - /* Resize the scale of the active @FT_Size object in a face. */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Input> */ - /* req :: A pointer to a @FT_Size_RequestRec. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Although drivers may select the bitmap strike matching the */ - /* request, you should not rely on this if you intend to select a */ - /* particular bitmap strike. Use @FT_Select_Size instead in that */ - /* case. */ - /* */ - /* The relation between the requested size and the resulting glyph */ - /* size is dependent entirely on how the size is defined in the */ - /* source face. The font designer chooses the final size of each */ - /* glyph relative to this size. For more information refer to */ - /* `http://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html' */ - /* */ - /* Don't use this function if you are using the FreeType cache API. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Request_Size + * + * @description: + * Resize the scale of the active @FT_Size object in a face. + * + * @inout: + * face :: + * A handle to a target face object. + * + * @input: + * req :: + * A pointer to a @FT_Size_RequestRec. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Although drivers may select the bitmap strike matching the request, + * you should not rely on this if you intend to select a particular + * bitmap strike. Use @FT_Select_Size instead in that case. + * + * The relation between the requested size and the resulting glyph size + * is dependent entirely on how the size is defined in the source face. + * The font designer chooses the final size of each glyph relative to + * this size. For more information refer to + * 'https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html'. + * + * Contrary to @FT_Set_Char_Size, this function doesn't have special code + * to normalize zero-valued widths, heights, or resolutions (which lead + * to errors in most cases). + * + * Don't use this function if you are using the FreeType cache API. + */ FT_EXPORT( FT_Error ) FT_Request_Size( FT_Face face, FT_Size_Request req ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Char_Size */ - /* */ - /* <Description> */ - /* This function calls @FT_Request_Size to request the nominal size */ - /* (in points). */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Input> */ - /* char_width :: The nominal width, in 26.6 fractional points. */ - /* */ - /* char_height :: The nominal height, in 26.6 fractional points. */ - /* */ - /* horz_resolution :: The horizontal resolution in dpi. */ - /* */ - /* vert_resolution :: The vertical resolution in dpi. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If either the character width or height is zero, it is set equal */ - /* to the other value. */ - /* */ - /* If either the horizontal or vertical resolution is zero, it is set */ - /* equal to the other value. */ - /* */ - /* A character width or height smaller than 1pt is set to 1pt; if */ - /* both resolution values are zero, they are set to 72dpi. */ - /* */ - /* Don't use this function if you are using the FreeType cache API. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Set_Char_Size + * + * @description: + * Call @FT_Request_Size to request the nominal size (in points). + * + * @inout: + * face :: + * A handle to a target face object. + * + * @input: + * char_width :: + * The nominal width, in 26.6 fractional points. + * + * char_height :: + * The nominal height, in 26.6 fractional points. + * + * horz_resolution :: + * The horizontal resolution in dpi. + * + * vert_resolution :: + * The vertical resolution in dpi. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * While this function allows fractional points as input values, the + * resulting ppem value for the given resolution is always rounded to the + * nearest integer. + * + * If either the character width or height is zero, it is set equal to + * the other value. + * + * If either the horizontal or vertical resolution is zero, it is set + * equal to the other value. + * + * A character width or height smaller than 1pt is set to 1pt; if both + * resolution values are zero, they are set to 72dpi. + * + * Don't use this function if you are using the FreeType cache API. + */ FT_EXPORT( FT_Error ) FT_Set_Char_Size( FT_Face face, FT_F26Dot6 char_width, @@ -2385,124 +2719,138 @@ FT_BEGIN_HEADER FT_UInt vert_resolution ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Pixel_Sizes */ - /* */ - /* <Description> */ - /* This function calls @FT_Request_Size to request the nominal size */ - /* (in pixels). */ - /* */ - /* <InOut> */ - /* face :: A handle to the target face object. */ - /* */ - /* <Input> */ - /* pixel_width :: The nominal width, in pixels. */ - /* */ - /* pixel_height :: The nominal height, in pixels. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You should not rely on the resulting glyphs matching, or being */ - /* constrained, to this pixel size. Refer to @FT_Request_Size to */ - /* understand how requested sizes relate to actual sizes. */ - /* */ - /* Don't use this function if you are using the FreeType cache API. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Set_Pixel_Sizes + * + * @description: + * Call @FT_Request_Size to request the nominal size (in pixels). + * + * @inout: + * face :: + * A handle to the target face object. + * + * @input: + * pixel_width :: + * The nominal width, in pixels. + * + * pixel_height :: + * The nominal height, in pixels. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * You should not rely on the resulting glyphs matching or being + * constrained to this pixel size. Refer to @FT_Request_Size to + * understand how requested sizes relate to actual sizes. + * + * Don't use this function if you are using the FreeType cache API. + */ FT_EXPORT( FT_Error ) FT_Set_Pixel_Sizes( FT_Face face, FT_UInt pixel_width, FT_UInt pixel_height ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Load_Glyph */ - /* */ - /* <Description> */ - /* A function used to load a single glyph into the glyph slot of a */ - /* face object. */ - /* */ - /* <InOut> */ - /* face :: A handle to the target face object where the glyph */ - /* is loaded. */ - /* */ - /* <Input> */ - /* glyph_index :: The index of the glyph in the font file. For */ - /* CID-keyed fonts (either in PS or in CFF format) */ - /* this argument specifies the CID value. */ - /* */ - /* load_flags :: A flag indicating what to load for this glyph. The */ - /* @FT_LOAD_XXX constants can be used to control the */ - /* glyph loading process (e.g., whether the outline */ - /* should be scaled, whether to load bitmaps or not, */ - /* whether to hint the outline, etc). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The loaded glyph may be transformed. See @FT_Set_Transform for */ - /* the details. */ - /* */ - /* For subsetted CID-keyed fonts, `FT_Err_Invalid_Argument' is */ - /* returned for invalid CID values (this is, for CID values that */ - /* don't have a corresponding glyph in the font). See the discussion */ - /* of the @FT_FACE_FLAG_CID_KEYED flag for more details. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Load_Glyph + * + * @description: + * Load a glyph into the glyph slot of a face object. + * + * @inout: + * face :: + * A handle to the target face object where the glyph is loaded. + * + * @input: + * glyph_index :: + * The index of the glyph in the font file. For CID-keyed fonts + * (either in PS or in CFF format) this argument specifies the CID + * value. + * + * load_flags :: + * A flag indicating what to load for this glyph. The @FT_LOAD_XXX + * constants can be used to control the glyph loading process (e.g., + * whether the outline should be scaled, whether to load bitmaps or + * not, whether to hint the outline, etc). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The loaded glyph may be transformed. See @FT_Set_Transform for the + * details. + * + * For subsetted CID-keyed fonts, `FT_Err_Invalid_Argument` is returned + * for invalid CID values (this is, for CID values that don't have a + * corresponding glyph in the font). See the discussion of the + * @FT_FACE_FLAG_CID_KEYED flag for more details. + * + * If you receive `FT_Err_Glyph_Too_Big`, try getting the glyph outline + * at EM size, then scale it manually and fill it as a graphics + * operation. + */ FT_EXPORT( FT_Error ) FT_Load_Glyph( FT_Face face, FT_UInt glyph_index, FT_Int32 load_flags ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Load_Char */ - /* */ - /* <Description> */ - /* A function used to load a single glyph into the glyph slot of a */ - /* face object, according to its character code. */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object where the glyph */ - /* is loaded. */ - /* */ - /* <Input> */ - /* char_code :: The glyph's character code, according to the */ - /* current charmap used in the face. */ - /* */ - /* load_flags :: A flag indicating what to load for this glyph. The */ - /* @FT_LOAD_XXX constants can be used to control the */ - /* glyph loading process (e.g., whether the outline */ - /* should be scaled, whether to load bitmaps or not, */ - /* whether to hint the outline, etc). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function simply calls @FT_Get_Char_Index and @FT_Load_Glyph. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Load_Char + * + * @description: + * Load a glyph into the glyph slot of a face object, accessed by its + * character code. + * + * @inout: + * face :: + * A handle to a target face object where the glyph is loaded. + * + * @input: + * char_code :: + * The glyph's character code, according to the current charmap used in + * the face. + * + * load_flags :: + * A flag indicating what to load for this glyph. The @FT_LOAD_XXX + * constants can be used to control the glyph loading process (e.g., + * whether the outline should be scaled, whether to load bitmaps or + * not, whether to hint the outline, etc). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function simply calls @FT_Get_Char_Index and @FT_Load_Glyph. + * + * Many fonts contain glyphs that can't be loaded by this function 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, FT_Int32 load_flags ); - /************************************************************************* + /************************************************************************** * * @enum: * FT_LOAD_XXX * * @description: - * A list of bit-field constants used with @FT_Load_Glyph to indicate - * what kind of operations to perform during glyph loading. + * A list of bit field constants for @FT_Load_Glyph to indicate what kind + * of operations to perform during glyph loading. * * @values: * FT_LOAD_DEFAULT :: @@ -2510,17 +2858,16 @@ FT_BEGIN_HEADER * operation. In this case, the following happens: * * 1. FreeType looks for a bitmap for the glyph corresponding to the - * face's current size. If one is found, the function returns. - * The bitmap data can be accessed from the glyph slot (see note - * below). + * face's current size. If one is found, the function returns. The + * bitmap data can be accessed from the glyph slot (see note below). * - * 2. If no embedded bitmap is searched or found, FreeType looks for a - * scalable outline. If one is found, it is loaded from the font - * file, scaled to device pixels, then `hinted' to the pixel grid - * in order to optimize it. The outline data can be accessed from - * the glyph slot (see note below). + * 2. If no embedded bitmap is searched for or found, FreeType looks + * for a scalable outline. If one is found, it is loaded from the font + * file, scaled to device pixels, then 'hinted' to the pixel grid in + * order to optimize it. The outline data can be accessed from the + * glyph slot (see note below). * - * Note that by default, the glyph loader doesn't render outlines into + * Note that by default the glyph loader doesn't render outlines into * bitmaps. The following flags are used to modify this default * behaviour to more specific and useful cases. * @@ -2530,14 +2877,14 @@ FT_BEGIN_HEADER * This flag implies @FT_LOAD_NO_HINTING and @FT_LOAD_NO_BITMAP, and * unsets @FT_LOAD_RENDER. * - * If the font is `tricky' (see @FT_FACE_FLAG_TRICKY for more), using - * FT_LOAD_NO_SCALE usually yields meaningless outlines because the - * subglyphs must be scaled and positioned with hinting instructions. - * This can be solved by loading the font without FT_LOAD_NO_SCALE and - * setting the character size to `font->units_per_EM'. + * If the font is 'tricky' (see @FT_FACE_FLAG_TRICKY for more), using + * `FT_LOAD_NO_SCALE` usually yields meaningless outlines because the + * subglyphs must be scaled and positioned with hinting instructions. + * This can be solved by loading the font without `FT_LOAD_NO_SCALE` + * and setting the character size to `font->units_per_EM`. * * FT_LOAD_NO_HINTING :: - * Disable hinting. This generally generates `blurrier' bitmap glyphs + * Disable hinting. This generally generates 'blurrier' bitmap glyphs * when the glyph are rendered in any of the anti-aliased modes. See * also the note below. * @@ -2558,40 +2905,42 @@ FT_BEGIN_HEADER * * FT_LOAD_VERTICAL_LAYOUT :: * Load the glyph for vertical text layout. In particular, the - * `advance' value in the @FT_GlyphSlotRec structure is set to the - * `vertAdvance' value of the `metrics' field. + * `advance` value in the @FT_GlyphSlotRec structure is set to the + * `vertAdvance` value of the `metrics` field. * - * In case @FT_HAS_VERTICAL doesn't return true, you shouldn't use - * this flag currently. Reason is that in this case vertical metrics - * get synthesized, and those values are not always consistent across + * In case @FT_HAS_VERTICAL doesn't return true, you shouldn't use this + * flag currently. Reason is that in this case vertical metrics get + * synthesized, and those values are not always consistent across * various font formats. * * FT_LOAD_FORCE_AUTOHINT :: - * Indicates that the auto-hinter is preferred over the font's native - * hinter. See also the note below. + * Prefer the auto-hinter over the font's native hinter. See also the + * note below. * * FT_LOAD_PEDANTIC :: - * Indicates that the font driver should perform pedantic verifications - * during glyph loading. This is mostly used to detect broken glyphs - * in fonts. By default, FreeType tries to handle broken fonts also. + * Make the font driver perform pedantic verifications during glyph + * loading and hinting. This is mostly used to detect broken glyphs in + * fonts. By default, FreeType tries to handle broken fonts also. * * In particular, errors from the TrueType bytecode engine are not - * passed to the application if this flag is not set; this might - * result in partially hinted or distorted glyphs in case a glyph's - * bytecode is buggy. + * passed to the application if this flag is not set; this might result + * in partially hinted or distorted glyphs in case a glyph's bytecode + * is buggy. * * FT_LOAD_NO_RECURSE :: - * Indicate that the font driver should not load composite glyphs - * recursively. Instead, it should set the `num_subglyph' and - * `subglyphs' values of the glyph slot accordingly, and set - * `glyph->format' to @FT_GLYPH_FORMAT_COMPOSITE. The description of - * subglyphs can then be accessed with @FT_Get_SubGlyph_Info. + * Don't load composite glyphs recursively. Instead, the font driver + * fills the `num_subglyph` and `subglyphs` values of the glyph slot; + * it also sets `glyph->format` to @FT_GLYPH_FORMAT_COMPOSITE. The + * description of subglyphs can then be accessed with + * @FT_Get_SubGlyph_Info. + * + * Don't use this flag for retrieving metrics information since some + * font drivers only return rudimentary data. * * This flag implies @FT_LOAD_NO_SCALE and @FT_LOAD_IGNORE_TRANSFORM. * * FT_LOAD_IGNORE_TRANSFORM :: - * Indicates that the transform matrix set by @FT_Set_Transform should - * be ignored. + * Ignore the transform matrix set by @FT_Set_Transform. * * FT_LOAD_MONOCHROME :: * This flag is used with @FT_LOAD_RENDER to indicate that you want to @@ -2603,20 +2952,48 @@ FT_BEGIN_HEADER * monochrome-optimized hinting algorithm is used. * * FT_LOAD_LINEAR_DESIGN :: - * Indicates that the `linearHoriAdvance' and `linearVertAdvance' - * fields of @FT_GlyphSlotRec should be kept in font units. See - * @FT_GlyphSlotRec for details. + * Keep `linearHoriAdvance` and `linearVertAdvance` fields of + * @FT_GlyphSlotRec in font units. See @FT_GlyphSlotRec for details. * * FT_LOAD_NO_AUTOHINT :: - * Disable auto-hinter. See also the note below. + * Disable the auto-hinter. See also the note below. * * FT_LOAD_COLOR :: - * This flag is used to request loading of color embedded-bitmap - * images. The resulting color bitmaps, if available, will have the - * @FT_PIXEL_MODE_BGRA format. When the flag is not used and color - * bitmaps are found, they will be converted to 256-level gray - * bitmaps transparently. Those bitmaps will be in the - * @FT_PIXEL_MODE_GRAY format. + * Load colored glyphs. There are slight differences depending on the + * font format. + * + * [Since 2.5] Load embedded color bitmap images. The resulting color + * bitmaps, if available, will have the @FT_PIXEL_MODE_BGRA format, + * with pre-multiplied color channels. If the flag is not set and + * color bitmaps are found, they are converted to 256-level gray + * bitmaps, using the @FT_PIXEL_MODE_GRAY format. + * + * [Since 2.10, experimental] If the glyph index contains an entry in + * the face's 'COLR' table with a 'CPAL' palette table (as defined in + * the OpenType specification), make @FT_Render_Glyph provide a default + * blending of the color glyph layers associated with the glyph index, + * using the same bitmap format as embedded color bitmap images. This + * is mainly for convenience; for full control of color layers use + * @FT_Get_Color_Glyph_Layer and FreeType's color functions like + * @FT_Palette_Select instead of setting @FT_LOAD_COLOR for rendering + * so that the client application can handle blending by itself. + * + * FT_LOAD_COMPUTE_METRICS :: + * [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 :: + * [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. * * FT_LOAD_CROP_BITMAP :: * Ignored. Deprecated. @@ -2629,8 +3006,8 @@ FT_BEGIN_HEADER * @FT_FACE_FLAG_HINTER) is preferred over the auto-hinter. You can * disable hinting by setting @FT_LOAD_NO_HINTING or change the * precedence by setting @FT_LOAD_FORCE_AUTOHINT. You can also set - * @FT_LOAD_NO_AUTOHINT in case you don't want the auto-hinter to be - * used at all. + * @FT_LOAD_NO_AUTOHINT in case you don't want the auto-hinter to be used + * at all. * * See the description of @FT_FACE_FLAG_TRICKY for a special exception * (affecting only a handful of Asian fonts). @@ -2641,7 +3018,7 @@ FT_BEGIN_HEADER * Note that the auto-hinter needs a valid Unicode cmap (either a native * one or synthesized by FreeType) for producing correct results. If a * font provides an incorrect mapping (for example, assigning the - * character code U+005A, LATIN CAPITAL LETTER Z, to a glyph depicting a + * character code U+005A, LATIN CAPITAL LETTER~Z, to a glyph depicting a * mathematical integral sign), the auto-hinter might produce useless * results. * @@ -2661,12 +3038,14 @@ FT_BEGIN_HEADER #define FT_LOAD_MONOCHROME ( 1L << 12 ) #define FT_LOAD_LINEAR_DESIGN ( 1L << 13 ) #define FT_LOAD_NO_AUTOHINT ( 1L << 15 ) - /* Bits 16..19 are used by `FT_LOAD_TARGET_' */ + /* Bits 16-19 are used by `FT_LOAD_TARGET_` */ #define FT_LOAD_COLOR ( 1L << 20 ) +#define FT_LOAD_COMPUTE_METRICS ( 1L << 21 ) +#define FT_LOAD_BITMAP_METRICS_ONLY ( 1L << 22 ) /* */ - /* used internally only by certain font drivers! */ + /* used internally only by certain font drivers */ #define FT_LOAD_ADVANCE_ONLY ( 1L << 8 ) #define FT_LOAD_SBITS_ONLY ( 1L << 14 ) @@ -2677,37 +3056,52 @@ FT_BEGIN_HEADER * FT_LOAD_TARGET_XXX * * @description: - * A list of values that are used to select a specific hinting algorithm - * to use by the hinter. You should OR one of these values to your - * `load_flags' when calling @FT_Load_Glyph. + * A list of values to select a specific hinting algorithm for the + * hinter. You should OR one of these values to your `load_flags` when + * calling @FT_Load_Glyph. * - * Note that font's native hinters may ignore the hinting algorithm you + * Note that a font's native hinters may ignore the hinting algorithm you * have specified (e.g., the TrueType bytecode interpreter). You can set * @FT_LOAD_FORCE_AUTOHINT to ensure that the auto-hinter is used. * - * Also note that @FT_LOAD_TARGET_LIGHT is an exception, in that it - * always implies @FT_LOAD_FORCE_AUTOHINT. - * * @values: * FT_LOAD_TARGET_NORMAL :: - * This corresponds to the default hinting algorithm, optimized for - * standard gray-level rendering. For monochrome output, use - * @FT_LOAD_TARGET_MONO instead. + * The default hinting algorithm, optimized for standard gray-level + * rendering. For monochrome output, use @FT_LOAD_TARGET_MONO instead. * * FT_LOAD_TARGET_LIGHT :: - * A lighter hinting algorithm for non-monochrome modes. Many - * generated glyphs are more fuzzy but better resemble its original - * shape. A bit like rendering on Mac OS~X. + * A lighter hinting algorithm for gray-level modes. Many generated + * glyphs are fuzzier but better resemble their original shape. This + * is achieved by snapping glyphs to the pixel grid only vertically + * (Y-axis), as is done by FreeType's new CFF engine or Microsoft's + * ClearType font renderer. This preserves inter-glyph spacing in + * horizontal text. The snapping is done either by the native font + * driver, if the driver itself and the font support it, or by the + * auto-hinter. * - * As a special exception, this target implies @FT_LOAD_FORCE_AUTOHINT. + * 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 subpixel positioning + * (which is recommended to use). + * + * If configuration option `AF_CONFIG_OPTION_TT_SIZE_METRICS` is + * active, TrueType-like metrics are used to make this mode behave + * similarly as in unpatched FreeType versions between 2.4.6 and 2.7.1 + * (inclusive). * * FT_LOAD_TARGET_MONO :: * Strong hinting algorithm that should only be used for monochrome * output. The result is probably unpleasant if the glyph is rendered * in non-monochrome modes. * + * Note that for outline fonts only the TrueType font driver has proper + * monochrome hinting support, provided the TTFs contain hints for B/W + * rendering (which most fonts no longer provide). If these conditions + * are not met it is very likely that you get ugly results at smaller + * sizes. + * * FT_LOAD_TARGET_LCD :: - * A variant of @FT_LOAD_TARGET_NORMAL optimized for horizontally + * A variant of @FT_LOAD_TARGET_LIGHT optimized for horizontally * decimated LCD displays. * * FT_LOAD_TARGET_LCD_V :: @@ -2715,25 +3109,32 @@ FT_BEGIN_HEADER * decimated LCD displays. * * @note: - * You should use only _one_ of the FT_LOAD_TARGET_XXX values in your - * `load_flags'. They can't be ORed. + * You should use only _one_ of the `FT_LOAD_TARGET_XXX` values in your + * `load_flags`. They can't be ORed. * * If @FT_LOAD_RENDER is also set, the glyph is rendered in the * corresponding mode (i.e., the mode that matches the used algorithm - * best). An exeption is FT_LOAD_TARGET_MONO since it implies + * best). An exception is `FT_LOAD_TARGET_MONO` since it implies * @FT_LOAD_MONOCHROME. * * You can use a hinting algorithm that doesn't correspond to the same - * rendering mode. As an example, it is possible to use the `light' + * rendering mode. As an example, it is possible to use the 'light' * hinting algorithm and have the results rendered in horizontal LCD * pixel mode, with code like * - * { - * FT_Load_Glyph( face, glyph_index, - * load_flags | FT_LOAD_TARGET_LIGHT ); + * ``` + * FT_Load_Glyph( face, glyph_index, + * load_flags | FT_LOAD_TARGET_LIGHT ); * - * FT_Render_Glyph( face->glyph, FT_RENDER_MODE_LCD ); - * } + * FT_Render_Glyph( face->glyph, FT_RENDER_MODE_LCD ); + * ``` + * + * In general, you should stick with one rendering mode. For example, + * switching between @FT_LOAD_TARGET_NORMAL and @FT_LOAD_TARGET_MONO + * enforces a lot of recomputation for TrueType fonts, which is slow. + * Another reason is caching: Selecting a different mode usually causes + * changes in both the outlines and the rasterized bitmaps; it is thus + * necessary to empty the cache after a mode switch to avoid false hits. * */ #define FT_LOAD_TARGET_( x ) ( (FT_Int32)( (x) & 15 ) << 16 ) @@ -2758,95 +3159,98 @@ FT_BEGIN_HEADER #define FT_LOAD_TARGET_MODE( x ) ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) ) - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Transform */ - /* */ - /* <Description> */ - /* A function used to set the transformation that is applied to glyph */ - /* images when they are loaded into a glyph slot through */ - /* @FT_Load_Glyph. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to the transformation's 2x2 matrix. Use~0 for */ - /* the identity matrix. */ - /* delta :: A pointer to the translation vector. Use~0 for the null */ - /* vector. */ - /* */ - /* <Note> */ - /* The transformation is only applied to scalable image formats after */ - /* the glyph has been loaded. It means that hinting is unaltered by */ - /* the transformation and is performed on the character size given in */ - /* the last call to @FT_Set_Char_Size or @FT_Set_Pixel_Sizes. */ - /* */ - /* Note that this also transforms the `face.glyph.advance' field, but */ - /* *not* the values in `face.glyph.metrics'. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Set_Transform + * + * @description: + * Set the transformation that is applied to glyph images when they are + * loaded into a glyph slot through @FT_Load_Glyph. + * + * @inout: + * face :: + * A handle to the source face object. + * + * @input: + * matrix :: + * A pointer to the transformation's 2x2 matrix. Use `NULL` for the + * identity matrix. + * delta :: + * A pointer to the translation vector. Use `NULL` for the null vector. + * + * @note: + * The transformation is only applied to scalable image formats after the + * glyph has been loaded. It means that hinting is unaltered by the + * transformation and is performed on the character size given in the + * last call to @FT_Set_Char_Size or @FT_Set_Pixel_Sizes. + * + * Note that this also transforms the `face.glyph.advance` field, but + * **not** the values in `face.glyph.metrics`. + */ FT_EXPORT( void ) FT_Set_Transform( FT_Face face, FT_Matrix* matrix, FT_Vector* delta ); - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Render_Mode */ - /* */ - /* <Description> */ - /* An enumeration type that lists the render modes supported by */ - /* FreeType~2. Each mode corresponds to a specific type of scanline */ - /* conversion performed on the outline. */ - /* */ - /* For bitmap fonts and embedded bitmaps the `bitmap->pixel_mode' */ - /* field in the @FT_GlyphSlotRec structure gives the format of the */ - /* returned bitmap. */ - /* */ - /* All modes except @FT_RENDER_MODE_MONO use 256 levels of opacity. */ - /* */ - /* <Values> */ - /* FT_RENDER_MODE_NORMAL :: */ - /* This is the default render mode; it corresponds to 8-bit */ - /* anti-aliased bitmaps. */ - /* */ - /* FT_RENDER_MODE_LIGHT :: */ - /* This is equivalent to @FT_RENDER_MODE_NORMAL. It is only */ - /* defined as a separate value because render modes are also used */ - /* indirectly to define hinting algorithm selectors. See */ - /* @FT_LOAD_TARGET_XXX for details. */ - /* */ - /* FT_RENDER_MODE_MONO :: */ - /* This mode corresponds to 1-bit bitmaps (with 2~levels of */ - /* opacity). */ - /* */ - /* FT_RENDER_MODE_LCD :: */ - /* This mode corresponds to horizontal RGB and BGR sub-pixel */ - /* 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 */ - /* (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. */ - /* */ - /* <Note> */ - /* The LCD-optimized glyph bitmaps produced by FT_Render_Glyph can be */ - /* filtered to reduce color-fringes by using @FT_Library_SetLcdFilter */ - /* (not active in the default builds). It is up to the caller to */ - /* either call @FT_Library_SetLcdFilter (if available) or do the */ - /* filtering itself. */ - /* */ - /* The selected render mode only affects vector glyphs of a font. */ - /* Embedded bitmaps often have a different pixel mode like */ - /* @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform */ - /* them into 8-bit pixmaps. */ - /* */ + /************************************************************************** + * + * @enum: + * FT_Render_Mode + * + * @description: + * Render modes supported by FreeType~2. Each mode corresponds to a + * specific type of scanline conversion performed on the outline. + * + * For bitmap fonts and embedded bitmaps the `bitmap->pixel_mode` field + * in the @FT_GlyphSlotRec structure gives the format of the returned + * bitmap. + * + * All modes except @FT_RENDER_MODE_MONO use 256 levels of opacity, + * indicating pixel coverage. Use linear alpha blending and gamma + * correction to correctly render non-monochrome glyph bitmaps onto a + * surface; see @FT_Render_Glyph. + * + * @values: + * FT_RENDER_MODE_NORMAL :: + * Default render mode; it corresponds to 8-bit anti-aliased bitmaps. + * + * FT_RENDER_MODE_LIGHT :: + * This is equivalent to @FT_RENDER_MODE_NORMAL. It is only defined as + * a separate value because render modes are also used indirectly to + * define hinting algorithm selectors. See @FT_LOAD_TARGET_XXX for + * details. + * + * FT_RENDER_MODE_MONO :: + * This mode corresponds to 1-bit bitmaps (with 2~levels of opacity). + * + * FT_RENDER_MODE_LCD :: + * 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 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. + * + * @note: + * Should you define `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` in your + * `ftoption.h`, which enables patented ClearType-style rendering, the + * LCD-optimized glyph bitmaps should be filtered to reduce color fringes + * inherent to this technology. You can either set up LCD filtering with + * @FT_Library_SetLcdFilter or @FT_Face_Properties, or do the filtering + * yourself. The default FreeType LCD rendering technology does not + * require filtering. + * + * The selected render mode only affects vector glyphs of a font. + * Embedded bitmaps often have a different pixel mode like + * @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform them + * into 8-bit pixmaps. + */ typedef enum FT_Render_Mode_ { FT_RENDER_MODE_NORMAL = 0, @@ -2861,64 +3265,152 @@ FT_BEGIN_HEADER /* these constants are deprecated; use the corresponding */ - /* `FT_Render_Mode' values instead */ + /* `FT_Render_Mode` values instead */ #define ft_render_mode_normal FT_RENDER_MODE_NORMAL #define ft_render_mode_mono FT_RENDER_MODE_MONO - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Render_Glyph */ - /* */ - /* <Description> */ - /* Convert a given glyph image to a bitmap. It does so by inspecting */ - /* the glyph image format, finding the relevant renderer, and */ - /* invoking it. */ - /* */ - /* <InOut> */ - /* slot :: A handle to the glyph slot containing the image to */ - /* convert. */ - /* */ - /* <Input> */ - /* render_mode :: This is the render mode used to render the glyph */ - /* image into a bitmap. See @FT_Render_Mode for a */ - /* list of possible values. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* To get meaningful results, font scaling values must be set with */ - /* functions like @FT_Set_Char_Size before calling FT_Render_Glyph. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Render_Glyph + * + * @description: + * Convert a given glyph image to a bitmap. It does so by inspecting the + * glyph image format, finding the relevant renderer, and invoking it. + * + * @inout: + * slot :: + * A handle to the glyph slot containing the image to convert. + * + * @input: + * render_mode :: + * The render mode used to render the glyph image into a bitmap. See + * @FT_Render_Mode for a list of possible values. + * + * If @FT_RENDER_MODE_NORMAL is used, a previous call of @FT_Load_Glyph + * with flag @FT_LOAD_COLOR makes FT_Render_Glyph provide a default + * blending of colored glyph layers associated with the current glyph + * slot (provided the font contains such layers) instead of rendering + * the glyph slot's outline. This is an experimental feature; see + * @FT_LOAD_COLOR for more information. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * To get meaningful results, font scaling values must be set with + * functions like @FT_Set_Char_Size before calling `FT_Render_Glyph`. + * + * When FreeType outputs a bitmap of a glyph, it really outputs an alpha + * coverage map. If a pixel is completely covered by a filled-in + * outline, the bitmap contains 0xFF at that pixel, meaning that + * 0xFF/0xFF fraction of that pixel is covered, meaning the pixel is 100% + * black (or 0% bright). If a pixel is only 50% covered (value 0x80), + * the pixel is made 50% black (50% bright or a middle shade of grey). + * 0% covered means 0% black (100% bright or white). + * + * On high-DPI screens like on smartphones and tablets, the pixels are so + * small that their chance of being completely covered and therefore + * completely black are fairly good. On the low-DPI screens, however, + * the situation is different. The pixels are too large for most of the + * details of a glyph and shades of gray are the norm rather than the + * exception. + * + * This is relevant because all our screens have a second problem: they + * are not linear. 1~+~1 is not~2. Twice the value does not result in + * twice the brightness. When a pixel is only 50% covered, the coverage + * map says 50% black, and this translates to a pixel value of 128 when + * you use 8~bits per channel (0-255). However, this does not translate + * to 50% brightness for that pixel on our sRGB and gamma~2.2 screens. + * Due to their non-linearity, they dwell longer in the darks and only a + * pixel value of about 186 results in 50% brightness -- 128 ends up too + * dark on both bright and dark backgrounds. The net result is that dark + * text looks burnt-out, pixely and blotchy on bright background, bright + * text too frail on dark backgrounds, and colored text on colored + * background (for example, red on green) seems to have dark halos or + * 'dirt' around it. The situation is especially ugly for diagonal stems + * like in 'w' glyph shapes where the quality of FreeType's anti-aliasing + * depends on the correct display of grays. On high-DPI screens where + * smaller, fully black pixels reign supreme, this doesn't matter, but on + * our low-DPI screens with all the gray shades, it does. 0% and 100% + * brightness are the same things in linear and non-linear space, just + * all the shades in-between aren't. + * + * The blending function for placing text over a background is + * + * ``` + * dst = alpha * src + (1 - alpha) * dst , + * ``` + * + * which is known as the OVER operator. + * + * To correctly composite an antialiased pixel of a glyph onto a surface, + * + * 1. take the foreground and background colors (e.g., in sRGB space) + * and apply gamma to get them in a linear space, + * + * 2. use OVER to blend the two linear colors using the glyph pixel + * as the alpha value (remember, the glyph bitmap is an alpha coverage + * bitmap), and + * + * 3. apply inverse gamma to the blended pixel and write it back to + * the image. + * + * Internal testing at Adobe found that a target inverse gamma of~1.8 for + * step~3 gives good results across a wide range of displays with an sRGB + * gamma curve or a similar one. + * + * This process can cost performance. There is an approximation that + * does not need to know about the background color; see + * https://bel.fi/alankila/lcd/ and + * https://bel.fi/alankila/lcd/alpcor.html for details. + * + * **ATTENTION**: Linear blending is even more important when dealing + * with subpixel-rendered glyphs to prevent color-fringing! A + * subpixel-rendered glyph must first be filtered with a filter that + * gives equal weight to the three color primaries and does not exceed a + * sum of 0x100, see section @lcd_rendering. Then the only difference to + * gray linear blending is that subpixel-rendered linear blending is done + * 3~times per pixel: red foreground subpixel to red background subpixel + * and so on for green and blue. + */ FT_EXPORT( FT_Error ) FT_Render_Glyph( FT_GlyphSlot slot, FT_Render_Mode render_mode ); - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Kerning_Mode */ - /* */ - /* <Description> */ - /* An enumeration used to specify which kerning values to return in */ - /* @FT_Get_Kerning. */ - /* */ - /* <Values> */ - /* FT_KERNING_DEFAULT :: Return scaled and grid-fitted kerning */ - /* distances (value is~0). */ - /* */ - /* FT_KERNING_UNFITTED :: Return scaled but un-grid-fitted kerning */ - /* distances. */ - /* */ - /* FT_KERNING_UNSCALED :: Return the kerning vector in original font */ - /* units. */ - /* */ + /************************************************************************** + * + * @enum: + * FT_Kerning_Mode + * + * @description: + * An enumeration to specify the format of kerning values returned by + * @FT_Get_Kerning. + * + * @values: + * FT_KERNING_DEFAULT :: + * Return grid-fitted kerning distances in 26.6 fractional pixels. + * + * FT_KERNING_UNFITTED :: + * Return un-grid-fitted kerning distances in 26.6 fractional pixels. + * + * FT_KERNING_UNSCALED :: + * Return the kerning vector in original font units. + * + * @note: + * `FT_KERNING_DEFAULT` returns full pixel values; it also makes FreeType + * heuristically scale down kerning distances at small ppem values so + * that they don't become too big. + * + * Both `FT_KERNING_DEFAULT` and `FT_KERNING_UNFITTED` use the current + * horizontal scaling factor (as set e.g. with @FT_Set_Char_Size) to + * convert font units to pixels. + */ typedef enum FT_Kerning_Mode_ { - FT_KERNING_DEFAULT = 0, + FT_KERNING_DEFAULT = 0, FT_KERNING_UNFITTED, FT_KERNING_UNSCALED @@ -2926,45 +3418,53 @@ FT_BEGIN_HEADER /* these constants are deprecated; use the corresponding */ - /* `FT_Kerning_Mode' values instead */ + /* `FT_Kerning_Mode` values instead */ #define ft_kerning_default FT_KERNING_DEFAULT #define ft_kerning_unfitted FT_KERNING_UNFITTED #define ft_kerning_unscaled FT_KERNING_UNSCALED - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Kerning */ - /* */ - /* <Description> */ - /* Return the kerning vector between two glyphs of a same face. */ - /* */ - /* <Input> */ - /* face :: A handle to a source face object. */ - /* */ - /* left_glyph :: The index of the left glyph in the kern pair. */ - /* */ - /* right_glyph :: The index of the right glyph in the kern pair. */ - /* */ - /* kern_mode :: See @FT_Kerning_Mode for more information. */ - /* Determines the scale and dimension of the returned */ - /* kerning vector. */ - /* */ - /* <Output> */ - /* akerning :: The kerning vector. This is either in font units */ - /* or in pixels (26.6 format) for scalable formats, */ - /* and in pixels for fixed-sizes formats. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Only horizontal layouts (left-to-right & right-to-left) are */ - /* supported by this method. Other layouts, or more sophisticated */ - /* kernings, are out of the scope of this API function -- they can be */ - /* implemented through format-specific interfaces. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Kerning + * + * @description: + * Return the kerning vector between two glyphs of the same face. + * + * @input: + * face :: + * A handle to a source face object. + * + * left_glyph :: + * The index of the left glyph in the kern pair. + * + * right_glyph :: + * The index of the right glyph in the kern pair. + * + * kern_mode :: + * See @FT_Kerning_Mode for more information. Determines the scale and + * dimension of the returned kerning vector. + * + * @output: + * akerning :: + * The kerning vector. This is either in font units, fractional pixels + * (26.6 format), or pixels for scalable formats, and in pixels for + * fixed-sizes formats. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Only horizontal layouts (left-to-right & right-to-left) are supported + * by this method. Other layouts, or more sophisticated kernings, are + * out of the scope of this API function -- they can be implemented + * through format-specific interfaces. + * + * Kerning for OpenType fonts implemented in a 'GPOS' table is not + * supported; use @FT_HAS_KERNING to find out whether a font has data + * that can be extracted with `FT_Get_Kerning`. + */ FT_EXPORT( FT_Error ) FT_Get_Kerning( FT_Face face, FT_UInt left_glyph, @@ -2973,39 +3473,42 @@ FT_BEGIN_HEADER FT_Vector *akerning ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Track_Kerning */ - /* */ - /* <Description> */ - /* Return the track kerning for a given face object at a given size. */ - /* */ - /* <Input> */ - /* face :: A handle to a source face object. */ - /* */ - /* point_size :: The point size in 16.16 fractional points. */ - /* */ - /* degree :: The degree of tightness. Increasingly negative */ - /* values represent tighter track kerning, while */ - /* increasingly positive values represent looser track */ - /* kerning. Value zero means no track kerning. */ - /* */ - /* <Output> */ - /* akerning :: The kerning in 16.16 fractional points, to be */ - /* uniformly applied between all glyphs. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Currently, only the Type~1 font driver supports track kerning, */ - /* using data from AFM files (if attached with @FT_Attach_File or */ - /* @FT_Attach_Stream). */ - /* */ - /* Only very few AFM files come with track kerning data; please refer */ - /* to the Adobe's AFM specification for more details. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Track_Kerning + * + * @description: + * Return the track kerning for a given face object at a given size. + * + * @input: + * face :: + * A handle to a source face object. + * + * point_size :: + * The point size in 16.16 fractional points. + * + * degree :: + * The degree of tightness. Increasingly negative values represent + * tighter track kerning, while increasingly positive values represent + * looser track kerning. Value zero means no track kerning. + * + * @output: + * akerning :: + * The kerning in 16.16 fractional points, to be uniformly applied + * between all glyphs. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Currently, only the Type~1 font driver supports track kerning, using + * data from AFM files (if attached with @FT_Attach_File or + * @FT_Attach_Stream). + * + * Only very few AFM files come with track kerning data; please refer to + * Adobe's AFM specification for more details. + */ FT_EXPORT( FT_Error ) FT_Get_Track_Kerning( FT_Face face, FT_Fixed point_size, @@ -3013,45 +3516,46 @@ FT_BEGIN_HEADER FT_Fixed* akerning ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Glyph_Name */ - /* */ - /* <Description> */ - /* Retrieve the ASCII name of a given glyph in a face. This only */ - /* works for those faces where @FT_HAS_GLYPH_NAMES(face) returns~1. */ - /* */ - /* <Input> */ - /* face :: A handle to a source face object. */ - /* */ - /* glyph_index :: The glyph index. */ - /* */ - /* buffer_max :: The maximum number of bytes available in the */ - /* buffer. */ - /* */ - /* <Output> */ - /* buffer :: A pointer to a target buffer where the name is */ - /* copied to. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* An error is returned if the face doesn't provide glyph names or if */ - /* the glyph index is invalid. In all cases of failure, the first */ - /* byte of `buffer' is set to~0 to indicate an empty name. */ - /* */ - /* The glyph name is truncated to fit within the buffer if it is too */ - /* long. The returned string is always zero-terminated. */ - /* */ - /* Be aware that FreeType reorders glyph indices internally so that */ - /* glyph index~0 always corresponds to the `missing glyph' (called */ - /* `.notdef'). */ - /* */ - /* This function always returns an error if the config macro */ - /* `FT_CONFIG_OPTION_NO_GLYPH_NAMES' is not defined in `ftoptions.h'. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Glyph_Name + * + * @description: + * Retrieve the ASCII name of a given glyph in a face. This only works + * for those faces where @FT_HAS_GLYPH_NAMES(face) returns~1. + * + * @input: + * face :: + * A handle to a source face object. + * + * glyph_index :: + * The glyph index. + * + * buffer_max :: + * The maximum number of bytes available in the buffer. + * + * @output: + * buffer :: + * A pointer to a target buffer where the name is copied to. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * An error is returned if the face doesn't provide glyph names or if the + * glyph index is invalid. In all cases of failure, the first byte of + * `buffer` is set to~0 to indicate an empty name. + * + * The glyph name is truncated to fit within the buffer if it is too + * long. The returned string is always zero-terminated. + * + * Be aware that FreeType reorders glyph indices internally so that glyph + * index~0 always corresponds to the 'missing glyph' (called '.notdef'). + * + * This function always returns an error if the config macro + * `FT_CONFIG_OPTION_NO_GLYPH_NAMES` is not defined in `ftoption.h`. + */ FT_EXPORT( FT_Error ) FT_Get_Glyph_Name( FT_Face face, FT_UInt glyph_index, @@ -3059,92 +3563,109 @@ FT_BEGIN_HEADER FT_UInt buffer_max ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Postscript_Name */ - /* */ - /* <Description> */ - /* Retrieve the ASCII PostScript name of a given face, if available. */ - /* This only works with PostScript and TrueType fonts. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Return> */ - /* A pointer to the face's PostScript name. NULL if unavailable. */ - /* */ - /* <Note> */ - /* The returned pointer is owned by the face and is destroyed with */ - /* it. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Postscript_Name + * + * @description: + * Retrieve the ASCII PostScript name of a given face, if available. + * This only works with PostScript, TrueType, and OpenType fonts. + * + * @input: + * face :: + * A handle to the source face object. + * + * @return: + * A pointer to the face's PostScript name. `NULL` if unavailable. + * + * @note: + * The returned pointer is owned by the face and is destroyed with it. + * + * For variation fonts, this string changes if you select a different + * instance, and you have to call `FT_Get_PostScript_Name` again to + * retrieve it. FreeType follows Adobe TechNote #5902, 'Generating + * PostScript Names for Fonts Using OpenType Font Variations'. + * + * 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 ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Select_Charmap */ - /* */ - /* <Description> */ - /* Select a given charmap by its encoding tag (as listed in */ - /* `freetype.h'). */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Input> */ - /* encoding :: A handle to the selected encoding. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function returns an error if no charmap in the face */ - /* corresponds to the encoding queried here. */ - /* */ - /* Because many fonts contain more than a single cmap for Unicode */ - /* encoding, this function has some special code to select the one */ - /* that covers Unicode best (`best' in the sense that a UCS-4 cmap is */ - /* preferred to a UCS-2 cmap). It is thus preferable to */ - /* @FT_Set_Charmap in this case. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Select_Charmap + * + * @description: + * Select a given charmap by its encoding tag (as listed in + * `freetype.h`). + * + * @inout: + * face :: + * A handle to the source face object. + * + * @input: + * encoding :: + * A handle to the selected encoding. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function returns an error if no charmap in the face corresponds + * to the encoding queried here. + * + * Because many fonts contain more than a single cmap for Unicode + * encoding, this function has some special code to select the one that + * covers Unicode best ('best' in the sense that a UCS-4 cmap is + * preferred to a UCS-2 cmap). It is thus preferable to @FT_Set_Charmap + * in this case. + */ FT_EXPORT( FT_Error ) FT_Select_Charmap( FT_Face face, FT_Encoding encoding ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Charmap */ - /* */ - /* <Description> */ - /* Select a given charmap for character code to glyph index mapping. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Input> */ - /* charmap :: A handle to the selected charmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function returns an error if the charmap is not part of */ - /* the face (i.e., if it is not listed in the `face->charmaps' */ - /* table). */ - /* */ - /* It also fails if a type~14 charmap is selected. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Set_Charmap + * + * @description: + * Select a given charmap for character code to glyph index mapping. + * + * @inout: + * face :: + * A handle to the source face object. + * + * @input: + * charmap :: + * A handle to the selected charmap. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function returns an error if the charmap is not part of the face + * (i.e., if it is not listed in the `face->charmaps` table). + * + * It also fails if an OpenType type~14 charmap is selected (which + * doesn't map character codes to glyph indices at all). + */ FT_EXPORT( FT_Error ) FT_Set_Charmap( FT_Face face, FT_CharMap charmap ); - /************************************************************************* + /************************************************************************** * * @function: * FT_Get_Charmap_Index @@ -3158,161 +3679,274 @@ FT_BEGIN_HEADER * * @return: * The index into the array of character maps within the face to which - * `charmap' belongs. If an error occurs, -1 is returned. + * `charmap` belongs. If an error occurs, -1 is returned. * */ FT_EXPORT( FT_Int ) FT_Get_Charmap_Index( FT_CharMap charmap ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Char_Index */ - /* */ - /* <Description> */ - /* Return the glyph index of a given character code. This function */ - /* uses a charmap object to do the mapping. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* charcode :: The character code. */ - /* */ - /* <Return> */ - /* The glyph index. 0~means `undefined character code'. */ - /* */ - /* <Note> */ - /* If you use FreeType to manipulate the contents of font files */ - /* directly, be aware that the glyph index returned by this function */ - /* doesn't always correspond to the internal indices used within the */ - /* file. This is done to ensure that value~0 always corresponds to */ - /* the `missing glyph'. If the first glyph is not named `.notdef', */ - /* then for Type~1 and Type~42 fonts, `.notdef' will be moved into */ - /* the glyph ID~0 position, and whatever was there will be moved to */ - /* the position `.notdef' had. For Type~1 fonts, if there is no */ - /* `.notdef' glyph at all, then one will be created at index~0 and */ - /* whatever was there will be moved to the last index -- Type~42 */ - /* fonts are considered invalid under this condition. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Char_Index + * + * @description: + * Return the glyph index of a given character code. This function uses + * the currently selected charmap to do the mapping. + * + * @input: + * face :: + * A handle to the source face object. + * + * charcode :: + * The character code. + * + * @return: + * The glyph index. 0~means 'undefined character code'. + * + * @note: + * If you use FreeType to manipulate the contents of font files directly, + * be aware that the glyph index returned by this function doesn't always + * correspond to the internal indices used within the file. This is done + * to ensure that value~0 always corresponds to the 'missing glyph'. If + * the first glyph is not named '.notdef', then for Type~1 and Type~42 + * fonts, '.notdef' will be moved into the glyph ID~0 position, and + * whatever was there will be moved to the position '.notdef' had. For + * Type~1 fonts, if there is no '.notdef' glyph at all, then one will be + * created at index~0 and whatever was there will be moved to the last + * index -- Type~42 fonts are considered invalid under this condition. + */ FT_EXPORT( FT_UInt ) FT_Get_Char_Index( FT_Face face, FT_ULong charcode ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_First_Char */ - /* */ - /* <Description> */ - /* This function is used to return the first character code in the */ - /* current charmap of a given face. It also returns the */ - /* corresponding glyph index. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Output> */ - /* agindex :: Glyph index of first character code. 0~if charmap is */ - /* empty. */ - /* */ - /* <Return> */ - /* The charmap's first character code. */ - /* */ - /* <Note> */ - /* You should use this function with @FT_Get_Next_Char to be able to */ - /* parse all character codes available in a given charmap. The code */ - /* should look like this: */ - /* */ - /* { */ - /* FT_ULong charcode; */ - /* FT_UInt gindex; */ - /* */ - /* */ - /* charcode = FT_Get_First_Char( face, &gindex ); */ - /* while ( gindex != 0 ) */ - /* { */ - /* ... do something with (charcode,gindex) pair ... */ - /* */ - /* charcode = FT_Get_Next_Char( face, charcode, &gindex ); */ - /* } */ - /* } */ - /* */ - /* Note that `*agindex' is set to~0 if the charmap is empty. The */ - /* result itself can be~0 in two cases: if the charmap is empty or */ - /* if the value~0 is the first valid character code. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_First_Char + * + * @description: + * Return the first character code in the current charmap of a given + * face, together with its corresponding glyph index. + * + * @input: + * face :: + * A handle to the source face object. + * + * @output: + * agindex :: + * Glyph index of first character code. 0~if charmap is empty. + * + * @return: + * The charmap's first character code. + * + * @note: + * You should use this function together with @FT_Get_Next_Char to parse + * all character codes available in a given charmap. The code should + * look like this: + * + * ``` + * FT_ULong charcode; + * FT_UInt gindex; + * + * + * charcode = FT_Get_First_Char( face, &gindex ); + * while ( gindex != 0 ) + * { + * ... do something with (charcode,gindex) pair ... + * + * charcode = FT_Get_Next_Char( face, charcode, &gindex ); + * } + * ``` + * + * Be aware that character codes can have values up to 0xFFFFFFFF; this + * might happen for non-Unicode or malformed cmaps. However, even with + * regular Unicode encoding, so-called 'last resort fonts' (using SFNT + * cmap format 13, see function @FT_Get_CMap_Format) normally have + * entries for all Unicode characters up to 0x1FFFFF, which can cause *a + * lot* of iterations. + * + * Note that `*agindex` is set to~0 if the charmap is empty. The result + * itself can be~0 in two cases: if the charmap is empty or if the + * value~0 is the first valid character code. + */ FT_EXPORT( FT_ULong ) FT_Get_First_Char( FT_Face face, FT_UInt *agindex ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Next_Char */ - /* */ - /* <Description> */ - /* This function is used to return the next character code in the */ - /* current charmap of a given face following the value `char_code', */ - /* as well as the corresponding glyph index. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* char_code :: The starting character code. */ - /* */ - /* <Output> */ - /* agindex :: Glyph index of next character code. 0~if charmap */ - /* is empty. */ - /* */ - /* <Return> */ - /* The charmap's next character code. */ - /* */ - /* <Note> */ - /* You should use this function with @FT_Get_First_Char to walk */ - /* over all character codes available in a given charmap. See the */ - /* note for this function for a simple code example. */ - /* */ - /* Note that `*agindex' is set to~0 when there are no more codes in */ - /* the charmap. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Next_Char + * + * @description: + * Return the next character code in the current charmap of a given face + * following the value `char_code`, as well as the corresponding glyph + * index. + * + * @input: + * face :: + * A handle to the source face object. + * + * char_code :: + * The starting character code. + * + * @output: + * agindex :: + * Glyph index of next character code. 0~if charmap is empty. + * + * @return: + * The charmap's next character code. + * + * @note: + * You should use this function with @FT_Get_First_Char to walk over all + * character codes available in a given charmap. See the note for that + * function for a simple code example. + * + * Note that `*agindex` is set to~0 when there are no more codes in the + * charmap. + */ FT_EXPORT( FT_ULong ) FT_Get_Next_Char( FT_Face face, FT_ULong char_code, FT_UInt *agindex ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Name_Index */ - /* */ - /* <Description> */ - /* Return the glyph index of a given glyph name. This function uses */ - /* driver specific objects to do the translation. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* glyph_name :: The glyph name. */ - /* */ - /* <Return> */ - /* The glyph index. 0~means `undefined character code'. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Face_Properties + * + * @description: + * Set or override certain (library or module-wide) properties on a + * face-by-face basis. Useful for finer-grained control and avoiding + * locks on shared structures (threads can modify their own faces as they + * see fit). + * + * Contrary to @FT_Property_Set, this function uses @FT_Parameter so that + * you can pass multiple properties to the target face in one call. Note + * that only a subset of the available properties can be controlled. + * + * * @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). + * + * * @FT_PARAM_TAG_LCD_FILTER_WEIGHTS (LCD filter weights, corresponding + * to function @FT_Library_SetLcdFilterWeights). + * + * * @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. + * + * @input: + * face :: + * A handle to the source face object. + * + * num_properties :: + * The number of properties that follow. + * + * properties :: + * A handle to an @FT_Parameter array with `num_properties` elements. + * + * @return: + * FreeType error code. 0~means success. + * + * @example: + * Here is an example that sets three properties. You must define + * `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` to make the LCD filter examples + * work. + * + * ``` + * FT_Parameter property1; + * FT_Bool darken_stems = 1; + * + * FT_Parameter property2; + * FT_LcdFiveTapFilter custom_weight = + * { 0x11, 0x44, 0x56, 0x44, 0x11 }; + * + * FT_Parameter property3; + * FT_Int32 random_seed = 314159265; + * + * FT_Parameter properties[3] = { property1, + * property2, + * property3 }; + * + * + * property1.tag = FT_PARAM_TAG_STEM_DARKENING; + * property1.data = &darken_stems; + * + * property2.tag = FT_PARAM_TAG_LCD_FILTER_WEIGHTS; + * property2.data = custom_weight; + * + * property3.tag = FT_PARAM_TAG_RANDOM_SEED; + * property3.data = &random_seed; + * + * FT_Face_Properties( face, 3, properties ); + * ``` + * + * The next example resets a single property to its default value. + * + * ``` + * FT_Parameter property; + * + * + * property.tag = FT_PARAM_TAG_LCD_FILTER_WEIGHTS; + * property.data = NULL; + * + * FT_Face_Properties( face, 1, &property ); + * ``` + * + * @since: + * 2.8 + * + */ + FT_EXPORT( FT_Error ) + FT_Face_Properties( FT_Face face, + FT_UInt num_properties, + FT_Parameter* properties ); + + + /************************************************************************** + * + * @function: + * FT_Get_Name_Index + * + * @description: + * Return the glyph index of a given glyph name. + * + * @input: + * face :: + * A handle to the source face object. + * + * glyph_name :: + * The glyph name. + * + * @return: + * The glyph index. 0~means 'undefined character code'. + */ FT_EXPORT( FT_UInt ) FT_Get_Name_Index( FT_Face face, FT_String* glyph_name ); - /************************************************************************* + /************************************************************************** * - * @macro: + * @enum: * FT_SUBGLYPH_FLAG_XXX * * @description: - * A list of constants used to describe subglyphs. Please refer to the - * TrueType specification for the meaning of the various flags. + * A list of constants describing subglyphs. Please refer to the 'glyf' + * table description in the OpenType specification for the meaning of the + * various flags (which get synthesized for non-OpenType subglyphs). + * + * https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description * * @values: * FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS :: @@ -3333,15 +3967,15 @@ FT_BEGIN_HEADER #define FT_SUBGLYPH_FLAG_USE_MY_METRICS 0x200 - /************************************************************************* + /************************************************************************** * - * @func: + * @function: * FT_Get_SubGlyph_Info * * @description: * Retrieve a description of a given subglyph. Only use it if - * `glyph->format' is @FT_GLYPH_FORMAT_COMPOSITE; an error is - * returned otherwise. + * `glyph->format` is @FT_GLYPH_FORMAT_COMPOSITE; an error is returned + * otherwise. * * @input: * glyph :: @@ -3349,7 +3983,7 @@ FT_BEGIN_HEADER * * sub_index :: * The index of the subglyph. Must be less than - * `glyph->num_subglyphs'. + * `glyph->num_subglyphs`. * * @output: * p_index :: @@ -3371,9 +4005,11 @@ FT_BEGIN_HEADER * FreeType error code. 0~means success. * * @note: - * The values of `*p_arg1', `*p_arg2', and `*p_transform' must be - * interpreted depending on the flags returned in `*p_flags'. See the - * TrueType specification for details. + * The values of `*p_arg1`, `*p_arg2`, and `*p_transform` must be + * interpreted depending on the flags returned in `*p_flags`. See the + * OpenType specification for details. + * + * https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description * */ FT_EXPORT( FT_Error ) @@ -3386,57 +4022,228 @@ FT_BEGIN_HEADER FT_Matrix *p_transform ); - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_FSTYPE_XXX */ - /* */ - /* <Description> */ - /* A list of bit flags used in the `fsType' field of the OS/2 table */ - /* in a TrueType or OpenType font and the `FSType' entry in a */ - /* PostScript font. These bit flags are returned by */ - /* @FT_Get_FSType_Flags; they inform client applications of embedding */ - /* and subsetting restrictions associated with a font. */ - /* */ - /* See http://www.adobe.com/devnet/acrobat/pdfs/FontPolicies.pdf for */ - /* more details. */ - /* */ - /* <Values> */ - /* FT_FSTYPE_INSTALLABLE_EMBEDDING :: */ - /* Fonts with no fsType bit set may be embedded and permanently */ - /* installed on the remote system by an application. */ - /* */ - /* FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING :: */ - /* Fonts that have only this bit set must not be modified, embedded */ - /* or exchanged in any manner without first obtaining permission of */ - /* the font software copyright owner. */ - /* */ - /* FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING :: */ - /* If this bit is set, the font may be embedded and temporarily */ - /* loaded on the remote system. Documents containing Preview & */ - /* Print fonts must be opened `read-only'; no edits can be applied */ - /* to the document. */ - /* */ - /* FT_FSTYPE_EDITABLE_EMBEDDING :: */ - /* If this bit is set, the font may be embedded but must only be */ - /* installed temporarily on other systems. In contrast to Preview */ - /* & Print fonts, documents containing editable fonts may be opened */ - /* for reading, editing is permitted, and changes may be saved. */ - /* */ - /* FT_FSTYPE_NO_SUBSETTING :: */ - /* If this bit is set, the font may not be subsetted prior to */ - /* embedding. */ - /* */ - /* FT_FSTYPE_BITMAP_EMBEDDING_ONLY :: */ - /* If this bit is set, only bitmaps contained in the font may be */ - /* embedded; no outline data may be embedded. If there are no */ - /* bitmaps available in the font, then the font is unembeddable. */ - /* */ - /* <Note> */ - /* While the fsType flags can indicate that a font may be embedded, a */ - /* license with the font vendor may be separately required to use the */ - /* font in this way. */ - /* */ + /************************************************************************** + * + * @section: + * layer_management + * + * @title: + * Glyph Layer Management + * + * @abstract: + * Retrieving and manipulating OpenType's 'COLR' table data. + * + * @description: + * The functions described here allow access of colored glyph layer data + * in OpenType's 'COLR' tables. + */ + + + /************************************************************************** + * + * @struct: + * FT_LayerIterator + * + * @description: + * This iterator object is needed for @FT_Get_Color_Glyph_Layer. + * + * @fields: + * num_layers :: + * The number of glyph layers for the requested glyph index. Will be + * set by @FT_Get_Color_Glyph_Layer. + * + * layer :: + * The current layer. Will be set by @FT_Get_Color_Glyph_Layer. + * + * p :: + * An opaque pointer into 'COLR' table data. The caller must set this + * to `NULL` before the first call of @FT_Get_Color_Glyph_Layer. + */ + typedef struct FT_LayerIterator_ + { + FT_UInt num_layers; + FT_UInt layer; + FT_Byte* p; + + } FT_LayerIterator; + + + /************************************************************************** + * + * @function: + * FT_Get_Color_Glyph_Layer + * + * @description: + * This is an interface to the 'COLR' table in OpenType fonts to + * iteratively retrieve the colored glyph layers associated with the + * current glyph slot. + * + * https://docs.microsoft.com/en-us/typography/opentype/spec/colr + * + * The glyph layer data for a given glyph index, if present, provides an + * alternative, multi-colour glyph representation: Instead of rendering + * the outline or bitmap with the given glyph index, glyphs with the + * indices and colors returned by this function are rendered layer by + * layer. + * + * The returned elements are ordered in the z~direction from bottom to + * top; the 'n'th element should be rendered with the associated palette + * color and blended on top of the already rendered layers (elements 0, + * 1, ..., n-1). + * + * @input: + * face :: + * A handle to the parent face object. + * + * base_glyph :: + * The glyph index the colored glyph layers are associated with. + * + * @inout: + * iterator :: + * An @FT_LayerIterator object. For the first call you should set + * `iterator->p` to `NULL`. For all following calls, simply use the + * same object again. + * + * @output: + * aglyph_index :: + * The glyph index of the current layer. + * + * acolor_index :: + * The color index into the font face's color palette of the current + * layer. The value 0xFFFF is special; it doesn't reference a palette + * entry but indicates that the text foreground color should be used + * instead (to be set up by the application outside of FreeType). + * + * The color palette can be retrieved with @FT_Palette_Select. + * + * @return: + * Value~1 if everything is OK. If there are no more layers (or if there + * are no layers at all), value~0 gets returned. In case of an error, + * value~0 is returned also. + * + * @note: + * This function is necessary if you want to handle glyph layers by + * yourself. In particular, functions that operate with @FT_GlyphRec + * objects (like @FT_Get_Glyph or @FT_Glyph_To_Bitmap) don't have access + * to this information. + * + * Note that @FT_Render_Glyph is able to handle colored glyph layers + * automatically if the @FT_LOAD_COLOR flag is passed to a previous call + * to @FT_Load_Glyph. [This is an experimental feature.] + * + * @example: + * ``` + * FT_Color* palette; + * FT_LayerIterator iterator; + * + * FT_Bool have_layers; + * FT_UInt layer_glyph_index; + * FT_UInt layer_color_index; + * + * + * error = FT_Palette_Select( face, palette_index, &palette ); + * if ( error ) + * palette = NULL; + * + * iterator.p = NULL; + * have_layers = FT_Get_Color_Glyph_Layer( face, + * glyph_index, + * &layer_glyph_index, + * &layer_color_index, + * &iterator ); + * + * if ( palette && have_layers ) + * { + * do + * { + * FT_Color layer_color; + * + * + * if ( layer_color_index == 0xFFFF ) + * layer_color = text_foreground_color; + * else + * layer_color = palette[layer_color_index]; + * + * // Load and render glyph `layer_glyph_index', then + * // blend resulting pixmap (using color `layer_color') + * // with previously created pixmaps. + * + * } while ( FT_Get_Color_Glyph_Layer( face, + * glyph_index, + * &layer_glyph_index, + * &layer_color_index, + * &iterator ) ); + * } + * ``` + */ + FT_EXPORT( FT_Bool ) + FT_Get_Color_Glyph_Layer( FT_Face face, + FT_UInt base_glyph, + FT_UInt *aglyph_index, + FT_UInt *acolor_index, + FT_LayerIterator* iterator ); + + + /************************************************************************** + * + * @section: + * base_interface + * + */ + + /************************************************************************** + * + * @enum: + * FT_FSTYPE_XXX + * + * @description: + * A list of bit flags used in the `fsType` field of the OS/2 table in a + * TrueType or OpenType font and the `FSType` entry in a PostScript font. + * These bit flags are returned by @FT_Get_FSType_Flags; they inform + * client applications of embedding and subsetting restrictions + * associated with a font. + * + * See + * https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf + * for more details. + * + * @values: + * FT_FSTYPE_INSTALLABLE_EMBEDDING :: + * Fonts with no fsType bit set may be embedded and permanently + * installed on the remote system by an application. + * + * FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING :: + * Fonts that have only this bit set must not be modified, embedded or + * exchanged in any manner without first obtaining permission of the + * font software copyright owner. + * + * FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING :: + * The font may be embedded and temporarily loaded on the remote + * system. Documents containing Preview & Print fonts must be opened + * 'read-only'; no edits can be applied to the document. + * + * FT_FSTYPE_EDITABLE_EMBEDDING :: + * The font may be embedded but must only be installed temporarily on + * other systems. In contrast to Preview & Print fonts, documents + * containing editable fonts may be opened for reading, editing is + * permitted, and changes may be saved. + * + * FT_FSTYPE_NO_SUBSETTING :: + * The font may not be subsetted prior to embedding. + * + * FT_FSTYPE_BITMAP_EMBEDDING_ONLY :: + * Only bitmaps contained in the font may be embedded; no outline data + * may be embedded. If there are no bitmaps available in the font, + * then the font is unembeddable. + * + * @note: + * The flags are ORed together, thus more than a single value can be + * returned. + * + * While the `fsType` flags can indicate that a font may be embedded, a + * license with the font vendor may be separately required to use the + * font in this way. + */ #define FT_FSTYPE_INSTALLABLE_EMBEDDING 0x0000 #define FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING 0x0002 #define FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING 0x0004 @@ -3445,530 +4252,563 @@ FT_BEGIN_HEADER #define FT_FSTYPE_BITMAP_EMBEDDING_ONLY 0x0200 - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_FSType_Flags */ - /* */ - /* <Description> */ - /* Return the fsType flags for a font. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Return> */ - /* The fsType flags, @FT_FSTYPE_XXX. */ - /* */ - /* <Note> */ - /* Use this function rather than directly reading the `fs_type' field */ - /* in the @PS_FontInfoRec structure, which is only guaranteed to */ - /* return the correct results for Type~1 fonts. */ - /* */ - /* <Since> */ - /* 2.3.8 */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_FSType_Flags + * + * @description: + * Return the `fsType` flags for a font. + * + * @input: + * face :: + * A handle to the source face object. + * + * @return: + * The `fsType` flags, see @FT_FSTYPE_XXX. + * + * @note: + * Use this function rather than directly reading the `fs_type` field in + * the @PS_FontInfoRec structure, which is only guaranteed to return the + * correct results for Type~1 fonts. + * + * @since: + * 2.3.8 + */ FT_EXPORT( FT_UShort ) FT_Get_FSType_Flags( FT_Face face ); - /*************************************************************************/ - /* */ - /* <Section> */ - /* glyph_variants */ - /* */ - /* <Title> */ - /* Glyph Variants */ - /* */ - /* <Abstract> */ - /* The FreeType~2 interface to Unicode Ideographic Variation */ - /* Sequences (IVS), using the SFNT cmap format~14. */ - /* */ - /* <Description> */ - /* Many CJK characters have variant forms. They are a sort of grey */ - /* area somewhere between being totally irrelevant and semantically */ - /* distinct; for this reason, the Unicode consortium decided to */ - /* introduce Ideographic Variation Sequences (IVS), consisting of a */ - /* Unicode base character and one of 240 variant selectors */ - /* (U+E0100-U+E01EF), instead of further extending the already huge */ - /* code range for CJK characters. */ - /* */ - /* An IVS is registered and unique; for further details please refer */ - /* to Unicode Technical Standard #37, the Ideographic Variation */ - /* Database: */ - /* */ - /* http://www.unicode.org/reports/tr37/ */ - /* */ - /* To date (November 2014), the character with the most variants is */ - /* U+9089, having 32 such IVS. */ - /* */ - /* Adobe and MS decided to support IVS with a new cmap subtable */ - /* (format~14). It is an odd subtable because it is not a mapping of */ - /* input code points to glyphs, but contains lists of all variants */ - /* supported by the font. */ - /* */ - /* A variant may be either `default' or `non-default'. A default */ - /* variant is the one you will get for that code point if you look it */ - /* up in the standard Unicode cmap. A non-default variant is a */ - /* different glyph. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * glyph_variants + * + * @title: + * Unicode Variation Sequences + * + * @abstract: + * The FreeType~2 interface to Unicode Variation Sequences (UVS), using + * the SFNT cmap format~14. + * + * @description: + * Many characters, especially for CJK scripts, have variant forms. They + * are a sort of grey area somewhere between being totally irrelevant and + * semantically distinct; for this reason, the Unicode consortium decided + * to introduce Variation Sequences (VS), consisting of a Unicode base + * character and a variation selector instead of further extending the + * already huge number of characters. + * + * Unicode maintains two different sets, namely 'Standardized Variation + * Sequences' and registered 'Ideographic Variation Sequences' (IVS), + * collected in the 'Ideographic Variation Database' (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. + * + * Three Mongolian Variation Selectors have the values U+180B-U+180D; 256 + * generic Variation Selectors are encoded in the ranges U+FE00-U+FE0F + * and U+E0100-U+E01EF. IVS currently use Variation Selectors from the + * range U+E0100-U+E01EF only. + * + * A VS consists of the base character value followed by a single + * Variation Selector. For example, to get the first variation of + * U+9089, you have to write the character sequence `U+9089 U+E0100`. + * + * Adobe and MS decided to support both standardized and ideographic VS + * with a new cmap subtable (format~14). It is an odd subtable because + * it is not a mapping of input code points to glyphs, but contains lists + * of all variations supported by the font. + * + * A variation may be either 'default' or 'non-default' for a given font. + * A default variation is the one you will get for that code point if you + * look it up in the standard Unicode cmap. A non-default variation is a + * different glyph. + * + */ - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetCharVariantIndex */ - /* */ - /* <Description> */ - /* Return the glyph index of a given character code as modified by */ - /* the variation selector. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* charcode :: */ - /* The character code point in Unicode. */ - /* */ - /* variantSelector :: */ - /* The Unicode code point of the variation selector. */ - /* */ - /* <Return> */ - /* The glyph index. 0~means either `undefined character code', or */ - /* `undefined selector code', or `no variation selector cmap */ - /* subtable', or `current CharMap is not Unicode'. */ - /* */ - /* <Note> */ - /* If you use FreeType to manipulate the contents of font files */ - /* directly, be aware that the glyph index returned by this function */ - /* doesn't always correspond to the internal indices used within */ - /* the file. This is done to ensure that value~0 always corresponds */ - /* to the `missing glyph'. */ - /* */ - /* This function is only meaningful if */ - /* a) the font has a variation selector cmap sub table, */ - /* and */ - /* b) the current charmap has a Unicode encoding. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ + /************************************************************************** + * + * @function: + * FT_Face_GetCharVariantIndex + * + * @description: + * Return the glyph index of a given character code as modified by the + * variation selector. + * + * @input: + * face :: + * A handle to the source face object. + * + * charcode :: + * The character code point in Unicode. + * + * variantSelector :: + * The Unicode code point of the variation selector. + * + * @return: + * The glyph index. 0~means either 'undefined character code', or + * 'undefined selector code', or 'no variation selector cmap subtable', + * or 'current CharMap is not Unicode'. + * + * @note: + * If you use FreeType to manipulate the contents of font files directly, + * be aware that the glyph index returned by this function doesn't always + * correspond to the internal indices used within the file. This is done + * to ensure that value~0 always corresponds to the 'missing glyph'. + * + * This function is only meaningful if + * a) the font has a variation selector cmap sub table, and + * b) the current charmap has a Unicode encoding. + * + * @since: + * 2.3.6 + */ FT_EXPORT( FT_UInt ) FT_Face_GetCharVariantIndex( FT_Face face, FT_ULong charcode, FT_ULong variantSelector ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetCharVariantIsDefault */ - /* */ - /* <Description> */ - /* Check whether this variant of this Unicode character is the one to */ - /* be found in the `cmap'. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* charcode :: */ - /* The character codepoint in Unicode. */ - /* */ - /* variantSelector :: */ - /* The Unicode codepoint of the variation selector. */ - /* */ - /* <Return> */ - /* 1~if found in the standard (Unicode) cmap, 0~if found in the */ - /* variation selector cmap, or -1 if it is not a variant. */ - /* */ - /* <Note> */ - /* This function is only meaningful if the font has a variation */ - /* selector cmap subtable. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ + /************************************************************************** + * + * @function: + * FT_Face_GetCharVariantIsDefault + * + * @description: + * Check whether this variation of this Unicode character is the one to + * be found in the charmap. + * + * @input: + * face :: + * A handle to the source face object. + * + * charcode :: + * The character codepoint in Unicode. + * + * variantSelector :: + * The Unicode codepoint of the variation selector. + * + * @return: + * 1~if found in the standard (Unicode) cmap, 0~if found in the variation + * selector cmap, or -1 if it is not a variation. + * + * @note: + * This function is only meaningful if the font has a variation selector + * cmap subtable. + * + * @since: + * 2.3.6 + */ FT_EXPORT( FT_Int ) FT_Face_GetCharVariantIsDefault( FT_Face face, FT_ULong charcode, FT_ULong variantSelector ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetVariantSelectors */ - /* */ - /* <Description> */ - /* Return a zero-terminated list of Unicode variant selectors found */ - /* in the font. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* <Return> */ - /* A pointer to an array of selector code points, or NULL if there is */ - /* no valid variant selector cmap subtable. */ - /* */ - /* <Note> */ - /* The last item in the array is~0; the array is owned by the */ - /* @FT_Face object but can be overwritten or released on the next */ - /* call to a FreeType function. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ + /************************************************************************** + * + * @function: + * FT_Face_GetVariantSelectors + * + * @description: + * Return a zero-terminated list of Unicode variation selectors found in + * the font. + * + * @input: + * face :: + * A handle to the source face object. + * + * @return: + * A pointer to an array of selector code points, or `NULL` if there is + * no valid variation selector cmap subtable. + * + * @note: + * The last item in the array is~0; the array is owned by the @FT_Face + * object but can be overwritten or released on the next call to a + * FreeType function. + * + * @since: + * 2.3.6 + */ FT_EXPORT( FT_UInt32* ) FT_Face_GetVariantSelectors( FT_Face face ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetVariantsOfChar */ - /* */ - /* <Description> */ - /* Return a zero-terminated list of Unicode variant selectors found */ - /* for the specified character code. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* charcode :: */ - /* The character codepoint in Unicode. */ - /* */ - /* <Return> */ - /* A pointer to an array of variant selector code points that are */ - /* active for the given character, or NULL if the corresponding list */ - /* is empty. */ - /* */ - /* <Note> */ - /* The last item in the array is~0; the array is owned by the */ - /* @FT_Face object but can be overwritten or released on the next */ - /* call to a FreeType function. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ + /************************************************************************** + * + * @function: + * FT_Face_GetVariantsOfChar + * + * @description: + * Return a zero-terminated list of Unicode variation selectors found for + * the specified character code. + * + * @input: + * face :: + * A handle to the source face object. + * + * charcode :: + * The character codepoint in Unicode. + * + * @return: + * A pointer to an array of variation selector code points that are + * active for the given character, or `NULL` if the corresponding list is + * empty. + * + * @note: + * The last item in the array is~0; the array is owned by the @FT_Face + * object but can be overwritten or released on the next call to a + * FreeType function. + * + * @since: + * 2.3.6 + */ FT_EXPORT( FT_UInt32* ) FT_Face_GetVariantsOfChar( FT_Face face, FT_ULong charcode ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetCharsOfVariant */ - /* */ - /* <Description> */ - /* Return a zero-terminated list of Unicode character codes found for */ - /* the specified variant selector. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* variantSelector :: */ - /* The variant selector code point in Unicode. */ - /* */ - /* <Return> */ - /* A list of all the code points that are specified by this selector */ - /* (both default and non-default codes are returned) or NULL if there */ - /* is no valid cmap or the variant selector is invalid. */ - /* */ - /* <Note> */ - /* The last item in the array is~0; the array is owned by the */ - /* @FT_Face object but can be overwritten or released on the next */ - /* call to a FreeType function. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ + /************************************************************************** + * + * @function: + * FT_Face_GetCharsOfVariant + * + * @description: + * Return a zero-terminated list of Unicode character codes found for the + * specified variation selector. + * + * @input: + * face :: + * A handle to the source face object. + * + * variantSelector :: + * The variation selector code point in Unicode. + * + * @return: + * A list of all the code points that are specified by this selector + * (both default and non-default codes are returned) or `NULL` if there + * is no valid cmap or the variation selector is invalid. + * + * @note: + * The last item in the array is~0; the array is owned by the @FT_Face + * object but can be overwritten or released on the next call to a + * FreeType function. + * + * @since: + * 2.3.6 + */ FT_EXPORT( FT_UInt32* ) FT_Face_GetCharsOfVariant( FT_Face face, FT_ULong variantSelector ); - /*************************************************************************/ - /* */ - /* <Section> */ - /* computations */ - /* */ - /* <Title> */ - /* Computations */ - /* */ - /* <Abstract> */ - /* Crunching fixed numbers and vectors. */ - /* */ - /* <Description> */ - /* This section contains various functions used to perform */ - /* computations on 16.16 fixed-float numbers or 2d vectors. */ - /* */ - /* <Order> */ - /* FT_MulDiv */ - /* FT_MulFix */ - /* FT_DivFix */ - /* FT_RoundFix */ - /* FT_CeilFix */ - /* FT_FloorFix */ - /* FT_Vector_Transform */ - /* FT_Matrix_Multiply */ - /* FT_Matrix_Invert */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * computations + * + * @title: + * Computations + * + * @abstract: + * Crunching fixed numbers and vectors. + * + * @description: + * This section contains various functions used to perform computations + * on 16.16 fixed-float numbers or 2d vectors. + * + * **Attention**: Most arithmetic functions take `FT_Long` as arguments. + * For historical reasons, FreeType was designed under the assumption + * that `FT_Long` is a 32-bit integer; results can thus be undefined if + * the arguments don't fit into 32 bits. + * + * @order: + * FT_MulDiv + * FT_MulFix + * FT_DivFix + * FT_RoundFix + * FT_CeilFix + * FT_FloorFix + * FT_Vector_Transform + * FT_Matrix_Multiply + * FT_Matrix_Invert + * + */ - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_MulDiv */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation `(a*b)/c' */ - /* with maximum accuracy (it uses a 64-bit intermediate integer */ - /* whenever necessary). */ - /* */ - /* This function isn't necessarily as fast as some processor specific */ - /* operations, but is at least completely portable. */ - /* */ - /* <Input> */ - /* a :: The first multiplier. */ - /* b :: The second multiplier. */ - /* c :: The divisor. */ - /* */ - /* <Return> */ - /* The result of `(a*b)/c'. This function never traps when trying to */ - /* divide by zero; it simply returns `MaxInt' or `MinInt' depending */ - /* on the signs of `a' and `b'. */ - /* */ + /************************************************************************** + * + * @function: + * FT_MulDiv + * + * @description: + * Compute `(a*b)/c` with maximum accuracy, using a 64-bit intermediate + * integer whenever necessary. + * + * This function isn't necessarily as fast as some processor-specific + * operations, but is at least completely portable. + * + * @input: + * a :: + * The first multiplier. + * + * b :: + * The second multiplier. + * + * c :: + * The divisor. + * + * @return: + * The result of `(a*b)/c`. This function never traps when trying to + * divide by zero; it simply returns 'MaxInt' or 'MinInt' depending on + * the signs of `a` and `b`. + */ FT_EXPORT( FT_Long ) FT_MulDiv( FT_Long a, FT_Long b, FT_Long c ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_MulFix */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation */ - /* `(a*b)/0x10000' with maximum accuracy. Most of the time this is */ - /* used to multiply a given value by a 16.16 fixed-point factor. */ - /* */ - /* <Input> */ - /* a :: The first multiplier. */ - /* b :: The second multiplier. Use a 16.16 factor here whenever */ - /* possible (see note below). */ - /* */ - /* <Return> */ - /* The result of `(a*b)/0x10000'. */ - /* */ - /* <Note> */ - /* This function has been optimized for the case where the absolute */ - /* value of `a' is less than 2048, and `b' is a 16.16 scaling factor. */ - /* As this happens mainly when scaling from notional units to */ - /* fractional pixels in FreeType, it resulted in noticeable speed */ - /* improvements between versions 2.x and 1.x. */ - /* */ - /* As a conclusion, always try to place a 16.16 factor as the */ - /* _second_ argument of this function; this can make a great */ - /* difference. */ - /* */ + /************************************************************************** + * + * @function: + * FT_MulFix + * + * @description: + * Compute `(a*b)/0x10000` with maximum accuracy. Its main use is to + * multiply a given value by a 16.16 fixed-point factor. + * + * @input: + * a :: + * The first multiplier. + * + * b :: + * The second multiplier. Use a 16.16 factor here whenever possible + * (see note below). + * + * @return: + * The result of `(a*b)/0x10000`. + * + * @note: + * This function has been optimized for the case where the absolute value + * of `a` is less than 2048, and `b` is a 16.16 scaling factor. As this + * happens mainly when scaling from notional units to fractional pixels + * in FreeType, it resulted in noticeable speed improvements between + * versions 2.x and 1.x. + * + * As a conclusion, always try to place a 16.16 factor as the _second_ + * argument of this function; this can make a great difference. + */ FT_EXPORT( FT_Long ) FT_MulFix( FT_Long a, FT_Long b ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_DivFix */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation */ - /* `(a*0x10000)/b' with maximum accuracy. Most of the time, this is */ - /* used to divide a given value by a 16.16 fixed-point factor. */ - /* */ - /* <Input> */ - /* a :: The numerator. */ - /* b :: The denominator. Use a 16.16 factor here. */ - /* */ - /* <Return> */ - /* The result of `(a*0x10000)/b'. */ - /* */ + /************************************************************************** + * + * @function: + * FT_DivFix + * + * @description: + * Compute `(a*0x10000)/b` with maximum accuracy. Its main use is to + * divide a given value by a 16.16 fixed-point factor. + * + * @input: + * a :: + * The numerator. + * + * b :: + * The denominator. Use a 16.16 factor here. + * + * @return: + * The result of `(a*0x10000)/b`. + */ FT_EXPORT( FT_Long ) FT_DivFix( FT_Long a, FT_Long b ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_RoundFix */ - /* */ - /* <Description> */ - /* A very simple function used to round a 16.16 fixed number. */ - /* */ - /* <Input> */ - /* a :: The number to be rounded. */ - /* */ - /* <Return> */ - /* The result of `(a + 0x8000) & -0x10000'. */ - /* */ + /************************************************************************** + * + * @function: + * FT_RoundFix + * + * @description: + * Round a 16.16 fixed number. + * + * @input: + * a :: + * The number to be rounded. + * + * @return: + * `a` rounded to the nearest 16.16 fixed integer, halfway cases away + * from zero. + * + * @note: + * The function uses wrap-around arithmetic. + */ FT_EXPORT( FT_Fixed ) FT_RoundFix( FT_Fixed a ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_CeilFix */ - /* */ - /* <Description> */ - /* A very simple function used to compute the ceiling function of a */ - /* 16.16 fixed number. */ - /* */ - /* <Input> */ - /* a :: The number for which the ceiling function is to be computed. */ - /* */ - /* <Return> */ - /* The result of `(a + 0x10000 - 1) & -0x10000'. */ - /* */ + /************************************************************************** + * + * @function: + * FT_CeilFix + * + * @description: + * Compute the smallest following integer of a 16.16 fixed number. + * + * @input: + * a :: + * The number for which the ceiling function is to be computed. + * + * @return: + * `a` rounded towards plus infinity. + * + * @note: + * The function uses wrap-around arithmetic. + */ FT_EXPORT( FT_Fixed ) FT_CeilFix( FT_Fixed a ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_FloorFix */ - /* */ - /* <Description> */ - /* A very simple function used to compute the floor function of a */ - /* 16.16 fixed number. */ - /* */ - /* <Input> */ - /* a :: The number for which the floor function is to be computed. */ - /* */ - /* <Return> */ - /* The result of `a & -0x10000'. */ - /* */ + /************************************************************************** + * + * @function: + * FT_FloorFix + * + * @description: + * Compute the largest previous integer of a 16.16 fixed number. + * + * @input: + * a :: + * The number for which the floor function is to be computed. + * + * @return: + * `a` rounded towards minus infinity. + */ FT_EXPORT( FT_Fixed ) FT_FloorFix( FT_Fixed a ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Vector_Transform */ - /* */ - /* <Description> */ - /* Transform a single vector through a 2x2 matrix. */ - /* */ - /* <InOut> */ - /* vector :: The target vector to transform. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to the source 2x2 matrix. */ - /* */ - /* <Note> */ - /* The result is undefined if either `vector' or `matrix' is invalid. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Vector_Transform + * + * @description: + * Transform a single vector through a 2x2 matrix. + * + * @inout: + * vector :: + * The target vector to transform. + * + * @input: + * matrix :: + * A pointer to the source 2x2 matrix. + * + * @note: + * The result is undefined if either `vector` or `matrix` is invalid. + */ FT_EXPORT( void ) - FT_Vector_Transform( FT_Vector* vec, + FT_Vector_Transform( FT_Vector* vector, const FT_Matrix* matrix ); - /*************************************************************************/ - /* */ - /* <Section> */ - /* version */ - /* */ - /* <Title> */ - /* FreeType Version */ - /* */ - /* <Abstract> */ - /* Functions and macros related to FreeType versions. */ - /* */ - /* <Description> */ - /* Note that those functions and macros are of limited use because */ - /* even a new release of FreeType with only documentation changes */ - /* increases the version number. */ - /* */ - /* <Order> */ - /* FT_Library_Version */ - /* */ - /* FREETYPE_MAJOR */ - /* FREETYPE_MINOR */ - /* FREETYPE_PATCH */ - /* */ - /* FT_Face_CheckTrueTypePatents */ - /* FT_Face_SetUnpatentedHinting */ - /* */ - /* FREETYPE_XXX */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * version + * + * @title: + * FreeType Version + * + * @abstract: + * Functions and macros related to FreeType versions. + * + * @description: + * Note that those functions and macros are of limited use because even a + * new release of FreeType with only documentation changes increases the + * version number. + * + * @order: + * FT_Library_Version + * + * FREETYPE_MAJOR + * FREETYPE_MINOR + * FREETYPE_PATCH + * + * FT_Face_CheckTrueTypePatents + * FT_Face_SetUnpatentedHinting + * + */ - /************************************************************************* + /************************************************************************** * * @enum: * FREETYPE_XXX * * @description: - * These three macros identify the FreeType source code version. - * Use @FT_Library_Version to access them at runtime. + * These three macros identify the FreeType source code version. Use + * @FT_Library_Version to access them at runtime. * * @values: - * FREETYPE_MAJOR :: The major version number. - * FREETYPE_MINOR :: The minor version number. - * FREETYPE_PATCH :: The patch level. + * FREETYPE_MAJOR :: + * The major version number. + * FREETYPE_MINOR :: + * The minor version number. + * FREETYPE_PATCH :: + * The patch level. * * @note: - * The version number of FreeType if built as a dynamic link library - * with the `libtool' package is _not_ controlled by these three - * macros. + * The version number of FreeType if built as a dynamic link library with + * the 'libtool' package is _not_ controlled by these three macros. * */ #define FREETYPE_MAJOR 2 -#define FREETYPE_MINOR 5 -#define FREETYPE_PATCH 5 +#define FREETYPE_MINOR 10 +#define FREETYPE_PATCH 0 - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Library_Version */ - /* */ - /* <Description> */ - /* Return the version of the FreeType library being used. This is */ - /* useful when dynamically linking to the library, since one cannot */ - /* use the macros @FREETYPE_MAJOR, @FREETYPE_MINOR, and */ - /* @FREETYPE_PATCH. */ - /* */ - /* <Input> */ - /* library :: A source library handle. */ - /* */ - /* <Output> */ - /* amajor :: The major version number. */ - /* */ - /* aminor :: The minor version number. */ - /* */ - /* apatch :: The patch version number. */ - /* */ - /* <Note> */ - /* The reason why this function takes a `library' argument is because */ - /* certain programs implement library initialization in a custom way */ - /* that doesn't use @FT_Init_FreeType. */ - /* */ - /* In such cases, the library version might not be available before */ - /* the library object has been created. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Library_Version + * + * @description: + * Return the version of the FreeType library being used. This is useful + * when dynamically linking to the library, since one cannot use the + * macros @FREETYPE_MAJOR, @FREETYPE_MINOR, and @FREETYPE_PATCH. + * + * @input: + * library :: + * A source library handle. + * + * @output: + * amajor :: + * The major version number. + * + * aminor :: + * The minor version number. + * + * apatch :: + * The patch version number. + * + * @note: + * The reason why this function takes a `library` argument is because + * certain programs implement library initialization in a custom way that + * doesn't use @FT_Init_FreeType. + * + * In such cases, the library version might not be available before the + * library object has been created. + */ FT_EXPORT( void ) FT_Library_Version( FT_Library library, FT_Int *amajor, @@ -3976,63 +4816,55 @@ FT_BEGIN_HEADER FT_Int *apatch ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_CheckTrueTypePatents */ - /* */ - /* <Description> */ - /* Parse all bytecode instructions of a TrueType font file to check */ - /* whether any of the patented opcodes are used. This is only useful */ - /* if you want to be able to use the unpatented hinter with */ - /* fonts that do *not* use these opcodes. */ - /* */ - /* Note that this function parses *all* glyph instructions in the */ - /* font file, which may be slow. */ - /* */ - /* <Input> */ - /* face :: A face handle. */ - /* */ - /* <Return> */ - /* 1~if this is a TrueType font that uses one of the patented */ - /* opcodes, 0~otherwise. */ - /* */ - /* <Note> */ - /* Since May 2010, TrueType hinting is no longer patented. */ - /* */ - /* <Since> */ - /* 2.3.5 */ - /* */ + /************************************************************************** + * + * @function: + * FT_Face_CheckTrueTypePatents + * + * @description: + * Deprecated, does nothing. + * + * @input: + * face :: + * A face handle. + * + * @return: + * Always returns false. + * + * @note: + * Since May 2010, TrueType hinting is no longer patented. + * + * @since: + * 2.3.5 + */ FT_EXPORT( FT_Bool ) FT_Face_CheckTrueTypePatents( FT_Face face ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_SetUnpatentedHinting */ - /* */ - /* <Description> */ - /* Enable or disable the unpatented hinter for a given face. */ - /* Only enable it if you have determined that the face doesn't */ - /* use any patented opcodes (see @FT_Face_CheckTrueTypePatents). */ - /* */ - /* <Input> */ - /* face :: A face handle. */ - /* */ - /* value :: New boolean setting. */ - /* */ - /* <Return> */ - /* The old setting value. This will always be false if this is not */ - /* an SFNT font, or if the unpatented hinter is not compiled in this */ - /* instance of the library. */ - /* */ - /* <Note> */ - /* Since May 2010, TrueType hinting is no longer patented. */ - /* */ - /* <Since> */ - /* 2.3.5 */ - /* */ + /************************************************************************** + * + * @function: + * FT_Face_SetUnpatentedHinting + * + * @description: + * Deprecated, does nothing. + * + * @input: + * face :: + * A face handle. + * + * value :: + * New boolean setting. + * + * @return: + * Always returns false. + * + * @note: + * Since May 2010, TrueType hinting is no longer patented. + * + * @since: + * 2.3.5 + */ FT_EXPORT( FT_Bool ) FT_Face_SetUnpatentedHinting( FT_Face face, FT_Bool value ); @@ -4042,7 +4874,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FREETYPE_H__ */ +#endif /* FREETYPE_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ft2build.h b/android/x86_64/include/freetype/ft2build.h index 6f8eb7f3..8902236e 100644 --- a/android/x86_64/include/freetype/ft2build.h +++ b/android/x86_64/include/freetype/ft2build.h @@ -1,42 +1,44 @@ -/***************************************************************************/ -/* */ -/* ft2build.h */ -/* */ -/* FreeType 2 build and setup macros. */ -/* */ -/* Copyright 1996-2001, 2006, 2013 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ft2build.h + * + * FreeType 2 build and setup macros. + * + * Copyright (C) 1996-2019 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. + * + */ - /*************************************************************************/ - /* */ - /* This is the `entry point' for FreeType header file inclusions. It is */ - /* the only header file which should be included directly; all other */ - /* FreeType header files should be accessed with macro names (after */ - /* including `ft2build.h'). */ - /* */ - /* A typical example is */ - /* */ - /* #include <ft2build.h> */ - /* #include FT_FREETYPE_H */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * This is the 'entry point' for FreeType header file inclusions. It is + * the only header file which should be included directly; all other + * FreeType header files should be accessed with macro names (after + * including `ft2build.h`). + * + * A typical example is + * + * ``` + * #include "ft2build.h" + * #include FT_FREETYPE_H + * ``` + * + */ -#ifndef __FT2BUILD_H__ -#define __FT2BUILD_H__ +#ifndef FT2BUILD_H_ +#define FT2BUILD_H_ -#include <config/ftheader.h> +#include <freetype/config/ftheader.h> -#endif /* __FT2BUILD_H__ */ +#endif /* FT2BUILD_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftadvanc.h b/android/x86_64/include/freetype/ftadvanc.h index 955f93fa..196da582 100644 --- a/android/x86_64/include/freetype/ftadvanc.h +++ b/android/x86_64/include/freetype/ftadvanc.h @@ -1,26 +1,26 @@ -/***************************************************************************/ -/* */ -/* ftadvanc.h */ -/* */ -/* Quick computation of advance widths (specification only). */ -/* */ -/* Copyright 2008, 2013, 2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftadvanc.h + * + * Quick computation of advance widths (specification only). + * + * Copyright (C) 2008-2019 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 __FTADVANC_H__ -#define __FTADVANC_H__ +#ifndef FTADVANC_H_ +#define FTADVANC_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -56,68 +56,67 @@ FT_BEGIN_HEADER */ - /*************************************************************************/ - /* */ - /* <Const> */ - /* FT_ADVANCE_FLAG_FAST_ONLY */ - /* */ - /* <Description> */ - /* A bit-flag to be OR-ed with the `flags' parameter of the */ - /* @FT_Get_Advance and @FT_Get_Advances functions. */ - /* */ - /* If set, it indicates that you want these functions to fail if the */ - /* corresponding hinting mode or font driver doesn't allow for very */ - /* quick advance computation. */ - /* */ - /* Typically, glyphs that are either unscaled, unhinted, bitmapped, */ - /* or light-hinted can have their advance width computed very */ - /* quickly. */ - /* */ - /* Normal and bytecode hinted modes that require loading, scaling, */ - /* and hinting of the glyph outline, are extremely slow by */ - /* comparison. */ - /* */ -#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000UL + /************************************************************************** + * + * @enum: + * FT_ADVANCE_FLAG_FAST_ONLY + * + * @description: + * A bit-flag to be OR-ed with the `flags` parameter of the + * @FT_Get_Advance and @FT_Get_Advances functions. + * + * If set, it indicates that you want these functions to fail if the + * corresponding hinting mode or font driver doesn't allow for very quick + * advance computation. + * + * Typically, glyphs that are either unscaled, unhinted, bitmapped, or + * light-hinted can have their advance width computed very quickly. + * + * Normal and bytecode hinted modes that require loading, scaling, and + * hinting of the glyph outline, are extremely slow by comparison. + */ +#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000L - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Advance */ - /* */ - /* <Description> */ - /* Retrieve the advance value of a given glyph outline in an */ - /* @FT_Face. */ - /* */ - /* <Input> */ - /* face :: The source @FT_Face handle. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* load_flags :: A set of bit flags similar to those used when */ - /* calling @FT_Load_Glyph, used to determine what kind */ - /* of advances you need. */ - /* <Output> */ - /* padvance :: The advance value. If scaling is performed (based on */ - /* the value of `load_flags'), the advance value is in */ - /* 16.16 format. Otherwise, it is in font units. */ - /* */ - /* If @FT_LOAD_VERTICAL_LAYOUT is set, this is the */ - /* vertical advance corresponding to a vertical layout. */ - /* Otherwise, it is the horizontal advance in a */ - /* horizontal layout. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ - /* if the corresponding font backend doesn't have a quick way to */ - /* retrieve the advances. */ - /* */ - /* A scaled advance is returned in 16.16 format but isn't transformed */ - /* by the affine transformation specified by @FT_Set_Transform. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Advance + * + * @description: + * Retrieve the advance value of a given glyph outline in an @FT_Face. + * + * @input: + * face :: + * The source @FT_Face handle. + * + * gindex :: + * The glyph index. + * + * load_flags :: + * A set of bit flags similar to those used when calling + * @FT_Load_Glyph, used to determine what kind of advances you need. + * @output: + * padvance :: + * The advance value. If scaling is performed (based on the value of + * `load_flags`), the advance value is in 16.16 format. Otherwise, it + * is in font units. + * + * If @FT_LOAD_VERTICAL_LAYOUT is set, this is the vertical advance + * corresponding to a vertical layout. Otherwise, it is the horizontal + * advance in a horizontal layout. + * + * @return: + * FreeType error code. 0 means success. + * + * @note: + * This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and if + * the corresponding font backend doesn't have a quick way to retrieve + * the advances. + * + * A scaled advance is returned in 16.16 format but isn't transformed by + * the affine transformation specified by @FT_Set_Transform. + */ FT_EXPORT( FT_Error ) FT_Get_Advance( FT_Face face, FT_UInt gindex, @@ -125,50 +124,52 @@ FT_BEGIN_HEADER FT_Fixed *padvance ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Advances */ - /* */ - /* <Description> */ - /* Retrieve the advance values of several glyph outlines in an */ - /* @FT_Face. */ - /* */ - /* <Input> */ - /* face :: The source @FT_Face handle. */ - /* */ - /* start :: The first glyph index. */ - /* */ - /* count :: The number of advance values you want to retrieve. */ - /* */ - /* load_flags :: A set of bit flags similar to those used when */ - /* calling @FT_Load_Glyph. */ - /* */ - /* <Output> */ - /* padvance :: The advance values. This array, to be provided by the */ - /* caller, must contain at least `count' elements. */ - /* */ - /* If scaling is performed (based on the value of */ - /* `load_flags'), the advance values are in 16.16 format. */ - /* Otherwise, they are in font units. */ - /* */ - /* If @FT_LOAD_VERTICAL_LAYOUT is set, these are the */ - /* vertical advances corresponding to a vertical layout. */ - /* Otherwise, they are the horizontal advances in a */ - /* horizontal layout. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ - /* if the corresponding font backend doesn't have a quick way to */ - /* retrieve the advances. */ - /* */ - /* Scaled advances are returned in 16.16 format but aren't */ - /* transformed by the affine transformation specified by */ - /* @FT_Set_Transform. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Advances + * + * @description: + * Retrieve the advance values of several glyph outlines in an @FT_Face. + * + * @input: + * face :: + * The source @FT_Face handle. + * + * start :: + * The first glyph index. + * + * count :: + * The number of advance values you want to retrieve. + * + * load_flags :: + * A set of bit flags similar to those used when calling + * @FT_Load_Glyph. + * + * @output: + * padvance :: + * The advance values. This array, to be provided by the caller, must + * contain at least `count` elements. + * + * If scaling is performed (based on the value of `load_flags`), the + * advance values are in 16.16 format. Otherwise, they are in font + * units. + * + * If @FT_LOAD_VERTICAL_LAYOUT is set, these are the vertical advances + * corresponding to a vertical layout. Otherwise, they are the + * horizontal advances in a horizontal layout. + * + * @return: + * FreeType error code. 0 means success. + * + * @note: + * This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and if + * the corresponding font backend doesn't have a quick way to retrieve + * the advances. + * + * Scaled advances are returned in 16.16 format but aren't transformed by + * the affine transformation specified by @FT_Set_Transform. + */ FT_EXPORT( FT_Error ) FT_Get_Advances( FT_Face face, FT_UInt start, @@ -181,7 +182,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTADVANC_H__ */ +#endif /* FTADVANC_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftautoh.h b/android/x86_64/include/freetype/ftautoh.h deleted file mode 100644 index 59191abb..00000000 --- a/android/x86_64/include/freetype/ftautoh.h +++ /dev/null @@ -1,402 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftautoh.h */ -/* */ -/* FreeType API for controlling the auto-hinter (specification only). */ -/* */ -/* Copyright 2012, 2013 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 __FTAUTOH_H__ -#define __FTAUTOH_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: - * auto_hinter - * - * @title: - * The auto-hinter - * - * @abstract: - * Controlling the auto-hinting module. - * - * @description: - * While FreeType's auto-hinter doesn't expose API functions by itself, - * it is possible to control its behaviour with @FT_Property_Set and - * @FT_Property_Get. The following lists the available properties - * together with the necessary macros and structures. - * - * Note that the auto-hinter's module name is `autofitter' for - * historical reasons. - * - */ - - - /************************************************************************** - * - * @property: - * glyph-to-script-map - * - * @description: - * *Experimental* *only* - * - * The auto-hinter provides various script modules to hint glyphs. - * Examples of supported scripts are Latin or CJK. Before a glyph is - * auto-hinted, the Unicode character map of the font gets examined, and - * the script is then determined based on Unicode character ranges, see - * below. - * - * OpenType fonts, however, often provide much more glyphs than - * character codes (small caps, superscripts, ligatures, swashes, etc.), - * to be controlled by so-called `features'. Handling OpenType features - * can be quite complicated and thus needs a separate library on top of - * FreeType. - * - * The mapping between glyph indices and scripts (in the auto-hinter - * sense, see the @FT_AUTOHINTER_SCRIPT_XXX values) is stored as an - * array with `num_glyphs' elements, as found in the font's @FT_Face - * structure. The `glyph-to-script-map' property returns a pointer to - * this array, which can be modified as needed. Note that the - * modification should happen before the first glyph gets processed by - * the auto-hinter so that the global analysis of the font shapes - * actually uses the modified mapping. - * - * The following example code demonstrates how to access it (omitting - * the error handling). - * - * { - * FT_Library library; - * FT_Face face; - * FT_Prop_GlyphToScriptMap prop; - * - * - * FT_Init_FreeType( &library ); - * FT_New_Face( library, "foo.ttf", 0, &face ); - * - * prop.face = face; - * - * FT_Property_Get( library, "autofitter", - * "glyph-to-script-map", &prop ); - * - * // adjust `prop.map' as needed right here - * - * FT_Load_Glyph( face, ..., FT_LOAD_FORCE_AUTOHINT ); - * } - * - */ - - - /************************************************************************** - * - * @enum: - * FT_AUTOHINTER_SCRIPT_XXX - * - * @description: - * *Experimental* *only* - * - * A list of constants used for the @glyph-to-script-map property to - * specify the script submodule the auto-hinter should use for hinting a - * particular glyph. - * - * @values: - * FT_AUTOHINTER_SCRIPT_NONE :: - * Don't auto-hint this glyph. - * - * FT_AUTOHINTER_SCRIPT_LATIN :: - * Apply the latin auto-hinter. For the auto-hinter, `latin' is a - * very broad term, including Cyrillic and Greek also since characters - * from those scripts share the same design constraints. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * { - * U+0020 - U+007F // Basic Latin (no control characters) - * U+00A0 - U+00FF // Latin-1 Supplement (no control characters) - * U+0100 - U+017F // Latin Extended-A - * U+0180 - U+024F // Latin Extended-B - * U+0250 - U+02AF // IPA Extensions - * U+02B0 - U+02FF // Spacing Modifier Letters - * U+0300 - U+036F // Combining Diacritical Marks - * U+0370 - U+03FF // Greek and Coptic - * U+0400 - U+04FF // Cyrillic - * U+0500 - U+052F // Cyrillic Supplement - * U+1D00 - U+1D7F // Phonetic Extensions - * U+1D80 - U+1DBF // Phonetic Extensions Supplement - * U+1DC0 - U+1DFF // Combining Diacritical Marks Supplement - * U+1E00 - U+1EFF // Latin Extended Additional - * U+1F00 - U+1FFF // Greek Extended - * U+2000 - U+206F // General Punctuation - * U+2070 - U+209F // Superscripts and Subscripts - * U+20A0 - U+20CF // Currency Symbols - * U+2150 - U+218F // Number Forms - * U+2460 - U+24FF // Enclosed Alphanumerics - * U+2C60 - U+2C7F // Latin Extended-C - * U+2DE0 - U+2DFF // Cyrillic Extended-A - * U+2E00 - U+2E7F // Supplemental Punctuation - * U+A640 - U+A69F // Cyrillic Extended-B - * U+A720 - U+A7FF // Latin Extended-D - * U+FB00 - U+FB06 // Alphab. Present. Forms (Latin Ligatures) - * U+1D400 - U+1D7FF // Mathematical Alphanumeric Symbols - * U+1F100 - U+1F1FF // Enclosed Alphanumeric Supplement - * } - * - * FT_AUTOHINTER_SCRIPT_CJK :: - * Apply the CJK auto-hinter, covering Chinese, Japanese, Korean, old - * Vietnamese, and some other scripts. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * { - * U+1100 - U+11FF // Hangul Jamo - * U+2E80 - U+2EFF // CJK Radicals Supplement - * U+2F00 - U+2FDF // Kangxi Radicals - * U+2FF0 - U+2FFF // Ideographic Description Characters - * U+3000 - U+303F // CJK Symbols and Punctuation - * U+3040 - U+309F // Hiragana - * U+30A0 - U+30FF // Katakana - * U+3100 - U+312F // Bopomofo - * U+3130 - U+318F // Hangul Compatibility Jamo - * U+3190 - U+319F // Kanbun - * U+31A0 - U+31BF // Bopomofo Extended - * U+31C0 - U+31EF // CJK Strokes - * U+31F0 - U+31FF // Katakana Phonetic Extensions - * U+3200 - U+32FF // Enclosed CJK Letters and Months - * U+3300 - U+33FF // CJK Compatibility - * U+3400 - U+4DBF // CJK Unified Ideographs Extension A - * U+4DC0 - U+4DFF // Yijing Hexagram Symbols - * U+4E00 - U+9FFF // CJK Unified Ideographs - * U+A960 - U+A97F // Hangul Jamo Extended-A - * U+AC00 - U+D7AF // Hangul Syllables - * U+D7B0 - U+D7FF // Hangul Jamo Extended-B - * U+F900 - U+FAFF // CJK Compatibility Ideographs - * U+FE10 - U+FE1F // Vertical forms - * U+FE30 - U+FE4F // CJK Compatibility Forms - * U+FF00 - U+FFEF // Halfwidth and Fullwidth Forms - * U+1B000 - U+1B0FF // Kana Supplement - * U+1D300 - U+1D35F // Tai Xuan Hing Symbols - * U+1F200 - U+1F2FF // Enclosed Ideographic Supplement - * U+20000 - U+2A6DF // CJK Unified Ideographs Extension B - * U+2A700 - U+2B73F // CJK Unified Ideographs Extension C - * U+2B740 - U+2B81F // CJK Unified Ideographs Extension D - * U+2F800 - U+2FA1F // CJK Compatibility Ideographs Supplement - * } - * - * FT_AUTOHINTER_SCRIPT_INDIC :: - * Apply the indic auto-hinter, covering all major scripts from the - * Indian sub-continent and some other related scripts like Thai, Lao, - * or Tibetan. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * { - * U+0900 - U+0DFF // Indic Range - * U+0F00 - U+0FFF // Tibetan - * U+1900 - U+194F // Limbu - * U+1B80 - U+1BBF // Sundanese - * U+1C80 - U+1CDF // Meetei Mayak - * U+A800 - U+A82F // Syloti Nagri - * U+11800 - U+118DF // Sharada - * } - * - * Note that currently Indic support is rudimentary only, missing blue - * zone support. - * - */ -#define FT_AUTOHINTER_SCRIPT_NONE 0 -#define FT_AUTOHINTER_SCRIPT_LATIN 1 -#define FT_AUTOHINTER_SCRIPT_CJK 2 -#define FT_AUTOHINTER_SCRIPT_INDIC 3 - - - /************************************************************************** - * - * @struct: - * FT_Prop_GlyphToScriptMap - * - * @description: - * *Experimental* *only* - * - * The data exchange structure for the @glyph-to-script-map property. - * - */ - typedef struct FT_Prop_GlyphToScriptMap_ - { - FT_Face face; - FT_Byte* map; - - } FT_Prop_GlyphToScriptMap; - - - /************************************************************************** - * - * @property: - * fallback-script - * - * @description: - * *Experimental* *only* - * - * If no auto-hinter script module can be assigned to a glyph, a - * fallback script gets assigned to it (see also the - * @glyph-to-script-map property). By default, this is - * @FT_AUTOHINTER_SCRIPT_CJK. Using the `fallback-script' property, - * this fallback value can be changed. - * - * { - * FT_Library library; - * FT_UInt fallback_script = FT_AUTOHINTER_SCRIPT_NONE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "autofitter", - * "fallback-script", &fallback_script ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * It's important to use the right timing for changing this value: The - * creation of the glyph-to-script map that eventually uses the - * fallback script value gets triggered either by setting or reading a - * face-specific property like @glyph-to-script-map, or by auto-hinting - * any glyph from that face. In particular, if you have already created - * an @FT_Face structure but not loaded any glyph (using the - * auto-hinter), a change of the fallback script will affect this face. - * - */ - - - /************************************************************************** - * - * @property: - * default-script - * - * @description: - * *Experimental* *only* - * - * If Freetype gets compiled with FT_CONFIG_OPTION_USE_HARFBUZZ to make - * the HarfBuzz library access OpenType features for getting better - * glyph coverages, this property sets the (auto-fitter) script to be - * used for the default (OpenType) script data of a font's GSUB table. - * Features for the default script are intended for all scripts not - * explicitly handled in GSUB; an example is a `dlig' feature, - * containing the combination of the characters `T', `E', and `L' to - * form a `TEL' ligature. - * - * By default, this is @FT_AUTOHINTER_SCRIPT_LATIN. Using the - * `default-script' property, this default value can be changed. - * - * { - * FT_Library library; - * FT_UInt default_script = FT_AUTOHINTER_SCRIPT_NONE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "autofitter", - * "default-script", &default_script ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * It's important to use the right timing for changing this value: The - * creation of the glyph-to-script map that eventually uses the - * default script value gets triggered either by setting or reading a - * face-specific property like @glyph-to-script-map, or by auto-hinting - * any glyph from that face. In particular, if you have already created - * an @FT_Face structure but not loaded any glyph (using the - * auto-hinter), a change of the default script will affect this face. - * - */ - - - /************************************************************************** - * - * @property: - * increase-x-height - * - * @description: - * For ppem values in the range 6~<= ppem <= `increase-x-height', round - * up the font's x~height much more often than normally. If the value - * is set to~0, which is the default, this feature is switched off. Use - * this property to improve the legibility of small font sizes if - * necessary. - * - * { - * FT_Library library; - * FT_Face face; - * FT_Prop_IncreaseXHeight prop; - * - * - * FT_Init_FreeType( &library ); - * FT_New_Face( library, "foo.ttf", 0, &face ); - * FT_Set_Char_Size( face, 10 * 64, 0, 72, 0 ); - * - * prop.face = face; - * prop.limit = 14; - * - * FT_Property_Set( library, "autofitter", - * "increase-x-height", &prop ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * Set this value right after calling @FT_Set_Char_Size, but before - * loading any glyph (using the auto-hinter). - * - */ - - - /************************************************************************** - * - * @struct: - * FT_Prop_IncreaseXHeight - * - * @description: - * The data exchange structure for the @increase-x-height property. - * - */ - typedef struct FT_Prop_IncreaseXHeight_ - { - FT_Face face; - FT_UInt limit; - - } FT_Prop_IncreaseXHeight; - - /* */ - - -FT_END_HEADER - -#endif /* __FTAUTOH_H__ */ - - -/* END */ diff --git a/android/x86_64/include/freetype/ftbbox.h b/android/x86_64/include/freetype/ftbbox.h index d6800e24..573182a0 100644 --- a/android/x86_64/include/freetype/ftbbox.h +++ b/android/x86_64/include/freetype/ftbbox.h @@ -1,37 +1,37 @@ -/***************************************************************************/ -/* */ -/* ftbbox.h */ -/* */ -/* FreeType exact bbox computation (specification). */ -/* */ -/* Copyright 1996-2001, 2003, 2007, 2011, 2013 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftbbox.h + * + * FreeType exact bbox computation (specification). + * + * Copyright (C) 1996-2019 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. + * + */ - /*************************************************************************/ - /* */ - /* This component has a _single_ role: to compute exact outline bounding */ - /* boxes. */ - /* */ - /* It is separated from the rest of the engine for various technical */ - /* reasons. It may well be integrated in `ftoutln' later. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * This component has a _single_ role: to compute exact outline bounding + * boxes. + * + * It is separated from the rest of the engine for various technical + * reasons. It may well be integrated in 'ftoutln' later. + * + */ -#ifndef __FTBBOX_H__ -#define __FTBBOX_H__ +#ifndef FTBBOX_H_ +#define FTBBOX_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -44,43 +44,44 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* outline_processing */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * outline_processing + * + */ - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Get_BBox */ - /* */ - /* <Description> */ - /* 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 */ - /* extract their extrema. */ - /* */ - /* <Input> */ - /* outline :: A pointer to the source outline. */ - /* */ - /* <Output> */ - /* abbox :: The outline's exact bounding box. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If the font is tricky and the glyph has been loaded with */ - /* @FT_LOAD_NO_SCALE, the resulting BBox is meaningless. To get */ - /* reasonable values for the BBox it is necessary to load the glyph */ - /* at a large ppem value (so that the hinting instructions can */ - /* properly shift and scale the subglyphs), then extracting the BBox, */ - /* which can be eventually converted back to font units. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Outline_Get_BBox + * + * @description: + * 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 Bezier arcs are traversed to extract their extrema. + * + * @input: + * outline :: + * A pointer to the source outline. + * + * @output: + * abbox :: + * The outline's exact bounding box. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If the font is tricky and the glyph has been loaded with + * @FT_LOAD_NO_SCALE, the resulting BBox is meaningless. To get + * reasonable values for the BBox it is necessary to load the glyph at a + * large ppem value (so that the hinting instructions can properly shift + * and scale the subglyphs), then extracting the BBox, which can be + * eventually converted back to font units. + */ FT_EXPORT( FT_Error ) FT_Outline_Get_BBox( FT_Outline* outline, FT_BBox *abbox ); @@ -90,7 +91,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTBBOX_H__ */ +#endif /* FTBBOX_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftbdf.h b/android/x86_64/include/freetype/ftbdf.h index 6d262e41..755ec935 100644 --- a/android/x86_64/include/freetype/ftbdf.h +++ b/android/x86_64/include/freetype/ftbdf.h @@ -1,25 +1,25 @@ -/***************************************************************************/ -/* */ -/* ftbdf.h */ -/* */ -/* FreeType API for accessing BDF-specific strings (specification). */ -/* */ -/* Copyright 2002-2004, 2006, 2009, 2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftbdf.h + * + * FreeType API for accessing BDF-specific strings (specification). + * + * Copyright (C) 2002-2019 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 __FTBDF_H__ -#define __FTBDF_H__ +#ifndef FTBDF_H_ +#define FTBDF_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -32,25 +32,25 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* bdf_fonts */ - /* */ - /* <Title> */ - /* BDF and PCF Files */ - /* */ - /* <Abstract> */ - /* BDF and PCF specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of functions specific to BDF */ - /* and PCF fonts. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * bdf_fonts + * + * @title: + * BDF and PCF Files + * + * @abstract: + * BDF and PCF specific API. + * + * @description: + * This section contains the declaration of functions specific to BDF and + * PCF fonts. + * + */ - /********************************************************************** + /************************************************************************** * * @enum: * BDF_PropertyType @@ -81,40 +81,40 @@ FT_BEGIN_HEADER } BDF_PropertyType; - /********************************************************************** + /************************************************************************** * * @type: * BDF_Property * * @description: - * A handle to a @BDF_PropertyRec structure to model a given - * BDF/PCF property. + * A handle to a @BDF_PropertyRec structure to model a given BDF/PCF + * property. */ typedef struct BDF_PropertyRec_* BDF_Property; - /********************************************************************** - * - * @struct: - * BDF_PropertyRec - * - * @description: - * This structure models a given BDF/PCF property. - * - * @fields: - * type :: - * The property type. - * - * u.atom :: - * The atom string, if type is @BDF_PROPERTY_TYPE_ATOM. May be - * NULL, indicating an empty string. - * - * u.integer :: - * A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER. - * - * u.cardinal :: - * An unsigned integer, if type is @BDF_PROPERTY_TYPE_CARDINAL. - */ + /************************************************************************** + * + * @struct: + * BDF_PropertyRec + * + * @description: + * This structure models a given BDF/PCF property. + * + * @fields: + * type :: + * The property type. + * + * u.atom :: + * The atom string, if type is @BDF_PROPERTY_TYPE_ATOM. May be + * `NULL`, indicating an empty string. + * + * u.integer :: + * A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER. + * + * u.cardinal :: + * An unsigned integer, if type is @BDF_PROPERTY_TYPE_CARDINAL. + */ typedef struct BDF_PropertyRec_ { BDF_PropertyType type; @@ -128,73 +128,76 @@ FT_BEGIN_HEADER } BDF_PropertyRec; - /********************************************************************** - * - * @function: - * FT_Get_BDF_Charset_ID - * - * @description: - * Retrieve a BDF font character set identity, according to - * the BDF specification. - * - * @input: - * face :: - * A handle to the input face. - * - * @output: - * acharset_encoding :: - * Charset encoding, as a C~string, owned by the face. - * - * acharset_registry :: - * Charset registry, as a C~string, owned by the face. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with BDF faces, returning an error otherwise. - */ + /************************************************************************** + * + * @function: + * FT_Get_BDF_Charset_ID + * + * @description: + * Retrieve a BDF font character set identity, according to the BDF + * specification. + * + * @input: + * face :: + * A handle to the input face. + * + * @output: + * acharset_encoding :: + * Charset encoding, as a C~string, owned by the face. + * + * acharset_registry :: + * Charset registry, as a C~string, owned by the face. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function only works with BDF faces, returning an error otherwise. + */ FT_EXPORT( FT_Error ) FT_Get_BDF_Charset_ID( FT_Face face, const char* *acharset_encoding, const char* *acharset_registry ); - /********************************************************************** - * - * @function: - * FT_Get_BDF_Property - * - * @description: - * Retrieve a BDF property from a BDF or PCF font file. - * - * @input: - * face :: A handle to the input face. - * - * name :: The property name. - * - * @output: - * aproperty :: The property. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function works with BDF _and_ PCF fonts. It returns an error - * otherwise. It also returns an error if the property is not in the - * font. - * - * A `property' is a either key-value pair within the STARTPROPERTIES - * ... ENDPROPERTIES block of a BDF font or a key-value pair from the - * `info->props' array within a `FontRec' structure of a PCF font. - * - * Integer properties are always stored as `signed' within PCF fonts; - * consequently, @BDF_PROPERTY_TYPE_CARDINAL is a possible return value - * for BDF fonts only. - * - * In case of error, `aproperty->type' is always set to - * @BDF_PROPERTY_TYPE_NONE. - */ + /************************************************************************** + * + * @function: + * FT_Get_BDF_Property + * + * @description: + * Retrieve a BDF property from a BDF or PCF font file. + * + * @input: + * face :: + * A handle to the input face. + * + * name :: + * The property name. + * + * @output: + * aproperty :: + * The property. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function works with BDF _and_ PCF fonts. It returns an error + * otherwise. It also returns an error if the property is not in the + * font. + * + * A 'property' is a either key-value pair within the STARTPROPERTIES + * ... ENDPROPERTIES block of a BDF font or a key-value pair from the + * `info->props` array within a `FontRec` structure of a PCF font. + * + * Integer properties are always stored as 'signed' within PCF fonts; + * consequently, @BDF_PROPERTY_TYPE_CARDINAL is a possible return value + * for BDF fonts only. + * + * In case of error, `aproperty->type` is always set to + * @BDF_PROPERTY_TYPE_NONE. + */ FT_EXPORT( FT_Error ) FT_Get_BDF_Property( FT_Face face, const char* prop_name, @@ -204,7 +207,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTBDF_H__ */ +#endif /* FTBDF_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftbitmap.h b/android/x86_64/include/freetype/ftbitmap.h index eae71690..83acc5f4 100644 --- a/android/x86_64/include/freetype/ftbitmap.h +++ b/android/x86_64/include/freetype/ftbitmap.h @@ -1,27 +1,28 @@ -/***************************************************************************/ -/* */ -/* ftbitmap.h */ -/* */ -/* FreeType utility functions for bitmaps (specification). */ -/* */ -/* Copyright 2004-2006, 2008, 2013, 2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftbitmap.h + * + * FreeType utility functions for bitmaps (specification). + * + * Copyright (C) 2004-2019 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 __FTBITMAP_H__ -#define __FTBITMAP_H__ +#ifndef FTBITMAP_H_ +#define FTBITMAP_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H +#include FT_COLOR_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -33,100 +34,126 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* bitmap_handling */ - /* */ - /* <Title> */ - /* Bitmap Handling */ - /* */ - /* <Abstract> */ - /* Handling FT_Bitmap objects. */ - /* */ - /* <Description> */ - /* This section contains functions for handling @FT_Bitmap objects. */ - /* Note that none of the functions changes the bitmap's `flow' (as */ - /* indicated by the sign of the `pitch' field in `FT_Bitmap'). */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * bitmap_handling + * + * @title: + * Bitmap Handling + * + * @abstract: + * Handling FT_Bitmap objects. + * + * @description: + * This section contains functions for handling @FT_Bitmap objects, + * automatically adjusting the target's bitmap buffer size as needed. + * + * Note that none of the functions changes the bitmap's 'flow' (as + * indicated by the sign of the `pitch` field in @FT_Bitmap). + * + * To set the flow, assign an appropriate positive or negative value to + * the `pitch` field of the target @FT_Bitmap object after calling + * @FT_Bitmap_Init but before calling any of the other functions + * described here. + */ - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_New */ - /* */ - /* <Description> */ - /* Initialize a pointer to an @FT_Bitmap structure. */ - /* */ - /* <InOut> */ - /* abitmap :: A pointer to the bitmap structure. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Bitmap_Init + * + * @description: + * Initialize a pointer to an @FT_Bitmap structure. + * + * @inout: + * abitmap :: + * A pointer to the bitmap structure. + * + * @note: + * A deprecated name for the same function is `FT_Bitmap_New`. + */ + FT_EXPORT( void ) + FT_Bitmap_Init( FT_Bitmap *abitmap ); + + + /* deprecated */ FT_EXPORT( void ) FT_Bitmap_New( FT_Bitmap *abitmap ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Copy */ - /* */ - /* <Description> */ - /* Copy a bitmap into another one. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* source :: A handle to the source bitmap. */ - /* */ - /* <Output> */ - /* target :: A handle to the target bitmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Bitmap_Copy + * + * @description: + * Copy a bitmap into another one. + * + * @input: + * library :: + * A handle to a library object. + * + * source :: + * A handle to the source bitmap. + * + * @output: + * target :: + * A handle to the target bitmap. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * `source->buffer` and `target->buffer` must neither be equal nor + * overlap. + */ FT_EXPORT( FT_Error ) FT_Bitmap_Copy( FT_Library library, const FT_Bitmap *source, - FT_Bitmap *target); + FT_Bitmap *target ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Embolden */ - /* */ - /* <Description> */ - /* Embolden a bitmap. The new bitmap will be about `xStrength' */ - /* pixels wider and `yStrength' pixels higher. The left and bottom */ - /* borders are kept unchanged. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* xStrength :: How strong the glyph is emboldened horizontally. */ - /* Expressed in 26.6 pixel format. */ - /* */ - /* yStrength :: How strong the glyph is emboldened vertically. */ - /* Expressed in 26.6 pixel format. */ - /* */ - /* <InOut> */ - /* bitmap :: A handle to the target bitmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The current implementation restricts `xStrength' to be less than */ - /* or equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO. */ - /* */ - /* If you want to embolden the bitmap owned by a @FT_GlyphSlotRec, */ - /* you should call @FT_GlyphSlot_Own_Bitmap on the slot first. */ - /* */ - /* Bitmaps in @FT_PIXEL_MODE_GRAY2 and @FT_PIXEL_MODE_GRAY@ format */ - /* are converted to @FT_PIXEL_MODE_GRAY format (i.e., 8bpp). */ - /* */ + /************************************************************************** + * + * @function: + * FT_Bitmap_Embolden + * + * @description: + * Embolden a bitmap. The new bitmap will be about `xStrength` pixels + * wider and `yStrength` pixels higher. The left and bottom borders are + * kept unchanged. + * + * @input: + * library :: + * A handle to a library object. + * + * xStrength :: + * How strong the glyph is emboldened horizontally. Expressed in 26.6 + * pixel format. + * + * yStrength :: + * How strong the glyph is emboldened vertically. Expressed in 26.6 + * pixel format. + * + * @inout: + * bitmap :: + * A handle to the target bitmap. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The current implementation restricts `xStrength` to be less than or + * equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO. + * + * If you want to embolden the bitmap owned by a @FT_GlyphSlotRec, you + * should call @FT_GlyphSlot_Own_Bitmap on the slot first. + * + * Bitmaps in @FT_PIXEL_MODE_GRAY2 and @FT_PIXEL_MODE_GRAY@ format are + * converted to @FT_PIXEL_MODE_GRAY format (i.e., 8bpp). + */ FT_EXPORT( FT_Error ) FT_Bitmap_Embolden( FT_Library library, FT_Bitmap* bitmap, @@ -134,39 +161,46 @@ FT_BEGIN_HEADER FT_Pos yStrength ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Convert */ - /* */ - /* <Description> */ - /* Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp */ - /* to a bitmap object with depth 8bpp, making the number of used */ - /* bytes line (a.k.a. the `pitch') a multiple of `alignment'. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* source :: The source bitmap. */ - /* */ - /* alignment :: The pitch of the bitmap is a multiple of this */ - /* parameter. Common values are 1, 2, or 4. */ - /* */ - /* <Output> */ - /* target :: The target bitmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* It is possible to call @FT_Bitmap_Convert multiple times without */ - /* calling @FT_Bitmap_Done (the memory is simply reallocated). */ - /* */ - /* Use @FT_Bitmap_Done to finally remove the bitmap object. */ - /* */ - /* The `library' argument is taken to have access to FreeType's */ - /* memory handling functions. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Bitmap_Convert + * + * @description: + * Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp to + * a bitmap object with depth 8bpp, making the number of used bytes per + * line (a.k.a. the 'pitch') a multiple of `alignment`. + * + * @input: + * library :: + * A handle to a library object. + * + * source :: + * The source bitmap. + * + * alignment :: + * The pitch of the bitmap is a multiple of this argument. Common + * values are 1, 2, or 4. + * + * @output: + * target :: + * The target bitmap. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * It is possible to call @FT_Bitmap_Convert multiple times without + * calling @FT_Bitmap_Done (the memory is simply reallocated). + * + * Use @FT_Bitmap_Done to finally remove the bitmap object. + * + * The `library` argument is taken to have access to FreeType's memory + * handling functions. + * + * `source->buffer` and `target->buffer` must neither be equal nor + * overlap. + */ FT_EXPORT( FT_Error ) FT_Bitmap_Convert( FT_Library library, const FT_Bitmap *source, @@ -174,48 +208,112 @@ FT_BEGIN_HEADER FT_Int alignment ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GlyphSlot_Own_Bitmap */ - /* */ - /* <Description> */ - /* Make sure that a glyph slot owns `slot->bitmap'. */ - /* */ - /* <Input> */ - /* slot :: The glyph slot. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function is to be used in combination with */ - /* @FT_Bitmap_Embolden. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Bitmap_Blend + * + * @description: + * Blend a bitmap onto another bitmap, using a given color. + * + * @input: + * library :: + * A handle to a library object. + * + * source :: + * The source bitmap, which can have any @FT_Pixel_Mode format. + * + * source_offset :: + * The offset vector to the upper left corner of the source bitmap in + * 26.6 pixel format. It should represent an integer offset; the + * function will set the lowest six bits to zero to enforce that. + * + * color :: + * The color used to draw `source` onto `target`. + * + * @inout: + * target :: + * A handle to an `FT_Bitmap` object. It should be either initialized + * as empty with a call to @FT_Bitmap_Init, or it should be of type + * @FT_PIXEL_MODE_BGRA. + * + * atarget_offset :: + * The offset vector to the upper left corner of the target bitmap in + * 26.6 pixel format. It should represent an integer offset; the + * function will set the lowest six bits to zero to enforce that. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function doesn't perform clipping. + * + * The bitmap in `target` gets allocated or reallocated as needed; the + * vector `atarget_offset` is updated accordingly. + * + * In case of allocation or reallocation, the bitmap's pitch is set to + * `4 * width`. Both `source` and `target` must have the same bitmap + * flow (as indicated by the sign of the `pitch` field). + * + * `source->buffer` and `target->buffer` must neither be equal nor + * overlap. + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Error ) + FT_Bitmap_Blend( FT_Library library, + const FT_Bitmap* source, + const FT_Vector source_offset, + FT_Bitmap* target, + FT_Vector *atarget_offset, + FT_Color color ); + + + /************************************************************************** + * + * @function: + * FT_GlyphSlot_Own_Bitmap + * + * @description: + * Make sure that a glyph slot owns `slot->bitmap`. + * + * @input: + * slot :: + * The glyph slot. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function is to be used in combination with @FT_Bitmap_Embolden. + */ FT_EXPORT( FT_Error ) FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot slot ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Done */ - /* */ - /* <Description> */ - /* Destroy a bitmap object created with @FT_Bitmap_New. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* bitmap :: The bitmap object to be freed. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The `library' argument is taken to have access to FreeType's */ - /* memory handling functions. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Bitmap_Done + * + * @description: + * Destroy a bitmap object initialized with @FT_Bitmap_Init. + * + * @input: + * library :: + * A handle to a library object. + * + * bitmap :: + * The bitmap object to be freed. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The `library` argument is taken to have access to FreeType's memory + * handling functions. + */ FT_EXPORT( FT_Error ) FT_Bitmap_Done( FT_Library library, FT_Bitmap *bitmap ); @@ -226,7 +324,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTBITMAP_H__ */ +#endif /* FTBITMAP_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftbzip2.h b/android/x86_64/include/freetype/ftbzip2.h index 4dce161f..17252359 100644 --- a/android/x86_64/include/freetype/ftbzip2.h +++ b/android/x86_64/include/freetype/ftbzip2.h @@ -1,25 +1,25 @@ -/***************************************************************************/ -/* */ -/* ftbzip2.h */ -/* */ -/* Bzip2-compressed stream support. */ -/* */ -/* Copyright 2010 by */ -/* Joel Klinghed. */ -/* */ -/* 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftbzip2.h + * + * Bzip2-compressed stream support. + * + * Copyright (C) 2010-2019 by + * Joel Klinghed. + * + * 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 __FTBZIP2_H__ -#define __FTBZIP2_H__ +#ifndef FTBZIP2_H_ +#define FTBZIP2_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -31,62 +31,62 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* bzip2 */ - /* */ - /* <Title> */ - /* BZIP2 Streams */ - /* */ - /* <Abstract> */ - /* Using bzip2-compressed font files. */ - /* */ - /* <Description> */ - /* This section contains the declaration of Bzip2-specific functions. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * bzip2 + * + * @title: + * BZIP2 Streams + * + * @abstract: + * Using bzip2-compressed font files. + * + * @description: + * This section contains the declaration of Bzip2-specific functions. + * + */ - /************************************************************************ - * - * @function: - * FT_Stream_OpenBzip2 - * - * @description: - * Open a new stream to parse bzip2-compressed font files. This is - * mainly used to support the compressed `*.pcf.bz2' fonts that come - * with XFree86. - * - * @input: - * stream :: - * The target embedding stream. - * - * source :: - * The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close' on the new stream will - * *not* call `FT_Stream_Close' on the source stream. None of the stream - * objects will be released to the heap. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream. - * - * In certain builds of the library, bzip2 compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a bzip2 compressed stream - * from it and re-open the face with it. - * - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with bzip2 support. - */ + /************************************************************************** + * + * @function: + * FT_Stream_OpenBzip2 + * + * @description: + * Open a new stream to parse bzip2-compressed font files. This is + * mainly used to support the compressed `*.pcf.bz2` fonts that come with + * XFree86. + * + * @input: + * stream :: + * The target embedding stream. + * + * source :: + * The source stream. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The source stream must be opened _before_ calling this function. + * + * Calling the internal function `FT_Stream_Close` on the new stream will + * **not** call `FT_Stream_Close` on the source stream. None of the + * stream objects will be released to the heap. + * + * The stream implementation is very basic and resets the decompression + * process each time seeking backwards is needed within the stream. + * + * In certain builds of the library, bzip2 compression recognition is + * automatically handled when calling @FT_New_Face or @FT_Open_Face. + * This means that if no font driver is capable of handling the raw + * compressed file, the library will try to open a bzip2 compressed + * stream from it and re-open the face with it. + * + * This function may return `FT_Err_Unimplemented_Feature` if your build + * of FreeType was not compiled with bzip2 support. + */ FT_EXPORT( FT_Error ) FT_Stream_OpenBzip2( FT_Stream stream, FT_Stream source ); @@ -96,7 +96,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTBZIP2_H__ */ +#endif /* FTBZIP2_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftcache.h b/android/x86_64/include/freetype/ftcache.h index a30e925c..6a6f8420 100644 --- a/android/x86_64/include/freetype/ftcache.h +++ b/android/x86_64/include/freetype/ftcache.h @@ -1,50 +1,50 @@ -/***************************************************************************/ -/* */ -/* ftcache.h */ -/* */ -/* FreeType Cache subsystem (specification). */ -/* */ -/* Copyright 1996-2008, 2010, 2013, 2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftcache.h + * + * FreeType Cache subsystem (specification). + * + * Copyright (C) 1996-2019 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 __FTCACHE_H__ -#define __FTCACHE_H__ +#ifndef FTCACHE_H_ +#define FTCACHE_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_GLYPH_H FT_BEGIN_HEADER - /************************************************************************* + /************************************************************************** * - * <Section> - * cache_subsystem + * @section: + * cache_subsystem * - * <Title> - * Cache Sub-System + * @title: + * Cache Sub-System * - * <Abstract> - * How to cache face, size, and glyph data with FreeType~2. + * @abstract: + * How to cache face, size, and glyph data with FreeType~2. * - * <Description> + * @description: * This section describes the FreeType~2 cache sub-system, which is used * to limit the number of concurrently opened @FT_Face and @FT_Size * objects, as well as caching information like character maps and glyph * images while limiting their maximum memory usage. * - * Note that all types and functions begin with the `FTC_' prefix. + * Note that all types and functions begin with the `FTC_` prefix. * * The cache is highly portable and thus doesn't know anything about the * fonts installed on your system, or how to access them. This implies @@ -59,7 +59,7 @@ FT_BEGIN_HEADER * to convert an @FTC_FaceID into a new @FT_Face object. The latter is * then completely managed by the cache, including its termination * through @FT_Done_Face. To monitor termination of face objects, the - * finalizer callback in the `generic' field of the @FT_Face object can + * finalizer callback in the `generic` field of the @FT_Face object can * be used, which might also be used to store the @FTC_FaceID of the * face. * @@ -69,14 +69,14 @@ FT_BEGIN_HEADER * possible. * * Note that for the cache to work correctly, the face ID values must be - * *persistent*, which means that the contents they point to should not + * **persistent**, which means that the contents they point to should not * change at runtime, or that their value should not become invalid. * * If this is unavoidable (e.g., when a font is uninstalled at runtime), * you should call @FTC_Manager_RemoveFaceID as soon as possible, to let - * the cache get rid of any references to the old @FTC_FaceID it may - * keep internally. Failure to do so will lead to incorrect behaviour - * or even crashes. + * the cache get rid of any references to the old @FTC_FaceID it may keep + * internally. Failure to do so will lead to incorrect behaviour or even + * crashes. * * To use the cache, start with calling @FTC_Manager_New to create a new * @FTC_Manager object, which models a single cache instance. You can @@ -91,16 +91,16 @@ FT_BEGIN_HEADER * later use @FTC_ImageCache_Lookup to retrieve the corresponding * @FT_Glyph objects from the cache. * - * If you need lots of small bitmaps, it is much more memory efficient - * to call @FTC_SBitCache_New followed by @FTC_SBitCache_Lookup. This - * returns @FTC_SBitRec structures, which are used to store small - * bitmaps directly. (A small bitmap is one whose metrics and - * dimensions all fit into 8-bit integers). + * If you need lots of small bitmaps, it is much more memory efficient to + * call @FTC_SBitCache_New followed by @FTC_SBitCache_Lookup. This + * returns @FTC_SBitRec structures, which are used to store small bitmaps + * directly. (A small bitmap is one whose metrics and dimensions all fit + * into 8-bit integers). * * We hope to also provide a kerning cache in the near future. * * - * <Order> + * @order: * FTC_Manager * FTC_FaceID * FTC_Face_Requester @@ -142,19 +142,20 @@ FT_BEGIN_HEADER /*************************************************************************/ - /************************************************************************* + /************************************************************************** * - * @type: FTC_FaceID + * @type: + * FTC_FaceID * * @description: * An opaque pointer type that is used to identity face objects. The * contents of such objects is application-dependent. * - * These pointers are typically used to point to a user-defined - * structure containing a font file path, and face index. + * These pointers are typically used to point to a user-defined structure + * containing a font file path, and face index. * * @note: - * Never use NULL as a valid @FTC_FaceID. + * Never use `NULL` as a valid @FTC_FaceID. * * Face IDs are passed by the client to the cache manager that calls, * when needed, the @FTC_Face_Requester to translate them into new @@ -165,13 +166,13 @@ FT_BEGIN_HEADER * immediately call @FTC_Manager_RemoveFaceID before any other cache * function. * - * Failure to do so will result in incorrect behaviour or even - * memory leaks and crashes. + * Failure to do so will result in incorrect behaviour or even memory + * leaks and crashes. */ typedef FT_Pointer FTC_FaceID; - /************************************************************************ + /************************************************************************** * * @functype: * FTC_Face_Requester @@ -181,7 +182,7 @@ FT_BEGIN_HEADER * the cache manager to translate a given @FTC_FaceID into a new valid * @FT_Face object, on demand. * - * <Input> + * @input: * face_id :: * The face ID to resolve. * @@ -191,15 +192,15 @@ FT_BEGIN_HEADER * req_data :: * Application-provided request data (see note below). * - * <Output> + * @output: * aface :: * A new @FT_Face handle. * - * <Return> + * @return: * FreeType error code. 0~means success. * - * <Note> - * The third parameter `req_data' is the same as the one passed by the + * @note: + * The third parameter `req_data` is the same as the one passed by the * client when @FTC_Manager_New is called. * * The face requester should not perform funny things on the returned @@ -226,84 +227,90 @@ FT_BEGIN_HEADER /*************************************************************************/ - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_Manager */ - /* */ - /* <Description> */ - /* This object corresponds to one instance of the cache-subsystem. */ - /* It is used to cache one or more @FT_Face objects, along with */ - /* corresponding @FT_Size objects. */ - /* */ - /* The manager intentionally limits the total number of opened */ - /* @FT_Face and @FT_Size objects to control memory usage. See the */ - /* `max_faces' and `max_sizes' parameters of @FTC_Manager_New. */ - /* */ - /* The manager is also used to cache `nodes' of various types while */ - /* limiting their total memory usage. */ - /* */ - /* All limitations are enforced by keeping lists of managed objects */ - /* in most-recently-used order, and flushing old nodes to make room */ - /* for new ones. */ - /* */ + /************************************************************************** + * + * @type: + * FTC_Manager + * + * @description: + * This object corresponds to one instance of the cache-subsystem. It is + * used to cache one or more @FT_Face objects, along with corresponding + * @FT_Size objects. + * + * The manager intentionally limits the total number of opened @FT_Face + * and @FT_Size objects to control memory usage. See the `max_faces` and + * `max_sizes` parameters of @FTC_Manager_New. + * + * The manager is also used to cache 'nodes' of various types while + * limiting their total memory usage. + * + * All limitations are enforced by keeping lists of managed objects in + * most-recently-used order, and flushing old nodes to make room for new + * ones. + */ typedef struct FTC_ManagerRec_* FTC_Manager; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_Node */ - /* */ - /* <Description> */ - /* An opaque handle to a cache node object. Each cache node is */ - /* reference-counted. A node with a count of~0 might be flushed */ - /* out of a full cache whenever a lookup request is performed. */ - /* */ - /* If you look up nodes, you have the ability to `acquire' them, */ - /* i.e., to increment their reference count. This will prevent the */ - /* node from being flushed out of the cache until you explicitly */ - /* `release' it (see @FTC_Node_Unref). */ - /* */ - /* See also @FTC_SBitCache_Lookup and @FTC_ImageCache_Lookup. */ - /* */ + /************************************************************************** + * + * @type: + * FTC_Node + * + * @description: + * An opaque handle to a cache node object. Each cache node is + * reference-counted. A node with a count of~0 might be flushed out of a + * full cache whenever a lookup request is performed. + * + * If you look up nodes, you have the ability to 'acquire' them, i.e., to + * increment their reference count. This will prevent the node from + * being flushed out of the cache until you explicitly 'release' it (see + * @FTC_Node_Unref). + * + * See also @FTC_SBitCache_Lookup and @FTC_ImageCache_Lookup. + */ typedef struct FTC_NodeRec_* FTC_Node; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_New */ - /* */ - /* <Description> */ - /* Create a new cache manager. */ - /* */ - /* <Input> */ - /* library :: The parent FreeType library handle to use. */ - /* */ - /* max_faces :: Maximum number of opened @FT_Face objects managed by */ - /* this cache instance. Use~0 for defaults. */ - /* */ - /* max_sizes :: Maximum number of opened @FT_Size objects managed by */ - /* this cache instance. Use~0 for defaults. */ - /* */ - /* max_bytes :: Maximum number of bytes to use for cached data nodes. */ - /* Use~0 for defaults. Note that this value does not */ - /* account for managed @FT_Face and @FT_Size objects. */ - /* */ - /* requester :: An application-provided callback used to translate */ - /* face IDs into real @FT_Face objects. */ - /* */ - /* req_data :: A generic pointer that is passed to the requester */ - /* each time it is called (see @FTC_Face_Requester). */ - /* */ - /* <Output> */ - /* amanager :: A handle to a new manager object. 0~in case of */ - /* failure. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FTC_Manager_New + * + * @description: + * Create a new cache manager. + * + * @input: + * library :: + * The parent FreeType library handle to use. + * + * max_faces :: + * Maximum number of opened @FT_Face objects managed by this cache + * instance. Use~0 for defaults. + * + * max_sizes :: + * Maximum number of opened @FT_Size objects managed by this cache + * instance. Use~0 for defaults. + * + * max_bytes :: + * Maximum number of bytes to use for cached data nodes. Use~0 for + * defaults. Note that this value does not account for managed + * @FT_Face and @FT_Size objects. + * + * requester :: + * An application-provided callback used to translate face IDs into + * real @FT_Face objects. + * + * req_data :: + * A generic pointer that is passed to the requester each time it is + * called (see @FTC_Face_Requester). + * + * @output: + * amanager :: + * A handle to a new manager object. 0~in case of failure. + * + * @return: + * FreeType error code. 0~means success. + */ FT_EXPORT( FT_Error ) FTC_Manager_New( FT_Library library, FT_UInt max_faces, @@ -314,114 +321,124 @@ FT_BEGIN_HEADER FTC_Manager *amanager ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_Reset */ - /* */ - /* <Description> */ - /* Empty a given cache manager. This simply gets rid of all the */ - /* currently cached @FT_Face and @FT_Size objects within the manager. */ - /* */ - /* <InOut> */ - /* manager :: A handle to the manager. */ - /* */ + /************************************************************************** + * + * @function: + * FTC_Manager_Reset + * + * @description: + * Empty a given cache manager. This simply gets rid of all the + * currently cached @FT_Face and @FT_Size objects within the manager. + * + * @inout: + * manager :: + * A handle to the manager. + */ FT_EXPORT( void ) FTC_Manager_Reset( FTC_Manager manager ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_Done */ - /* */ - /* <Description> */ - /* Destroy a given manager after emptying it. */ - /* */ - /* <Input> */ - /* manager :: A handle to the target cache manager object. */ - /* */ + /************************************************************************** + * + * @function: + * FTC_Manager_Done + * + * @description: + * Destroy a given manager after emptying it. + * + * @input: + * manager :: + * A handle to the target cache manager object. + */ FT_EXPORT( void ) FTC_Manager_Done( FTC_Manager manager ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_LookupFace */ - /* */ - /* <Description> */ - /* Retrieve the @FT_Face object that corresponds to a given face ID */ - /* through a cache manager. */ - /* */ - /* <Input> */ - /* manager :: A handle to the cache manager. */ - /* */ - /* face_id :: The ID of the face object. */ - /* */ - /* <Output> */ - /* aface :: A handle to the face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned @FT_Face object is always owned by the manager. You */ - /* should never try to discard it yourself. */ - /* */ - /* The @FT_Face object doesn't necessarily have a current size object */ - /* (i.e., face->size can be~0). If you need a specific `font size', */ - /* use @FTC_Manager_LookupSize instead. */ - /* */ - /* Never change the face's transformation matrix (i.e., never call */ - /* the @FT_Set_Transform function) on a returned face! If you need */ - /* to transform glyphs, do it yourself after glyph loading. */ - /* */ - /* When you perform a lookup, out-of-memory errors are detected */ - /* _within_ the lookup and force incremental flushes of the cache */ - /* until enough memory is released for the lookup to succeed. */ - /* */ - /* If a lookup fails with `FT_Err_Out_Of_Memory' the cache has */ - /* already been completely flushed, and still no memory was available */ - /* for the operation. */ - /* */ + /************************************************************************** + * + * @function: + * FTC_Manager_LookupFace + * + * @description: + * Retrieve the @FT_Face object that corresponds to a given face ID + * through a cache manager. + * + * @input: + * manager :: + * A handle to the cache manager. + * + * face_id :: + * The ID of the face object. + * + * @output: + * aface :: + * A handle to the face object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The returned @FT_Face object is always owned by the manager. You + * should never try to discard it yourself. + * + * The @FT_Face object doesn't necessarily have a current size object + * (i.e., face->size can be~0). If you need a specific 'font size', use + * @FTC_Manager_LookupSize instead. + * + * Never change the face's transformation matrix (i.e., never call the + * @FT_Set_Transform function) on a returned face! If you need to + * transform glyphs, do it yourself after glyph loading. + * + * When you perform a lookup, out-of-memory errors are detected _within_ + * the lookup and force incremental flushes of the cache until enough + * memory is released for the lookup to succeed. + * + * If a lookup fails with `FT_Err_Out_Of_Memory` the cache has already + * been completely flushed, and still no memory was available for the + * operation. + */ FT_EXPORT( FT_Error ) FTC_Manager_LookupFace( FTC_Manager manager, FTC_FaceID face_id, FT_Face *aface ); - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FTC_ScalerRec */ - /* */ - /* <Description> */ - /* A structure used to describe a given character size in either */ - /* pixels or points to the cache manager. See */ - /* @FTC_Manager_LookupSize. */ - /* */ - /* <Fields> */ - /* face_id :: The source face ID. */ - /* */ - /* width :: The character width. */ - /* */ - /* height :: The character height. */ - /* */ - /* pixel :: A Boolean. If 1, the `width' and `height' fields are */ - /* interpreted as integer pixel character sizes. */ - /* Otherwise, they are expressed as 1/64th of points. */ - /* */ - /* x_res :: Only used when `pixel' is value~0 to indicate the */ - /* horizontal resolution in dpi. */ - /* */ - /* y_res :: Only used when `pixel' is value~0 to indicate the */ - /* vertical resolution in dpi. */ - /* */ - /* <Note> */ - /* This type is mainly used to retrieve @FT_Size objects through the */ - /* cache manager. */ - /* */ + /************************************************************************** + * + * @struct: + * FTC_ScalerRec + * + * @description: + * A structure used to describe a given character size in either pixels + * or points to the cache manager. See @FTC_Manager_LookupSize. + * + * @fields: + * face_id :: + * The source face ID. + * + * width :: + * The character width. + * + * height :: + * The character height. + * + * pixel :: + * A Boolean. If 1, the `width` and `height` fields are interpreted as + * integer pixel character sizes. Otherwise, they are expressed as + * 1/64th of points. + * + * x_res :: + * Only used when `pixel` is value~0 to indicate the horizontal + * resolution in dpi. + * + * y_res :: + * Only used when `pixel` is value~0 to indicate the vertical + * resolution in dpi. + * + * @note: + * This type is mainly used to retrieve @FT_Size objects through the + * cache manager. + */ typedef struct FTC_ScalerRec_ { FTC_FaceID face_id; @@ -434,89 +451,93 @@ FT_BEGIN_HEADER } FTC_ScalerRec; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FTC_Scaler */ - /* */ - /* <Description> */ - /* A handle to an @FTC_ScalerRec structure. */ - /* */ + /************************************************************************** + * + * @struct: + * FTC_Scaler + * + * @description: + * A handle to an @FTC_ScalerRec structure. + */ typedef struct FTC_ScalerRec_* FTC_Scaler; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_LookupSize */ - /* */ - /* <Description> */ - /* Retrieve the @FT_Size object that corresponds to a given */ - /* @FTC_ScalerRec pointer through a cache manager. */ - /* */ - /* <Input> */ - /* manager :: A handle to the cache manager. */ - /* */ - /* scaler :: A scaler handle. */ - /* */ - /* <Output> */ - /* asize :: A handle to the size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned @FT_Size object is always owned by the manager. You */ - /* should never try to discard it by yourself. */ - /* */ - /* You can access the parent @FT_Face object simply as `size->face' */ - /* if you need it. Note that this object is also owned by the */ - /* manager. */ - /* */ - /* <Note> */ - /* When you perform a lookup, out-of-memory errors are detected */ - /* _within_ the lookup and force incremental flushes of the cache */ - /* until enough memory is released for the lookup to succeed. */ - /* */ - /* If a lookup fails with `FT_Err_Out_Of_Memory' the cache has */ - /* already been completely flushed, and still no memory is available */ - /* for the operation. */ - /* */ + /************************************************************************** + * + * @function: + * FTC_Manager_LookupSize + * + * @description: + * Retrieve the @FT_Size object that corresponds to a given + * @FTC_ScalerRec pointer through a cache manager. + * + * @input: + * manager :: + * A handle to the cache manager. + * + * scaler :: + * A scaler handle. + * + * @output: + * asize :: + * A handle to the size object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The returned @FT_Size object is always owned by the manager. You + * should never try to discard it by yourself. + * + * You can access the parent @FT_Face object simply as `size->face` if + * you need it. Note that this object is also owned by the manager. + * + * @note: + * When you perform a lookup, out-of-memory errors are detected _within_ + * the lookup and force incremental flushes of the cache until enough + * memory is released for the lookup to succeed. + * + * If a lookup fails with `FT_Err_Out_Of_Memory` the cache has already + * been completely flushed, and still no memory is available for the + * operation. + */ FT_EXPORT( FT_Error ) FTC_Manager_LookupSize( FTC_Manager manager, FTC_Scaler scaler, FT_Size *asize ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Node_Unref */ - /* */ - /* <Description> */ - /* Decrement a cache node's internal reference count. When the count */ - /* reaches 0, it is not destroyed but becomes eligible for subsequent */ - /* cache flushes. */ - /* */ - /* <Input> */ - /* node :: The cache node handle. */ - /* */ - /* manager :: The cache manager handle. */ - /* */ + /************************************************************************** + * + * @function: + * FTC_Node_Unref + * + * @description: + * Decrement a cache node's internal reference count. When the count + * reaches 0, it is not destroyed but becomes eligible for subsequent + * cache flushes. + * + * @input: + * node :: + * The cache node handle. + * + * manager :: + * The cache manager handle. + */ FT_EXPORT( void ) FTC_Node_Unref( FTC_Node node, FTC_Manager manager ); - /************************************************************************* + /************************************************************************** * * @function: * FTC_Manager_RemoveFaceID * * @description: - * A special function used to indicate to the cache manager that - * a given @FTC_FaceID is no longer valid, either because its - * content changed, or because it was deallocated or uninstalled. + * A special function used to indicate to the cache manager that a given + * @FTC_FaceID is no longer valid, either because its content changed, or + * because it was deallocated or uninstalled. * * @input: * manager :: @@ -527,11 +548,11 @@ FT_BEGIN_HEADER * * @note: * This function flushes all nodes from the cache corresponding to this - * `face_id', with the exception of nodes with a non-null reference + * `face_id`, with the exception of nodes with a non-null reference * count. * - * Such nodes are however modified internally so as to never appear - * in later lookups with the same `face_id' value, and to be immediately + * Such nodes are however modified internally so as to never appear in + * later lookups with the same `face_id` value, and to be immediately * destroyed when released by all their users. * */ @@ -540,27 +561,20 @@ FT_BEGIN_HEADER FTC_FaceID face_id ); - /*************************************************************************/ - /* */ - /* <Section> */ - /* cache_subsystem */ - /* */ - /*************************************************************************/ - - /************************************************************************* + /************************************************************************** * * @type: * FTC_CMapCache * * @description: - * An opaque handle used to model a charmap cache. This cache is to - * hold character codes -> glyph indices mappings. + * An opaque handle used to model a charmap cache. This cache is to hold + * character codes -> glyph indices mappings. * */ typedef struct FTC_CMapCacheRec_* FTC_CMapCache; - /************************************************************************* + /************************************************************************** * * @function: * FTC_CMapCache_New @@ -574,7 +588,7 @@ FT_BEGIN_HEADER * * @output: * acache :: - * A new cache handle. NULL in case of error. + * A new cache handle. `NULL` in case of error. * * @return: * FreeType error code. 0~means success. @@ -589,7 +603,7 @@ FT_BEGIN_HEADER FTC_CMapCache *acache ); - /************************************************************************ + /************************************************************************** * * @function: * FTC_CMapCache_Lookup @@ -613,7 +627,7 @@ FT_BEGIN_HEADER * The character code (in the corresponding charmap). * * @return: - * Glyph index. 0~means `no glyph'. + * Glyph index. 0~means 'no glyph'. * */ FT_EXPORT( FT_UInt ) @@ -623,14 +637,6 @@ FT_BEGIN_HEADER FT_UInt32 char_code ); - /*************************************************************************/ - /* */ - /* <Section> */ - /* cache_subsystem */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ /*************************************************************************/ /*************************************************************************/ @@ -642,7 +648,7 @@ FT_BEGIN_HEADER /*************************************************************************/ - /************************************************************************* + /************************************************************************** * * @struct: * FTC_ImageTypeRec @@ -667,14 +673,14 @@ FT_BEGIN_HEADER typedef struct FTC_ImageTypeRec_ { FTC_FaceID face_id; - FT_Int width; - FT_Int height; + FT_UInt width; + FT_UInt height; FT_Int32 flags; } FTC_ImageTypeRec; - /************************************************************************* + /************************************************************************** * * @type: * FTC_ImageType @@ -695,83 +701,87 @@ FT_BEGIN_HEADER (d1)->flags == (d2)->flags ) - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_ImageCache */ - /* */ - /* <Description> */ - /* A handle to a glyph image cache object. They are designed to */ - /* hold many distinct glyph images while not exceeding a certain */ - /* memory threshold. */ - /* */ + /************************************************************************** + * + * @type: + * FTC_ImageCache + * + * @description: + * A handle to a glyph image cache object. They are designed to hold + * many distinct glyph images while not exceeding a certain memory + * threshold. + */ typedef struct FTC_ImageCacheRec_* FTC_ImageCache; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_ImageCache_New */ - /* */ - /* <Description> */ - /* Create a new glyph image cache. */ - /* */ - /* <Input> */ - /* manager :: The parent manager for the image cache. */ - /* */ - /* <Output> */ - /* acache :: A handle to the new glyph image cache object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FTC_ImageCache_New + * + * @description: + * Create a new glyph image cache. + * + * @input: + * manager :: + * The parent manager for the image cache. + * + * @output: + * acache :: + * A handle to the new glyph image cache object. + * + * @return: + * FreeType error code. 0~means success. + */ FT_EXPORT( FT_Error ) FTC_ImageCache_New( FTC_Manager manager, FTC_ImageCache *acache ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_ImageCache_Lookup */ - /* */ - /* <Description> */ - /* Retrieve a given glyph image from a glyph image cache. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source glyph image cache. */ - /* */ - /* type :: A pointer to a glyph image type descriptor. */ - /* */ - /* gindex :: The glyph index to retrieve. */ - /* */ - /* <Output> */ - /* aglyph :: The corresponding @FT_Glyph object. 0~in case of */ - /* failure. */ - /* */ - /* anode :: Used to return the address of of the corresponding cache */ - /* node after incrementing its reference count (see note */ - /* below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned glyph is owned and managed by the glyph image cache. */ - /* Never try to transform or discard it manually! You can however */ - /* create a copy with @FT_Glyph_Copy and modify the new one. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the glyph image, after increasing its reference */ - /* count. This ensures that the node (as well as the @FT_Glyph) will */ - /* always be kept in the cache until you call @FTC_Node_Unref to */ - /* `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the @FT_Glyph could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ + /************************************************************************** + * + * @function: + * FTC_ImageCache_Lookup + * + * @description: + * Retrieve a given glyph image from a glyph image cache. + * + * @input: + * cache :: + * A handle to the source glyph image cache. + * + * type :: + * A pointer to a glyph image type descriptor. + * + * gindex :: + * The glyph index to retrieve. + * + * @output: + * aglyph :: + * The corresponding @FT_Glyph object. 0~in case of failure. + * + * anode :: + * Used to return the address of the corresponding cache node after + * incrementing its reference count (see note below). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The returned glyph is owned and managed by the glyph image cache. + * Never try to transform or discard it manually! You can however create + * a copy with @FT_Glyph_Copy and modify the new one. + * + * If `anode` is _not_ `NULL`, it receives the address of the cache node + * containing the glyph image, after increasing its reference count. + * This ensures that the node (as well as the @FT_Glyph) will always be + * kept in the cache until you call @FTC_Node_Unref to 'release' it. + * + * If `anode` is `NULL`, the cache node is left unchanged, which means + * that the @FT_Glyph could be flushed out of the cache on the next call + * to one of the caching sub-system APIs. Don't assume that it is + * persistent! + */ FT_EXPORT( FT_Error ) FTC_ImageCache_Lookup( FTC_ImageCache cache, FTC_ImageType type, @@ -780,54 +790,57 @@ FT_BEGIN_HEADER FTC_Node *anode ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_ImageCache_LookupScaler */ - /* */ - /* <Description> */ - /* A variant of @FTC_ImageCache_Lookup that uses an @FTC_ScalerRec */ - /* to specify the face ID and its size. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source glyph image cache. */ - /* */ - /* scaler :: A pointer to a scaler descriptor. */ - /* */ - /* load_flags :: The corresponding load flags. */ - /* */ - /* gindex :: The glyph index to retrieve. */ - /* */ - /* <Output> */ - /* aglyph :: The corresponding @FT_Glyph object. 0~in case of */ - /* failure. */ - /* */ - /* anode :: Used to return the address of of the corresponding */ - /* cache node after incrementing its reference count */ - /* (see note below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned glyph is owned and managed by the glyph image cache. */ - /* Never try to transform or discard it manually! You can however */ - /* create a copy with @FT_Glyph_Copy and modify the new one. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the glyph image, after increasing its reference */ - /* count. This ensures that the node (as well as the @FT_Glyph) will */ - /* always be kept in the cache until you call @FTC_Node_Unref to */ - /* `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the @FT_Glyph could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ - /* Calls to @FT_Set_Char_Size and friends have no effect on cached */ - /* glyphs; you should always use the FreeType cache API instead. */ - /* */ + /************************************************************************** + * + * @function: + * FTC_ImageCache_LookupScaler + * + * @description: + * A variant of @FTC_ImageCache_Lookup that uses an @FTC_ScalerRec to + * specify the face ID and its size. + * + * @input: + * cache :: + * A handle to the source glyph image cache. + * + * scaler :: + * A pointer to a scaler descriptor. + * + * load_flags :: + * The corresponding load flags. + * + * gindex :: + * The glyph index to retrieve. + * + * @output: + * aglyph :: + * The corresponding @FT_Glyph object. 0~in case of failure. + * + * anode :: + * Used to return the address of the corresponding cache node after + * incrementing its reference count (see note below). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The returned glyph is owned and managed by the glyph image cache. + * Never try to transform or discard it manually! You can however create + * a copy with @FT_Glyph_Copy and modify the new one. + * + * If `anode` is _not_ `NULL`, it receives the address of the cache node + * containing the glyph image, after increasing its reference count. + * This ensures that the node (as well as the @FT_Glyph) will always be + * kept in the cache until you call @FTC_Node_Unref to 'release' it. + * + * If `anode` is `NULL`, the cache node is left unchanged, which means + * that the @FT_Glyph could be flushed out of the cache on the next call + * to one of the caching sub-system APIs. Don't assume that it is + * persistent! + * + * Calls to @FT_Set_Char_Size and friends have no effect on cached + * glyphs; you should always use the FreeType cache API instead. + */ FT_EXPORT( FT_Error ) FTC_ImageCache_LookupScaler( FTC_ImageCache cache, FTC_Scaler scaler, @@ -837,53 +850,60 @@ FT_BEGIN_HEADER FTC_Node *anode ); - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_SBit */ - /* */ - /* <Description> */ - /* A handle to a small bitmap descriptor. See the @FTC_SBitRec */ - /* structure for details. */ - /* */ + /************************************************************************** + * + * @type: + * FTC_SBit + * + * @description: + * A handle to a small bitmap descriptor. See the @FTC_SBitRec structure + * for details. + */ typedef struct FTC_SBitRec_* FTC_SBit; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FTC_SBitRec */ - /* */ - /* <Description> */ - /* A very compact structure used to describe a small glyph bitmap. */ - /* */ - /* <Fields> */ - /* width :: The bitmap width in pixels. */ - /* */ - /* height :: The bitmap height in pixels. */ - /* */ - /* left :: The horizontal distance from the pen position to the */ - /* left bitmap border (a.k.a. `left side bearing', or */ - /* `lsb'). */ - /* */ - /* top :: The vertical distance from the pen position (on the */ - /* baseline) to the upper bitmap border (a.k.a. `top */ - /* side bearing'). The distance is positive for upwards */ - /* y~coordinates. */ - /* */ - /* format :: The format of the glyph bitmap (monochrome or gray). */ - /* */ - /* max_grays :: Maximum gray level value (in the range 1 to~255). */ - /* */ - /* pitch :: The number of bytes per bitmap line. May be positive */ - /* or negative. */ - /* */ - /* xadvance :: The horizontal advance width in pixels. */ - /* */ - /* yadvance :: The vertical advance height in pixels. */ - /* */ - /* buffer :: A pointer to the bitmap pixels. */ - /* */ + /************************************************************************** + * + * @struct: + * FTC_SBitRec + * + * @description: + * A very compact structure used to describe a small glyph bitmap. + * + * @fields: + * width :: + * The bitmap width in pixels. + * + * height :: + * The bitmap height in pixels. + * + * left :: + * The horizontal distance from the pen position to the left bitmap + * border (a.k.a. 'left side bearing', or 'lsb'). + * + * top :: + * The vertical distance from the pen position (on the baseline) to the + * upper bitmap border (a.k.a. 'top side bearing'). The distance is + * positive for upwards y~coordinates. + * + * format :: + * The format of the glyph bitmap (monochrome or gray). + * + * max_grays :: + * Maximum gray level value (in the range 1 to~255). + * + * pitch :: + * The number of bytes per bitmap line. May be positive or negative. + * + * xadvance :: + * The horizontal advance width in pixels. + * + * yadvance :: + * The vertical advance height in pixels. + * + * buffer :: + * A pointer to the bitmap pixels. + */ typedef struct FTC_SBitRec_ { FT_Byte width; @@ -902,87 +922,93 @@ FT_BEGIN_HEADER } FTC_SBitRec; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_SBitCache */ - /* */ - /* <Description> */ - /* A handle to a small bitmap cache. These are special cache objects */ - /* used to store small glyph bitmaps (and anti-aliased pixmaps) in a */ - /* much more efficient way than the traditional glyph image cache */ - /* implemented by @FTC_ImageCache. */ - /* */ + /************************************************************************** + * + * @type: + * FTC_SBitCache + * + * @description: + * A handle to a small bitmap cache. These are special cache objects + * used to store small glyph bitmaps (and anti-aliased pixmaps) in a much + * more efficient way than the traditional glyph image cache implemented + * by @FTC_ImageCache. + */ typedef struct FTC_SBitCacheRec_* FTC_SBitCache; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_SBitCache_New */ - /* */ - /* <Description> */ - /* Create a new cache to store small glyph bitmaps. */ - /* */ - /* <Input> */ - /* manager :: A handle to the source cache manager. */ - /* */ - /* <Output> */ - /* acache :: A handle to the new sbit cache. NULL in case of error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FTC_SBitCache_New + * + * @description: + * Create a new cache to store small glyph bitmaps. + * + * @input: + * manager :: + * A handle to the source cache manager. + * + * @output: + * acache :: + * A handle to the new sbit cache. `NULL` in case of error. + * + * @return: + * FreeType error code. 0~means success. + */ FT_EXPORT( FT_Error ) FTC_SBitCache_New( FTC_Manager manager, FTC_SBitCache *acache ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_SBitCache_Lookup */ - /* */ - /* <Description> */ - /* Look up a given small glyph bitmap in a given sbit cache and */ - /* `lock' it to prevent its flushing from the cache until needed. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source sbit cache. */ - /* */ - /* type :: A pointer to the glyph image type descriptor. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* <Output> */ - /* sbit :: A handle to a small bitmap descriptor. */ - /* */ - /* anode :: Used to return the address of of the corresponding cache */ - /* node after incrementing its reference count (see note */ - /* below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The small bitmap descriptor and its bit buffer are owned by the */ - /* cache and should never be freed by the application. They might */ - /* as well disappear from memory on the next cache lookup, so don't */ - /* treat them as persistent data. */ - /* */ - /* The descriptor's `buffer' field is set to~0 to indicate a missing */ - /* glyph bitmap. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the bitmap, after increasing its reference count. */ - /* This ensures that the node (as well as the image) will always be */ - /* kept in the cache until you call @FTC_Node_Unref to `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the bitmap could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ + /************************************************************************** + * + * @function: + * FTC_SBitCache_Lookup + * + * @description: + * Look up a given small glyph bitmap in a given sbit cache and 'lock' it + * to prevent its flushing from the cache until needed. + * + * @input: + * cache :: + * A handle to the source sbit cache. + * + * type :: + * A pointer to the glyph image type descriptor. + * + * gindex :: + * The glyph index. + * + * @output: + * sbit :: + * A handle to a small bitmap descriptor. + * + * anode :: + * Used to return the address of the corresponding cache node after + * incrementing its reference count (see note below). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The small bitmap descriptor and its bit buffer are owned by the cache + * and should never be freed by the application. They might as well + * disappear from memory on the next cache lookup, so don't treat them as + * persistent data. + * + * The descriptor's `buffer` field is set to~0 to indicate a missing + * glyph bitmap. + * + * If `anode` is _not_ `NULL`, it receives the address of the cache node + * containing the bitmap, after increasing its reference count. This + * ensures that the node (as well as the image) will always be kept in + * the cache until you call @FTC_Node_Unref to 'release' it. + * + * If `anode` is `NULL`, the cache node is left unchanged, which means + * that the bitmap could be flushed out of the cache on the next call to + * one of the caching sub-system APIs. Don't assume that it is + * persistent! + */ FT_EXPORT( FT_Error ) FTC_SBitCache_Lookup( FTC_SBitCache cache, FTC_ImageType type, @@ -991,53 +1017,58 @@ FT_BEGIN_HEADER FTC_Node *anode ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_SBitCache_LookupScaler */ - /* */ - /* <Description> */ - /* A variant of @FTC_SBitCache_Lookup that uses an @FTC_ScalerRec */ - /* to specify the face ID and its size. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source sbit cache. */ - /* */ - /* scaler :: A pointer to the scaler descriptor. */ - /* */ - /* load_flags :: The corresponding load flags. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* <Output> */ - /* sbit :: A handle to a small bitmap descriptor. */ - /* */ - /* anode :: Used to return the address of of the corresponding */ - /* cache node after incrementing its reference count */ - /* (see note below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The small bitmap descriptor and its bit buffer are owned by the */ - /* cache and should never be freed by the application. They might */ - /* as well disappear from memory on the next cache lookup, so don't */ - /* treat them as persistent data. */ - /* */ - /* The descriptor's `buffer' field is set to~0 to indicate a missing */ - /* glyph bitmap. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the bitmap, after increasing its reference count. */ - /* This ensures that the node (as well as the image) will always be */ - /* kept in the cache until you call @FTC_Node_Unref to `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the bitmap could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ + /************************************************************************** + * + * @function: + * FTC_SBitCache_LookupScaler + * + * @description: + * A variant of @FTC_SBitCache_Lookup that uses an @FTC_ScalerRec to + * specify the face ID and its size. + * + * @input: + * cache :: + * A handle to the source sbit cache. + * + * scaler :: + * A pointer to the scaler descriptor. + * + * load_flags :: + * The corresponding load flags. + * + * gindex :: + * The glyph index. + * + * @output: + * sbit :: + * A handle to a small bitmap descriptor. + * + * anode :: + * Used to return the address of the corresponding cache node after + * incrementing its reference count (see note below). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The small bitmap descriptor and its bit buffer are owned by the cache + * and should never be freed by the application. They might as well + * disappear from memory on the next cache lookup, so don't treat them as + * persistent data. + * + * The descriptor's `buffer` field is set to~0 to indicate a missing + * glyph bitmap. + * + * If `anode` is _not_ `NULL`, it receives the address of the cache node + * containing the bitmap, after increasing its reference count. This + * ensures that the node (as well as the image) will always be kept in + * the cache until you call @FTC_Node_Unref to 'release' it. + * + * If `anode` is `NULL`, the cache node is left unchanged, which means + * that the bitmap could be flushed out of the cache on the next call to + * one of the caching sub-system APIs. Don't assume that it is + * persistent! + */ FT_EXPORT( FT_Error ) FTC_SBitCache_LookupScaler( FTC_SBitCache cache, FTC_Scaler scaler, @@ -1051,7 +1082,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTCACHE_H__ */ +#endif /* FTCACHE_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftcffdrv.h b/android/x86_64/include/freetype/ftcffdrv.h deleted file mode 100644 index f7031bc8..00000000 --- a/android/x86_64/include/freetype/ftcffdrv.h +++ /dev/null @@ -1,262 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftcffdrv.h */ -/* */ -/* FreeType API for controlling the CFF driver (specification only). */ -/* */ -/* Copyright 2013, 2014 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 __FTCFFDRV_H__ -#define __FTCFFDRV_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: - * cff_driver - * - * @title: - * The CFF driver - * - * @abstract: - * Controlling the CFF driver module. - * - * @description: - * While FreeType's CFF driver doesn't expose API functions by itself, - * it is possible to control its behaviour with @FT_Property_Set and - * @FT_Property_Get. The list below gives the available properties - * together with the necessary macros and structures. - * - * The CFF driver's module name is `cff'. - * - * *Hinting* *and* *antialiasing* *principles* *of* *the* *new* *engine* - * - * The rasterizer is positioning horizontal features (e.g., ascender - * height & x-height, or crossbars) on the pixel grid and minimizing the - * amount of antialiasing applied to them, while placing vertical - * features (vertical stems) on the pixel grid without hinting, thus - * representing the stem position and weight accurately. Sometimes the - * vertical stems may be only partially black. In this context, - * `antialiasing' means that stems are not positioned exactly on pixel - * borders, causing a fuzzy appearance. - * - * There are two principles behind this approach. - * - * 1) No hinting in the horizontal direction: Unlike `superhinted' - * TrueType, which changes glyph widths to accommodate regular - * inter-glyph spacing, Adobe's approach is `faithful to the design' in - * representing both the glyph width and the inter-glyph spacing - * designed for the font. This makes the screen display as close as it - * can be to the result one would get with infinite resolution, while - * preserving what is considered the key characteristics of each glyph. - * Note that the distances between unhinted and grid-fitted positions at - * small sizes are comparable to kerning values and thus would be - * noticeable (and distracting) while reading if hinting were applied. - * - * One of the reasons to not hint horizontally is antialiasing for LCD - * screens: The pixel geometry of modern displays supplies three - * vertical sub-pixels as the eye moves horizontally across each visible - * pixel. On devices where we can be certain this characteristic is - * present a rasterizer can take advantage of the sub-pixels to add - * increments of weight. In Western writing systems this turns out to - * be the more critical direction anyway; the weights and spacing of - * vertical stems (see above) are central to Armenian, Cyrillic, Greek, - * and Latin type designs. Even when the rasterizer uses greyscale - * antialiasing instead of color (a necessary compromise when one - * doesn't know the screen characteristics), the unhinted vertical - * features preserve the design's weight and spacing much better than - * aliased type would. - * - * 2) Aligment in the vertical direction: Weights and spacing along the - * y~axis are less critical; what is much more important is the visual - * alignment of related features (like cap-height and x-height). The - * sense of alignment for these is enhanced by the sharpness of grid-fit - * edges, while the cruder vertical resolution (full pixels instead of - * 1/3 pixels) is less of a problem. - * - * On the technical side, horizontal alignment zones for ascender, - * x-height, and other important height values (traditionally called - * `blue zones') as defined in the font are positioned independently, - * each being rounded to the nearest pixel edge, taking care of - * overshoot suppression at small sizes, stem darkening, and scaling. - * - * Hstems (this is, hint values defined in the font to help align - * horizontal features) that fall within a blue zone are said to be - * `captured' and are aligned to that zone. Uncaptured stems are moved - * in one of four ways, top edge up or down, bottom edge up or down. - * Unless there are conflicting hstems, the smallest movement is taken - * to minimize distortion. - * - * @order: - * hinting-engine - * no-stem-darkening - * darkening-parameters - * - */ - - - /************************************************************************** - * - * @property: - * hinting-engine - * - * @description: - * Thanks to Adobe, which contributed a new hinting (and parsing) - * engine, an application can select between `freetype' and `adobe' if - * compiled with CFF_CONFIG_OPTION_OLD_ENGINE. If this configuration - * macro isn't defined, `hinting-engine' does nothing. - * - * The default engine is `freetype' if CFF_CONFIG_OPTION_OLD_ENGINE is - * defined, and `adobe' otherwise. - * - * The following example code demonstrates how to select Adobe's hinting - * engine (omitting the error handling). - * - * { - * FT_Library library; - * FT_UInt hinting_engine = FT_CFF_HINTING_ADOBE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "cff", - * "hinting-engine", &hinting_engine ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - - /************************************************************************** - * - * @enum: - * FT_CFF_HINTING_XXX - * - * @description: - * A list of constants used for the @hinting-engine property to select - * the hinting engine for CFF fonts. - * - * @values: - * FT_CFF_HINTING_FREETYPE :: - * Use the old FreeType hinting engine. - * - * FT_CFF_HINTING_ADOBE :: - * Use the hinting engine contributed by Adobe. - * - */ -#define FT_CFF_HINTING_FREETYPE 0 -#define FT_CFF_HINTING_ADOBE 1 - - - /************************************************************************** - * - * @property: - * no-stem-darkening - * - * @description: - * By default, the Adobe CFF engine darkens stems at smaller sizes, - * regardless of hinting, to enhance contrast. This feature requires - * a rendering system with proper gamma correction. Setting this - * property, stem darkening gets switched off. - * - * Note that stem darkening is never applied if @FT_LOAD_NO_SCALE is set. - * - * { - * FT_Library library; - * FT_Bool no_stem_darkening = TRUE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "cff", - * "no-stem-darkening", &no_stem_darkening ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - - /************************************************************************** - * - * @property: - * darkening-parameters - * - * @description: - * By default, the Adobe CFF engine darkens stems as follows (if the - * `no-stem-darkening' property isn't set): - * - * { - * stem width <= 0.5px: darkening amount = 0.4px - * stem width = 1px: darkening amount = 0.275px - * stem width = 1.667px: darkening amount = 0.275px - * stem width >= 2.333px: darkening amount = 0px - * } - * - * and piecewise linear in-between. At configuration time, these four - * control points can be set with the macro - * `CFF_CONFIG_OPTION_DARKENING_PARAMETERS'. At runtime, the control - * points can be changed using the `darkening-parameters' property, as - * the following example demonstrates. - * - * { - * FT_Library library; - * FT_Int darken_params[8] = { 500, 300, // x1, y1 - * 1000, 200, // x2, y2 - * 1500, 100, // x3, y3 - * 2000, 0 }; // x4, y4 - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "cff", - * "darkening-parameters", darken_params ); - * } - * - * The x~values give the stem width, and the y~values the darkening - * amount. The unit is 1000th of pixels. All coordinate values must be - * positive; the x~values must be monotonically increasing; the - * y~values must be monotonically decreasing and smaller than or - * equal to 500 (corresponding to half a pixel); the slope of each - * linear piece must be shallower than -1 (e.g., -.4). - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - /* */ - - -FT_END_HEADER - - -#endif /* __FTCFFDRV_H__ */ - - -/* END */ diff --git a/android/x86_64/include/freetype/ftchapters.h b/android/x86_64/include/freetype/ftchapters.h index d333761c..2ee26973 100644 --- a/android/x86_64/include/freetype/ftchapters.h +++ b/android/x86_64/include/freetype/ftchapters.h @@ -1,121 +1,145 @@ -/***************************************************************************/ -/* */ -/* This file defines the structure of the FreeType reference. */ -/* It is used by the python script that generates the HTML files. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * This file defines the structure of the FreeType reference. + * It is used by the python script that generates the HTML files. + * + */ -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* general_remarks */ -/* */ -/* <Title> */ -/* General Remarks */ -/* */ -/* <Sections> */ -/* header_inclusion */ -/* user_allocation */ -/* */ -/***************************************************************************/ + /************************************************************************** + * + * @chapter: + * general_remarks + * + * @title: + * General Remarks + * + * @sections: + * header_inclusion + * user_allocation + * + */ -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* core_api */ -/* */ -/* <Title> */ -/* Core API */ -/* */ -/* <Sections> */ -/* version */ -/* basic_types */ -/* base_interface */ -/* glyph_variants */ -/* glyph_management */ -/* mac_specific */ -/* sizes_management */ -/* header_file_macros */ -/* */ -/***************************************************************************/ + /************************************************************************** + * + * @chapter: + * core_api + * + * @title: + * Core API + * + * @sections: + * version + * basic_types + * base_interface + * glyph_variants + * color_management + * layer_management + * glyph_management + * mac_specific + * sizes_management + * header_file_macros + * + */ -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* format_specific */ -/* */ -/* <Title> */ -/* Format-Specific API */ -/* */ -/* <Sections> */ -/* multiple_masters */ -/* truetype_tables */ -/* type1_tables */ -/* sfnt_names */ -/* bdf_fonts */ -/* cid_fonts */ -/* pfr_fonts */ -/* winfnt_fonts */ -/* font_formats */ -/* gasp_table */ -/* */ -/***************************************************************************/ + /************************************************************************** + * + * @chapter: + * format_specific + * + * @title: + * Format-Specific API + * + * @sections: + * multiple_masters + * truetype_tables + * type1_tables + * sfnt_names + * bdf_fonts + * cid_fonts + * pfr_fonts + * winfnt_fonts + * font_formats + * gasp_table + * + */ -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* module_specific */ -/* */ -/* <Title> */ -/* Controlling FreeType Modules */ -/* */ -/* <Sections> */ -/* auto_hinter */ -/* cff_driver */ -/* tt_driver */ -/* */ -/***************************************************************************/ + /************************************************************************** + * + * @chapter: + * module_specific + * + * @title: + * Controlling FreeType Modules + * + * @sections: + * auto_hinter + * cff_driver + * t1_cid_driver + * tt_driver + * pcf_driver + * properties + * parameter_tags + * lcd_rendering + * + */ -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* cache_subsystem */ -/* */ -/* <Title> */ -/* Cache Sub-System */ -/* */ -/* <Sections> */ -/* cache_subsystem */ -/* */ -/***************************************************************************/ + /************************************************************************** + * + * @chapter: + * cache_subsystem + * + * @title: + * Cache Sub-System + * + * @sections: + * cache_subsystem + * + */ -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* support_api */ -/* */ -/* <Title> */ -/* Support API */ -/* */ -/* <Sections> */ -/* computations */ -/* list_processing */ -/* outline_processing */ -/* quick_advance */ -/* bitmap_handling */ -/* raster */ -/* glyph_stroker */ -/* system_interface */ -/* module_management */ -/* gzip */ -/* lzw */ -/* bzip2 */ -/* lcd_filtering */ -/* */ -/***************************************************************************/ + /************************************************************************** + * + * @chapter: + * support_api + * + * @title: + * Support API + * + * @sections: + * computations + * list_processing + * outline_processing + * quick_advance + * bitmap_handling + * raster + * glyph_stroker + * system_interface + * module_management + * gzip + * lzw + * bzip2 + * + */ + + + /************************************************************************** + * + * @chapter: + * error_codes + * + * @title: + * Error Codes + * + * @sections: + * error_enumerations + * error_code_values + * + */ + + +/* END */ diff --git a/android/x86_64/include/freetype/ftcid.h b/android/x86_64/include/freetype/ftcid.h index 17550d87..2336a570 100644 --- a/android/x86_64/include/freetype/ftcid.h +++ b/android/x86_64/include/freetype/ftcid.h @@ -1,24 +1,25 @@ -/***************************************************************************/ -/* */ -/* ftcid.h */ -/* */ -/* FreeType API for accessing CID font information (specification). */ -/* */ -/* Copyright 2007, 2009 by Dereg Clegg, Michael Toftdal. */ -/* */ -/* 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftcid.h + * + * FreeType API for accessing CID font information (specification). + * + * Copyright (C) 2007-2019 by + * Dereg Clegg and Michael Toftdal. + * + * 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 __FTCID_H__ -#define __FTCID_H__ +#ifndef FTCID_H_ +#define FTCID_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -31,25 +32,25 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* cid_fonts */ - /* */ - /* <Title> */ - /* CID Fonts */ - /* */ - /* <Abstract> */ - /* CID-keyed font specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of CID-keyed font specific */ - /* functions. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * cid_fonts + * + * @title: + * CID Fonts + * + * @abstract: + * CID-keyed font-specific API. + * + * @description: + * This section contains the declaration of CID-keyed font-specific + * functions. + * + */ - /********************************************************************** + /************************************************************************** * * @function: * FT_Get_CID_Registry_Ordering_Supplement @@ -60,17 +61,17 @@ FT_BEGIN_HEADER * * @input: * face :: - * A handle to the input face. + * A handle to the input face. * * @output: * registry :: - * The registry, as a C~string, owned by the face. + * The registry, as a C~string, owned by the face. * * ordering :: - * The ordering, as a C~string, owned by the face. + * The ordering, as a C~string, owned by the face. * * supplement :: - * The supplement. + * The supplement. * * @return: * FreeType error code. 0~means success. @@ -86,33 +87,33 @@ FT_BEGIN_HEADER FT_Get_CID_Registry_Ordering_Supplement( FT_Face face, const char* *registry, const char* *ordering, - FT_Int *supplement); + FT_Int *supplement ); - /********************************************************************** + /************************************************************************** * * @function: * FT_Get_CID_Is_Internally_CID_Keyed * * @description: - * Retrieve the type of the input face, CID keyed or not. In - * constrast to the @FT_IS_CID_KEYED macro this function returns - * successfully also for CID-keyed fonts in an SNFT wrapper. + * Retrieve the type of the input face, CID keyed or not. In contrast + * to the @FT_IS_CID_KEYED macro this function returns successfully also + * for CID-keyed fonts in an SFNT wrapper. * * @input: * face :: - * A handle to the input face. + * A handle to the input face. * * @output: * is_cid :: - * The type of the face as an @FT_Bool. + * The type of the face as an @FT_Bool. * * @return: * FreeType error code. 0~means success. * * @note: - * This function only works with CID faces and OpenType fonts, - * returning an error otherwise. + * This function only works with CID faces and OpenType fonts, returning + * an error otherwise. * * @since: * 2.3.9 @@ -122,7 +123,7 @@ FT_BEGIN_HEADER FT_Bool *is_cid ); - /********************************************************************** + /************************************************************************** * * @function: * FT_Get_CID_From_Glyph_Index @@ -132,21 +133,21 @@ FT_BEGIN_HEADER * * @input: * face :: - * A handle to the input face. + * A handle to the input face. * * glyph_index :: - * The input glyph index. + * The input glyph index. * * @output: * cid :: - * The CID as an @FT_UInt. + * The CID as an @FT_UInt. * * @return: * FreeType error code. 0~means success. * * @note: - * This function only works with CID faces and OpenType fonts, - * returning an error otherwise. + * This function only works with CID faces and OpenType fonts, returning + * an error otherwise. * * @since: * 2.3.9 @@ -161,7 +162,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTCID_H__ */ +#endif /* FTCID_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftcolor.h b/android/x86_64/include/freetype/ftcolor.h new file mode 100644 index 00000000..6f8b3f9a --- /dev/null +++ b/android/x86_64/include/freetype/ftcolor.h @@ -0,0 +1,311 @@ +/**************************************************************************** + * + * ftcolor.h + * + * FreeType's glyph color management (specification). + * + * Copyright (C) 2018-2019 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 FTCOLOR_H_ +#define FTCOLOR_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: + * color_management + * + * @title: + * Glyph Color Management + * + * @abstract: + * Retrieving and manipulating OpenType's 'CPAL' table data. + * + * @description: + * The functions described here allow access and manipulation of color + * palette entries in OpenType's 'CPAL' tables. + */ + + + /************************************************************************** + * + * @struct: + * FT_Color + * + * @description: + * This structure models a BGRA color value of a 'CPAL' palette entry. + * + * The used color space is sRGB; the colors are not pre-multiplied, and + * alpha values must be explicitly set. + * + * @fields: + * blue :: + * Blue value. + * + * green :: + * Green value. + * + * red :: + * Red value. + * + * alpha :: + * Alpha value, giving the red, green, and blue color's opacity. + * + * @since: + * 2.10 + */ + typedef struct FT_Color_ + { + FT_Byte blue; + FT_Byte green; + FT_Byte red; + FT_Byte alpha; + + } FT_Color; + + + /************************************************************************** + * + * @enum: + * FT_PALETTE_XXX + * + * @description: + * A list of bit field constants used in the `palette_flags` array of the + * @FT_Palette_Data structure to indicate for which background a palette + * with a given index is usable. + * + * @values: + * FT_PALETTE_FOR_LIGHT_BACKGROUND :: + * The palette is appropriate to use when displaying the font on a + * light background such as white. + * + * FT_PALETTE_FOR_DARK_BACKGROUND :: + * The palette is appropriate to use when displaying the font on a dark + * background such as black. + * + * @since: + * 2.10 + */ +#define FT_PALETTE_FOR_LIGHT_BACKGROUND 0x01 +#define FT_PALETTE_FOR_DARK_BACKGROUND 0x02 + + + /************************************************************************** + * + * @struct: + * FT_Palette_Data + * + * @description: + * This structure holds the data of the 'CPAL' table. + * + * @fields: + * num_palettes :: + * The number of palettes. + * + * palette_name_ids :: + * A read-only array of palette name IDs with `num_palettes` elements, + * corresponding to entries like 'dark' or 'light' in the font's 'name' + * table. + * + * An empty name ID in the 'CPAL' table gets represented as value + * 0xFFFF. + * + * `NULL` if the font's 'CPAL' table doesn't contain appropriate data. + * + * palette_flags :: + * A read-only array of palette flags with `num_palettes` elements. + * Possible values are an ORed combination of + * @FT_PALETTE_FOR_LIGHT_BACKGROUND and + * @FT_PALETTE_FOR_DARK_BACKGROUND. + * + * `NULL` if the font's 'CPAL' table doesn't contain appropriate data. + * + * num_palette_entries :: + * The number of entries in a single palette. All palettes have the + * same size. + * + * palette_entry_name_ids :: + * A read-only array of palette entry name IDs with + * `num_palette_entries`. In each palette, entries with the same index + * have the same function. For example, index~0 might correspond to + * string 'outline' in the font's 'name' table to indicate that this + * palette entry is used for outlines, index~1 might correspond to + * 'fill' to indicate the filling color palette entry, etc. + * + * An empty entry name ID in the 'CPAL' table gets represented as value + * 0xFFFF. + * + * `NULL` if the font's 'CPAL' table doesn't contain appropriate data. + * + * @note: + * Use function @FT_Get_Sfnt_Name to map name IDs and entry name IDs to + * name strings. + * + * @since: + * 2.10 + */ + typedef struct FT_Palette_Data_ { + FT_UShort num_palettes; + const FT_UShort* palette_name_ids; + const FT_UShort* palette_flags; + + FT_UShort num_palette_entries; + const FT_UShort* palette_entry_name_ids; + + } FT_Palette_Data; + + + /************************************************************************** + * + * @function: + * FT_Palette_Data_Get + * + * @description: + * Retrieve the face's color palette data. + * + * @input: + * face :: + * The source face handle. + * + * @output: + * apalette :: + * A pointer to an @FT_Palette_Data structure. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * All arrays in the returned @FT_Palette_Data structure are read-only. + * + * This function always returns an error if the config macro + * `TT_CONFIG_OPTION_COLOR_LAYERS` is not defined in `ftoption.h`. + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Error ) + FT_Palette_Data_Get( FT_Face face, + FT_Palette_Data *apalette ); + + + /************************************************************************** + * + * @function: + * FT_Palette_Select + * + * @description: + * This function has two purposes. + * + * (1) It activates a palette for rendering color glyphs, and + * + * (2) it retrieves all (unmodified) color entries of this palette. This + * function returns a read-write array, which means that a calling + * application can modify the palette entries on demand. + * + * A corollary of (2) is that calling the function, then modifying some + * values, then calling the function again with the same arguments resets + * all color entries to the original 'CPAL' values; all user modifications + * are lost. + * + * @input: + * face :: + * The source face handle. + * + * palette_index :: + * The palette index. + * + * @output: + * apalette :: + * An array of color entries for a palette with index `palette_index`, + * having `num_palette_entries` elements (as found in the + * `FT_Palette_Data` structure). If `apalette` is set to `NULL`, no + * array gets returned (and no color entries can be modified). + * + * In case the font doesn't support color palettes, `NULL` is returned. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The array pointed to by `apalette_entries` is owned and managed by + * FreeType. + * + * This function always returns an error if the config macro + * `TT_CONFIG_OPTION_COLOR_LAYERS` is not defined in `ftoption.h`. + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Error ) + FT_Palette_Select( FT_Face face, + FT_UShort palette_index, + FT_Color* *apalette ); + + + /************************************************************************** + * + * @function: + * FT_Palette_Set_Foreground_Color + * + * @description: + * 'COLR' uses palette index 0xFFFF to indicate a 'text foreground + * color'. This function sets this value. + * + * @input: + * face :: + * The source face handle. + * + * foreground_color :: + * An `FT_Color` structure to define the text foreground color. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If this function isn't called, the text foreground color is set to + * white opaque (BGRA value 0xFFFFFFFF) if + * @FT_PALETTE_FOR_DARK_BACKGROUND is present for the current palette, + * and black opaque (BGRA value 0x000000FF) otherwise, including the case + * that no palette types are available in the 'CPAL' table. + * + * This function always returns an error if the config macro + * `TT_CONFIG_OPTION_COLOR_LAYERS` is not defined in `ftoption.h`. + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Error ) + FT_Palette_Set_Foreground_Color( FT_Face face, + FT_Color foreground_color ); + + /* */ + + +FT_END_HEADER + +#endif /* FTCOLOR_H_ */ + + +/* END */ diff --git a/android/x86_64/include/freetype/ftdriver.h b/android/x86_64/include/freetype/ftdriver.h new file mode 100644 index 00000000..260732ed --- /dev/null +++ b/android/x86_64/include/freetype/ftdriver.h @@ -0,0 +1,1232 @@ +/**************************************************************************** + * + * ftdriver.h + * + * FreeType API for controlling driver modules (specification only). + * + * Copyright (C) 2017-2019 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 FTDRIVER_H_ +#define FTDRIVER_H_ + +#include "ft2build.h" +#include FT_FREETYPE_H +#include FT_PARAMETER_TAGS_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: + * auto_hinter + * + * @title: + * The auto-hinter + * + * @abstract: + * Controlling the auto-hinting module. + * + * @description: + * While FreeType's auto-hinter doesn't expose API functions by itself, + * it is possible to control its behaviour with @FT_Property_Set and + * @FT_Property_Get. The following lists the available properties + * together with the necessary macros and structures. + * + * Note that the auto-hinter's module name is 'autofitter' for historical + * reasons. + * + * Available properties are @increase-x-height, @no-stem-darkening + * (experimental), @darkening-parameters (experimental), @warping + * (experimental), @glyph-to-script-map (experimental), @fallback-script + * (experimental), and @default-script (experimental), as documented in + * the @properties section. + * + */ + + + /************************************************************************** + * + * @section: + * cff_driver + * + * @title: + * The CFF driver + * + * @abstract: + * Controlling the CFF driver module. + * + * @description: + * While FreeType's CFF driver doesn't expose API functions by itself, it + * is possible to control its behaviour with @FT_Property_Set and + * @FT_Property_Get. + * + * The CFF driver's module name is 'cff'. + * + * Available properties are @hinting-engine, @no-stem-darkening, + * @darkening-parameters, and @random-seed, as documented in the + * @properties section. + * + * + * **Hinting and antialiasing principles of the new engine** + * + * The rasterizer is positioning horizontal features (e.g., ascender + * height & x-height, or crossbars) on the pixel grid and minimizing the + * amount of antialiasing applied to them, while placing vertical + * features (vertical stems) on the pixel grid without hinting, thus + * representing the stem position and weight accurately. Sometimes the + * vertical stems may be only partially black. In this context, + * 'antialiasing' means that stems are not positioned exactly on pixel + * borders, causing a fuzzy appearance. + * + * There are two principles behind this approach. + * + * 1) No hinting in the horizontal direction: Unlike 'superhinted' + * TrueType, which changes glyph widths to accommodate regular + * inter-glyph spacing, Adobe's approach is 'faithful to the design' in + * representing both the glyph width and the inter-glyph spacing designed + * for the font. This makes the screen display as close as it can be to + * the result one would get with infinite resolution, while preserving + * what is considered the key characteristics of each glyph. Note that + * the distances between unhinted and grid-fitted positions at small + * sizes are comparable to kerning values and thus would be noticeable + * (and distracting) while reading if hinting were applied. + * + * One of the reasons to not hint horizontally is antialiasing for LCD + * screens: The pixel geometry of modern displays supplies three vertical + * subpixels as the eye moves horizontally across each visible pixel. On + * devices where we can be certain this characteristic is present a + * rasterizer can take advantage of the subpixels to add increments of + * weight. In Western writing systems this turns out to be the more + * critical direction anyway; the weights and spacing of vertical stems + * (see above) are central to Armenian, Cyrillic, Greek, and Latin type + * designs. Even when the rasterizer uses greyscale antialiasing instead + * of color (a necessary compromise when one doesn't know the screen + * characteristics), the unhinted vertical features preserve the design's + * weight and spacing much better than aliased type would. + * + * 2) Alignment in the vertical direction: Weights and spacing along the + * y~axis are less critical; what is much more important is the visual + * alignment of related features (like cap-height and x-height). The + * sense of alignment for these is enhanced by the sharpness of grid-fit + * edges, while the cruder vertical resolution (full pixels instead of + * 1/3 pixels) is less of a problem. + * + * On the technical side, horizontal alignment zones for ascender, + * x-height, and other important height values (traditionally called + * 'blue zones') as defined in the font are positioned independently, + * each being rounded to the nearest pixel edge, taking care of overshoot + * suppression at small sizes, stem darkening, and scaling. + * + * Hstems (this is, hint values defined in the font to help align + * horizontal features) that fall within a blue zone are said to be + * 'captured' and are aligned to that zone. Uncaptured stems are moved + * in one of four ways, top edge up or down, bottom edge up or down. + * Unless there are conflicting hstems, the smallest movement is taken to + * minimize distortion. + * + */ + + + /************************************************************************** + * + * @section: + * pcf_driver + * + * @title: + * The PCF driver + * + * @abstract: + * Controlling the PCF driver module. + * + * @description: + * While FreeType's PCF driver doesn't expose API functions by itself, it + * is possible to control its behaviour with @FT_Property_Set and + * @FT_Property_Get. Right now, there is a single property + * @no-long-family-names available if FreeType is compiled with + * PCF_CONFIG_OPTION_LONG_FAMILY_NAMES. + * + * The PCF driver's module name is 'pcf'. + * + */ + + + /************************************************************************** + * + * @section: + * t1_cid_driver + * + * @title: + * The Type 1 and CID drivers + * + * @abstract: + * Controlling the Type~1 and CID driver modules. + * + * @description: + * It is possible to control the behaviour of FreeType's Type~1 and + * Type~1 CID drivers with @FT_Property_Set and @FT_Property_Get. + * + * Behind the scenes, both drivers use the Adobe CFF engine for hinting; + * however, the used properties must be specified separately. + * + * The Type~1 driver's module name is 'type1'; the CID driver's module + * name is 't1cid'. + * + * Available properties are @hinting-engine, @no-stem-darkening, + * @darkening-parameters, and @random-seed, as documented in the + * @properties section. + * + * Please see the @cff_driver section for more details on the new hinting + * engine. + * + */ + + + /************************************************************************** + * + * @section: + * tt_driver + * + * @title: + * The TrueType driver + * + * @abstract: + * Controlling the TrueType driver module. + * + * @description: + * While FreeType's TrueType driver doesn't expose API functions by + * itself, it is possible to control its behaviour with @FT_Property_Set + * and @FT_Property_Get. The following lists the available properties + * together with the necessary macros and structures. + * + * The TrueType driver's module name is 'truetype'. + * + * A single property @interpreter-version is available, as documented in + * the @properties section. + * + * We start with a list of definitions, kindly provided by Greg + * Hitchcock. + * + * _Bi-Level Rendering_ + * + * Monochromatic rendering, exclusively used in the early days of + * TrueType by both Apple and Microsoft. Microsoft's GDI interface + * supported hinting of the right-side bearing point, such that the + * advance width could be non-linear. Most often this was done to + * achieve some level of glyph symmetry. To enable reasonable + * performance (e.g., not having to run hinting on all glyphs just to get + * the widths) there was a bit in the head table indicating if the side + * bearing was hinted, and additional tables, 'hdmx' and 'LTSH', to cache + * hinting widths across multiple sizes and device aspect ratios. + * + * _Font Smoothing_ + * + * Microsoft's GDI implementation of anti-aliasing. Not traditional + * anti-aliasing as the outlines were hinted before the sampling. The + * widths matched the bi-level rendering. + * + * _ClearType Rendering_ + * + * Technique that uses physical subpixels to improve rendering on LCD + * (and other) displays. Because of the higher resolution, many methods + * of improving symmetry in glyphs through hinting the right-side bearing + * were no longer necessary. This lead to what GDI calls 'natural + * widths' ClearType, see + * http://rastertragedy.com/RTRCh4.htm#Sec21. Since hinting + * has extra resolution, most non-linearity went away, but it is still + * possible for hints to change the advance widths in this mode. + * + * _ClearType Compatible Widths_ + * + * One of the earliest challenges with ClearType was allowing the + * implementation in GDI to be selected without requiring all UI and + * documents to reflow. To address this, a compatible method of + * rendering ClearType was added where the font hints are executed once + * to determine the width in bi-level rendering, and then re-run in + * ClearType, with the difference in widths being absorbed in the font + * hints for ClearType (mostly in the white space of hints); see + * http://rastertragedy.com/RTRCh4.htm#Sec20. Somewhat by + * definition, compatible width ClearType allows for non-linear widths, + * but only when the bi-level version has non-linear widths. + * + * _ClearType Subpixel Positioning_ + * + * One of the nice benefits of ClearType is the ability to more crisply + * display fractional widths; unfortunately, the GDI model of integer + * bitmaps did not support this. However, the WPF and Direct Write + * frameworks do support fractional widths. DWrite calls this 'natural + * mode', not to be confused with GDI's 'natural widths'. Subpixel + * positioning, in the current implementation of Direct Write, + * unfortunately does not support hinted advance widths, see + * http://rastertragedy.com/RTRCh4.htm#Sec22. Note that the + * TrueType interpreter fully allows the advance width to be adjusted in + * this mode, just the DWrite client will ignore those changes. + * + * _ClearType Backward Compatibility_ + * + * This is a set of exceptions made in the TrueType interpreter to + * minimize hinting techniques that were problematic with the extra + * resolution of ClearType; see + * http://rastertragedy.com/RTRCh4.htm#Sec1 and + * https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx. + * This technique is not to be confused with ClearType compatible widths. + * ClearType backward compatibility has no direct impact on changing + * advance widths, but there might be an indirect impact on disabling + * some deltas. This could be worked around in backward compatibility + * mode. + * + * _Native ClearType Mode_ + * + * (Not to be confused with 'natural widths'.) This mode removes all the + * exceptions in the TrueType interpreter when running with ClearType. + * Any issues on widths would still apply, though. + * + */ + + + /************************************************************************** + * + * @section: + * properties + * + * @title: + * Driver properties + * + * @abstract: + * Controlling driver modules. + * + * @description: + * Driver modules can be controlled by setting and unsetting properties, + * using the functions @FT_Property_Set and @FT_Property_Get. This + * section documents the available properties, together with auxiliary + * macros and structures. + * + */ + + + /************************************************************************** + * + * @enum: + * FT_HINTING_XXX + * + * @description: + * A list of constants used for the @hinting-engine property to select + * the hinting engine for CFF, Type~1, and CID fonts. + * + * @values: + * FT_HINTING_FREETYPE :: + * Use the old FreeType hinting engine. + * + * FT_HINTING_ADOBE :: + * Use the hinting engine contributed by Adobe. + * + * @since: + * 2.9 + * + */ +#define FT_HINTING_FREETYPE 0 +#define FT_HINTING_ADOBE 1 + + /* these constants (introduced in 2.4.12) are deprecated */ +#define FT_CFF_HINTING_FREETYPE FT_HINTING_FREETYPE +#define FT_CFF_HINTING_ADOBE FT_HINTING_ADOBE + + + /************************************************************************** + * + * @property: + * hinting-engine + * + * @description: + * Thanks to Adobe, which contributed a new hinting (and parsing) engine, + * an application can select between 'freetype' and 'adobe' if compiled + * with `CFF_CONFIG_OPTION_OLD_ENGINE`. If this configuration macro + * isn't defined, 'hinting-engine' does nothing. + * + * The same holds for the Type~1 and CID modules if compiled with + * `T1_CONFIG_OPTION_OLD_ENGINE`. + * + * For the 'cff' module, the default engine is 'freetype' if + * `CFF_CONFIG_OPTION_OLD_ENGINE` is defined, and 'adobe' otherwise. + * + * For both the 'type1' and 't1cid' modules, the default engine is + * 'freetype' if `T1_CONFIG_OPTION_OLD_ENGINE` is defined, and 'adobe' + * otherwise. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * This property can be set via the `FREETYPE_PROPERTIES` environment + * variable (using values 'adobe' or 'freetype'). + * + * @example: + * The following example code demonstrates how to select Adobe's hinting + * engine for the 'cff' module (omitting the error handling). + * + * ``` + * FT_Library library; + * FT_UInt hinting_engine = FT_HINTING_ADOBE; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "cff", + * "hinting-engine", &hinting_engine ); + * ``` + * + * @since: + * 2.4.12 (for 'cff' module) + * + * 2.9 (for 'type1' and 't1cid' modules) + * + */ + + + /************************************************************************** + * + * @property: + * no-stem-darkening + * + * @description: + * All glyphs that pass through the auto-hinter will be emboldened unless + * this property is set to TRUE. The same is true for the CFF, Type~1, + * and CID font modules if the 'Adobe' engine is selected (which is the + * default). + * + * Stem darkening emboldens glyphs at smaller sizes to make them more + * readable on common low-DPI screens when using linear alpha blending + * and gamma correction, see @FT_Render_Glyph. When not using linear + * alpha blending and gamma correction, glyphs will appear heavy and + * fuzzy! + * + * Gamma correction essentially lightens fonts since shades of grey are + * shifted to higher pixel values (=~higher brightness) to match the + * original intention to the reality of our screens. The side-effect is + * that glyphs 'thin out'. Mac OS~X and Adobe's proprietary font + * rendering library implement a counter-measure: stem darkening at + * smaller sizes where shades of gray dominate. By emboldening a glyph + * slightly in relation to its pixel size, individual pixels get higher + * coverage of filled-in outlines and are therefore 'blacker'. This + * counteracts the 'thinning out' of glyphs, making text remain readable + * at smaller sizes. + * + * By default, the Adobe engines for CFF, Type~1, and CID fonts darken + * stems at smaller sizes, regardless of hinting, to enhance contrast. + * Setting this property, stem darkening gets switched off. + * + * For the auto-hinter, stem-darkening is experimental currently and thus + * switched off by default (this is, `no-stem-darkening` is set to TRUE + * by default). Total consistency with the CFF driver is not achieved + * right now because the emboldening method differs and glyphs must be + * scaled down on the Y-axis to keep outline points inside their + * precomputed blue zones. The smaller the size (especially 9ppem and + * down), the higher the loss of emboldening versus the CFF driver. + * + * Note that stem darkening is never applied if @FT_LOAD_NO_SCALE is set. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * This property can be set via the `FREETYPE_PROPERTIES` environment + * variable (using values 1 and 0 for 'on' and 'off', respectively). It + * can also be set per face using @FT_Face_Properties with + * @FT_PARAM_TAG_STEM_DARKENING. + * + * @example: + * ``` + * FT_Library library; + * FT_Bool no_stem_darkening = TRUE; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "cff", + * "no-stem-darkening", &no_stem_darkening ); + * ``` + * + * @since: + * 2.4.12 (for 'cff' module) + * + * 2.6.2 (for 'autofitter' module) + * + * 2.9 (for 'type1' and 't1cid' modules) + * + */ + + + /************************************************************************** + * + * @property: + * darkening-parameters + * + * @description: + * By default, the Adobe hinting engine, as used by the CFF, Type~1, and + * CID font drivers, darkens stems as follows (if the `no-stem-darkening` + * property isn't set): + * + * ``` + * stem width <= 0.5px: darkening amount = 0.4px + * stem width = 1px: darkening amount = 0.275px + * stem width = 1.667px: darkening amount = 0.275px + * stem width >= 2.333px: darkening amount = 0px + * ``` + * + * and piecewise linear in-between. At configuration time, these four + * control points can be set with the macro + * `CFF_CONFIG_OPTION_DARKENING_PARAMETERS`; the CFF, Type~1, and CID + * drivers share these values. At runtime, the control points can be + * changed using the `darkening-parameters` property (see the example + * below that demonstrates this for the Type~1 driver). + * + * The x~values give the stem width, and the y~values the darkening + * amount. The unit is 1000th of pixels. All coordinate values must be + * positive; the x~values must be monotonically increasing; the y~values + * must be monotonically decreasing and smaller than or equal to 500 + * (corresponding to half a pixel); the slope of each linear piece must + * be shallower than -1 (e.g., -.4). + * + * The auto-hinter provides this property, too, as an experimental + * feature. See @no-stem-darkening for more. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * This property can be set via the `FREETYPE_PROPERTIES` environment + * variable, using eight comma-separated integers without spaces. Here + * the above example, using `\` to break the line for readability. + * + * ``` + * FREETYPE_PROPERTIES=\ + * type1:darkening-parameters=500,300,1000,200,1500,100,2000,0 + * ``` + * + * @example: + * ``` + * FT_Library library; + * FT_Int darken_params[8] = { 500, 300, // x1, y1 + * 1000, 200, // x2, y2 + * 1500, 100, // x3, y3 + * 2000, 0 }; // x4, y4 + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "type1", + * "darkening-parameters", darken_params ); + * ``` + * + * @since: + * 2.5.1 (for 'cff' module) + * + * 2.6.2 (for 'autofitter' module) + * + * 2.9 (for 'type1' and 't1cid' modules) + * + */ + + + /************************************************************************** + * + * @property: + * random-seed + * + * @description: + * By default, the seed value for the CFF 'random' operator and the + * similar '0 28 callothersubr pop' command for the Type~1 and CID + * drivers is set to a random value. However, mainly for debugging + * purposes, it is often necessary to use a known value as a seed so that + * the pseudo-random number sequences generated by 'random' are + * repeatable. + * + * The `random-seed` property does that. Its argument is a signed 32bit + * integer; if the value is zero or negative, the seed given by the + * `intitialRandomSeed` private DICT operator in a CFF file gets used (or + * a default value if there is no such operator). If the value is + * positive, use it instead of `initialRandomSeed`, which is consequently + * ignored. + * + * @note: + * This property can be set via the `FREETYPE_PROPERTIES` environment + * variable. It can also be set per face using @FT_Face_Properties with + * @FT_PARAM_TAG_RANDOM_SEED. + * + * @since: + * 2.8 (for 'cff' module) + * + * 2.9 (for 'type1' and 't1cid' modules) + * + */ + + + /************************************************************************** + * + * @property: + * no-long-family-names + * + * @description: + * If `PCF_CONFIG_OPTION_LONG_FAMILY_NAMES` is active while compiling + * FreeType, the PCF driver constructs long family names. + * + * There are many PCF fonts just called 'Fixed' which look completely + * different, and which have nothing to do with each other. When + * selecting 'Fixed' in KDE or Gnome one gets results that appear rather + * random, the style changes often if one changes the size and one cannot + * select some fonts at all. The improve this situation, the PCF module + * prepends the foundry name (plus a space) to the family name. It also + * checks whether there are 'wide' characters; all put together, family + * names like 'Sony Fixed' or 'Misc Fixed Wide' are constructed. + * + * If `no-long-family-names` is set, this feature gets switched off. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * This property can be set via the `FREETYPE_PROPERTIES` environment + * variable (using values 1 and 0 for 'on' and 'off', respectively). + * + * @example: + * ``` + * FT_Library library; + * FT_Bool no_long_family_names = TRUE; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "pcf", + * "no-long-family-names", + * &no_long_family_names ); + * ``` + * + * @since: + * 2.8 + */ + + + /************************************************************************** + * + * @enum: + * TT_INTERPRETER_VERSION_XXX + * + * @description: + * A list of constants used for the @interpreter-version property to + * select the hinting engine for Truetype fonts. + * + * The numeric value in the constant names represents the version number + * as returned by the 'GETINFO' bytecode instruction. + * + * @values: + * TT_INTERPRETER_VERSION_35 :: + * Version~35 corresponds to MS rasterizer v.1.7 as used e.g. in + * Windows~98; only grayscale and B/W rasterizing is supported. + * + * TT_INTERPRETER_VERSION_38 :: + * Version~38 corresponds to MS rasterizer v.1.9; it is roughly + * equivalent to the hinting provided by DirectWrite ClearType (as can + * be found, for example, in the Internet Explorer~9 running on + * Windows~7). It is used in FreeType to select the 'Infinality' + * subpixel hinting code. The code may be removed in a future version. + * + * TT_INTERPRETER_VERSION_40 :: + * Version~40 corresponds to MS rasterizer v.2.1; it is roughly + * equivalent to the hinting provided by DirectWrite ClearType (as can + * be found, for example, in Microsoft's Edge Browser on Windows~10). + * It is used in FreeType to select the 'minimal' subpixel hinting + * code, a stripped-down and higher performance version of the + * 'Infinality' code. + * + * @note: + * This property controls the behaviour of the bytecode interpreter and + * thus how outlines get hinted. It does **not** control how glyph get + * rasterized! In particular, it does not control subpixel color + * filtering. + * + * If FreeType has not been compiled with the configuration option + * `TT_CONFIG_OPTION_SUBPIXEL_HINTING`, selecting version~38 or~40 causes + * an `FT_Err_Unimplemented_Feature` error. + * + * Depending on the graphics framework, Microsoft uses different bytecode + * and rendering engines. As a consequence, the version numbers returned + * by a call to the 'GETINFO' bytecode instruction are more convoluted + * than desired. + * + * Here are two tables that try to shed some light on the possible values + * for the MS rasterizer engine, together with the additional features + * introduced by it. + * + * ``` + * GETINFO framework version feature + * ------------------------------------------------------------------- + * 3 GDI (Win 3.1), v1.0 16-bit, first version + * TrueImage + * 33 GDI (Win NT 3.1), v1.5 32-bit + * HP Laserjet + * 34 GDI (Win 95) v1.6 font smoothing, + * new SCANTYPE opcode + * 35 GDI (Win 98/2000) v1.7 (UN)SCALED_COMPONENT_OFFSET + * bits in composite glyphs + * 36 MGDI (Win CE 2) v1.6+ classic ClearType + * 37 GDI (XP and later), v1.8 ClearType + * GDI+ old (before Vista) + * 38 GDI+ old (Vista, Win 7), v1.9 subpixel ClearType, + * WPF Y-direction ClearType, + * additional error checking + * 39 DWrite (before Win 8) v2.0 subpixel ClearType flags + * in GETINFO opcode, + * bug fixes + * 40 GDI+ (after Win 7), v2.1 Y-direction ClearType flag + * DWrite (Win 8) in GETINFO opcode, + * Gray ClearType + * ``` + * + * The 'version' field gives a rough orientation only, since some + * applications provided certain features much earlier (as an example, + * Microsoft Reader used subpixel and Y-direction ClearType already in + * Windows 2000). Similarly, updates to a given framework might include + * improved hinting support. + * + * ``` + * version sampling rendering comment + * x y x y + * -------------------------------------------------------------- + * v1.0 normal normal B/W B/W bi-level + * v1.6 high high gray gray grayscale + * v1.8 high normal color-filter B/W (GDI) ClearType + * v1.9 high high color-filter gray Color ClearType + * v2.1 high normal gray B/W Gray ClearType + * v2.1 high high gray gray Gray ClearType + * ``` + * + * Color and Gray ClearType are the two available variants of + * 'Y-direction ClearType', meaning grayscale rasterization along the + * Y-direction; the name used in the TrueType specification for this + * feature is 'symmetric smoothing'. 'Classic ClearType' is the original + * algorithm used before introducing a modified version in Win~XP. + * Another name for v1.6's grayscale rendering is 'font smoothing', and + * 'Color ClearType' is sometimes also called 'DWrite ClearType'. To + * differentiate between today's Color ClearType and the earlier + * ClearType variant with B/W rendering along the vertical axis, the + * latter is sometimes called 'GDI ClearType'. + * + * 'Normal' and 'high' sampling describe the (virtual) resolution to + * access the rasterized outline after the hinting process. 'Normal' + * means 1 sample per grid line (i.e., B/W). In the current Microsoft + * implementation, 'high' means an extra virtual resolution of 16x16 (or + * 16x1) grid lines per pixel for bytecode instructions like 'MIRP'. + * After hinting, these 16 grid lines are mapped to 6x5 (or 6x1) grid + * lines for color filtering if Color ClearType is activated. + * + * Note that 'Gray ClearType' is essentially the same as v1.6's grayscale + * rendering. However, the GETINFO instruction handles it differently: + * v1.6 returns bit~12 (hinting for grayscale), while v2.1 returns + * bits~13 (hinting for ClearType), 18 (symmetrical smoothing), and~19 + * (Gray ClearType). Also, this mode respects bits 2 and~3 for the + * version~1 gasp table exclusively (like Color ClearType), while v1.6 + * only respects the values of version~0 (bits 0 and~1). + * + * Keep in mind that the features of the above interpreter versions might + * not map exactly to FreeType features or behavior because it is a + * fundamentally different library with different internals. + * + */ +#define TT_INTERPRETER_VERSION_35 35 +#define TT_INTERPRETER_VERSION_38 38 +#define TT_INTERPRETER_VERSION_40 40 + + + /************************************************************************** + * + * @property: + * interpreter-version + * + * @description: + * Currently, three versions are available, two representing the bytecode + * interpreter with subpixel hinting support (old 'Infinality' code and + * new stripped-down and higher performance 'minimal' code) and one + * without, respectively. The default is subpixel support if + * `TT_CONFIG_OPTION_SUBPIXEL_HINTING` is defined, and no subpixel + * support otherwise (since it isn't available then). + * + * If subpixel hinting is on, many TrueType bytecode instructions behave + * differently compared to B/W or grayscale rendering (except if 'native + * ClearType' is selected by the font). Microsoft's main idea is to + * render at a much increased horizontal resolution, then sampling down + * the created output to subpixel precision. However, many older fonts + * are not suited to this and must be specially taken care of by applying + * (hardcoded) tweaks in Microsoft's interpreter. + * + * Details on subpixel hinting and some of the necessary tweaks can be + * found in Greg Hitchcock's whitepaper at + * 'https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'. + * Note that FreeType currently doesn't really 'subpixel hint' (6x1, 6x2, + * or 6x5 supersampling) like discussed in the paper. Depending on the + * chosen interpreter, it simply ignores instructions on vertical stems + * to arrive at very similar results. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * This property can be set via the `FREETYPE_PROPERTIES` environment + * variable (using values '35', '38', or '40'). + * + * @example: + * The following example code demonstrates how to deactivate subpixel + * hinting (omitting the error handling). + * + * ``` + * FT_Library library; + * FT_Face face; + * FT_UInt interpreter_version = TT_INTERPRETER_VERSION_35; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "truetype", + * "interpreter-version", + * &interpreter_version ); + * ``` + * + * @since: + * 2.5 + */ + + + /************************************************************************** + * + * @property: + * glyph-to-script-map + * + * @description: + * **Experimental only** + * + * The auto-hinter provides various script modules to hint glyphs. + * Examples of supported scripts are Latin or CJK. Before a glyph is + * auto-hinted, the Unicode character map of the font gets examined, and + * the script is then determined based on Unicode character ranges, see + * below. + * + * OpenType fonts, however, often provide much more glyphs than character + * codes (small caps, superscripts, ligatures, swashes, etc.), to be + * controlled by so-called 'features'. Handling OpenType features can be + * quite complicated and thus needs a separate library on top of + * FreeType. + * + * The mapping between glyph indices and scripts (in the auto-hinter + * sense, see the @FT_AUTOHINTER_SCRIPT_XXX values) is stored as an array + * with `num_glyphs` elements, as found in the font's @FT_Face structure. + * The `glyph-to-script-map` property returns a pointer to this array, + * which can be modified as needed. Note that the modification should + * happen before the first glyph gets processed by the auto-hinter so + * that the global analysis of the font shapes actually uses the modified + * mapping. + * + * @example: + * The following example code demonstrates how to access it (omitting the + * error handling). + * + * ``` + * FT_Library library; + * FT_Face face; + * FT_Prop_GlyphToScriptMap prop; + * + * + * FT_Init_FreeType( &library ); + * FT_New_Face( library, "foo.ttf", 0, &face ); + * + * prop.face = face; + * + * FT_Property_Get( library, "autofitter", + * "glyph-to-script-map", &prop ); + * + * // adjust `prop.map' as needed right here + * + * FT_Load_Glyph( face, ..., FT_LOAD_FORCE_AUTOHINT ); + * ``` + * + * @since: + * 2.4.11 + * + */ + + + /************************************************************************** + * + * @enum: + * FT_AUTOHINTER_SCRIPT_XXX + * + * @description: + * **Experimental only** + * + * A list of constants used for the @glyph-to-script-map property to + * specify the script submodule the auto-hinter should use for hinting a + * particular glyph. + * + * @values: + * FT_AUTOHINTER_SCRIPT_NONE :: + * Don't auto-hint this glyph. + * + * FT_AUTOHINTER_SCRIPT_LATIN :: + * Apply the latin auto-hinter. For the auto-hinter, 'latin' is a very + * broad term, including Cyrillic and Greek also since characters from + * those scripts share the same design constraints. + * + * By default, characters from the following Unicode ranges are + * assigned to this submodule. + * + * ``` + * U+0020 - U+007F // Basic Latin (no control characters) + * U+00A0 - U+00FF // Latin-1 Supplement (no control characters) + * U+0100 - U+017F // Latin Extended-A + * U+0180 - U+024F // Latin Extended-B + * U+0250 - U+02AF // IPA Extensions + * U+02B0 - U+02FF // Spacing Modifier Letters + * U+0300 - U+036F // Combining Diacritical Marks + * U+0370 - U+03FF // Greek and Coptic + * U+0400 - U+04FF // Cyrillic + * U+0500 - U+052F // Cyrillic Supplement + * U+1D00 - U+1D7F // Phonetic Extensions + * U+1D80 - U+1DBF // Phonetic Extensions Supplement + * U+1DC0 - U+1DFF // Combining Diacritical Marks Supplement + * U+1E00 - U+1EFF // Latin Extended Additional + * U+1F00 - U+1FFF // Greek Extended + * U+2000 - U+206F // General Punctuation + * U+2070 - U+209F // Superscripts and Subscripts + * U+20A0 - U+20CF // Currency Symbols + * U+2150 - U+218F // Number Forms + * U+2460 - U+24FF // Enclosed Alphanumerics + * U+2C60 - U+2C7F // Latin Extended-C + * U+2DE0 - U+2DFF // Cyrillic Extended-A + * U+2E00 - U+2E7F // Supplemental Punctuation + * U+A640 - U+A69F // Cyrillic Extended-B + * U+A720 - U+A7FF // Latin Extended-D + * U+FB00 - U+FB06 // Alphab. Present. Forms (Latin Ligatures) + * U+1D400 - U+1D7FF // Mathematical Alphanumeric Symbols + * U+1F100 - U+1F1FF // Enclosed Alphanumeric Supplement + * ``` + * + * FT_AUTOHINTER_SCRIPT_CJK :: + * Apply the CJK auto-hinter, covering Chinese, Japanese, Korean, old + * Vietnamese, and some other scripts. + * + * By default, characters from the following Unicode ranges are + * assigned to this submodule. + * + * ``` + * U+1100 - U+11FF // Hangul Jamo + * U+2E80 - U+2EFF // CJK Radicals Supplement + * U+2F00 - U+2FDF // Kangxi Radicals + * U+2FF0 - U+2FFF // Ideographic Description Characters + * U+3000 - U+303F // CJK Symbols and Punctuation + * U+3040 - U+309F // Hiragana + * U+30A0 - U+30FF // Katakana + * U+3100 - U+312F // Bopomofo + * U+3130 - U+318F // Hangul Compatibility Jamo + * U+3190 - U+319F // Kanbun + * U+31A0 - U+31BF // Bopomofo Extended + * U+31C0 - U+31EF // CJK Strokes + * U+31F0 - U+31FF // Katakana Phonetic Extensions + * U+3200 - U+32FF // Enclosed CJK Letters and Months + * U+3300 - U+33FF // CJK Compatibility + * U+3400 - U+4DBF // CJK Unified Ideographs Extension A + * U+4DC0 - U+4DFF // Yijing Hexagram Symbols + * U+4E00 - U+9FFF // CJK Unified Ideographs + * U+A960 - U+A97F // Hangul Jamo Extended-A + * U+AC00 - U+D7AF // Hangul Syllables + * U+D7B0 - U+D7FF // Hangul Jamo Extended-B + * U+F900 - U+FAFF // CJK Compatibility Ideographs + * U+FE10 - U+FE1F // Vertical forms + * U+FE30 - U+FE4F // CJK Compatibility Forms + * U+FF00 - U+FFEF // Halfwidth and Fullwidth Forms + * U+1B000 - U+1B0FF // Kana Supplement + * U+1D300 - U+1D35F // Tai Xuan Hing Symbols + * U+1F200 - U+1F2FF // Enclosed Ideographic Supplement + * U+20000 - U+2A6DF // CJK Unified Ideographs Extension B + * U+2A700 - U+2B73F // CJK Unified Ideographs Extension C + * U+2B740 - U+2B81F // CJK Unified Ideographs Extension D + * U+2F800 - U+2FA1F // CJK Compatibility Ideographs Supplement + * ``` + * + * FT_AUTOHINTER_SCRIPT_INDIC :: + * Apply the indic auto-hinter, covering all major scripts from the + * Indian sub-continent and some other related scripts like Thai, Lao, + * or Tibetan. + * + * By default, characters from the following Unicode ranges are + * assigned to this submodule. + * + * ``` + * U+0900 - U+0DFF // Indic Range + * U+0F00 - U+0FFF // Tibetan + * U+1900 - U+194F // Limbu + * U+1B80 - U+1BBF // Sundanese + * U+A800 - U+A82F // Syloti Nagri + * U+ABC0 - U+ABFF // Meetei Mayek + * U+11800 - U+118DF // Sharada + * ``` + * + * Note that currently Indic support is rudimentary only, missing blue + * zone support. + * + * @since: + * 2.4.11 + * + */ +#define FT_AUTOHINTER_SCRIPT_NONE 0 +#define FT_AUTOHINTER_SCRIPT_LATIN 1 +#define FT_AUTOHINTER_SCRIPT_CJK 2 +#define FT_AUTOHINTER_SCRIPT_INDIC 3 + + + /************************************************************************** + * + * @struct: + * FT_Prop_GlyphToScriptMap + * + * @description: + * **Experimental only** + * + * The data exchange structure for the @glyph-to-script-map property. + * + * @since: + * 2.4.11 + * + */ + typedef struct FT_Prop_GlyphToScriptMap_ + { + FT_Face face; + FT_UShort* map; + + } FT_Prop_GlyphToScriptMap; + + + /************************************************************************** + * + * @property: + * fallback-script + * + * @description: + * **Experimental only** + * + * If no auto-hinter script module can be assigned to a glyph, a fallback + * script gets assigned to it (see also the @glyph-to-script-map + * property). By default, this is @FT_AUTOHINTER_SCRIPT_CJK. Using the + * `fallback-script` property, this fallback value can be changed. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * It's important to use the right timing for changing this value: The + * creation of the glyph-to-script map that eventually uses the fallback + * script value gets triggered either by setting or reading a + * face-specific property like @glyph-to-script-map, or by auto-hinting + * any glyph from that face. In particular, if you have already created + * an @FT_Face structure but not loaded any glyph (using the + * auto-hinter), a change of the fallback script will affect this face. + * + * @example: + * ``` + * FT_Library library; + * FT_UInt fallback_script = FT_AUTOHINTER_SCRIPT_NONE; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "autofitter", + * "fallback-script", &fallback_script ); + * ``` + * + * @since: + * 2.4.11 + * + */ + + + /************************************************************************** + * + * @property: + * default-script + * + * @description: + * **Experimental only** + * + * If FreeType gets compiled with `FT_CONFIG_OPTION_USE_HARFBUZZ` to make + * the HarfBuzz library access OpenType features for getting better glyph + * coverages, this property sets the (auto-fitter) script to be used for + * the default (OpenType) script data of a font's GSUB table. Features + * for the default script are intended for all scripts not explicitly + * handled in GSUB; an example is a 'dlig' feature, containing the + * combination of the characters 'T', 'E', and 'L' to form a 'TEL' + * ligature. + * + * By default, this is @FT_AUTOHINTER_SCRIPT_LATIN. Using the + * `default-script` property, this default value can be changed. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * It's important to use the right timing for changing this value: The + * creation of the glyph-to-script map that eventually uses the default + * script value gets triggered either by setting or reading a + * face-specific property like @glyph-to-script-map, or by auto-hinting + * any glyph from that face. In particular, if you have already created + * an @FT_Face structure but not loaded any glyph (using the + * auto-hinter), a change of the default script will affect this face. + * + * @example: + * ``` + * FT_Library library; + * FT_UInt default_script = FT_AUTOHINTER_SCRIPT_NONE; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "autofitter", + * "default-script", &default_script ); + * ``` + * + * @since: + * 2.5.3 + * + */ + + + /************************************************************************** + * + * @property: + * increase-x-height + * + * @description: + * For ppem values in the range 6~<= ppem <= `increase-x-height`, round + * up the font's x~height much more often than normally. If the value is + * set to~0, which is the default, this feature is switched off. Use + * this property to improve the legibility of small font sizes if + * necessary. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * Set this value right after calling @FT_Set_Char_Size, but before + * loading any glyph (using the auto-hinter). + * + * @example: + * ``` + * FT_Library library; + * FT_Face face; + * FT_Prop_IncreaseXHeight prop; + * + * + * FT_Init_FreeType( &library ); + * FT_New_Face( library, "foo.ttf", 0, &face ); + * FT_Set_Char_Size( face, 10 * 64, 0, 72, 0 ); + * + * prop.face = face; + * prop.limit = 14; + * + * FT_Property_Set( library, "autofitter", + * "increase-x-height", &prop ); + * ``` + * + * @since: + * 2.4.11 + * + */ + + + /************************************************************************** + * + * @struct: + * FT_Prop_IncreaseXHeight + * + * @description: + * The data exchange structure for the @increase-x-height property. + * + */ + typedef struct FT_Prop_IncreaseXHeight_ + { + FT_Face face; + FT_UInt limit; + + } FT_Prop_IncreaseXHeight; + + + /************************************************************************** + * + * @property: + * warping + * + * @description: + * **Experimental only** + * + * If FreeType gets compiled with option `AF_CONFIG_OPTION_USE_WARPER` to + * activate the warp hinting code in the auto-hinter, this property + * switches warping on and off. + * + * Warping only works in 'normal' auto-hinting mode replacing it. The + * idea of the code is to slightly scale and shift a glyph along the + * non-hinted dimension (which is usually the horizontal axis) so that as + * much of its segments are aligned (more or less) to the grid. To find + * out a glyph's optimal scaling and shifting value, various parameter + * combinations are tried and scored. + * + * By default, warping is off. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * This property can be set via the `FREETYPE_PROPERTIES` environment + * variable (using values 1 and 0 for 'on' and 'off', respectively). + * + * The warping code can also change advance widths. Have a look at the + * `lsb_delta` and `rsb_delta` fields in the @FT_GlyphSlotRec structure + * for details on improving inter-glyph distances while rendering. + * + * Since warping is a global property of the auto-hinter it is best to + * change its value before rendering any face. Otherwise, you should + * reload all faces that get auto-hinted in 'normal' hinting mode. + * + * @example: + * This example shows how to switch on warping (omitting the error + * handling). + * + * ``` + * FT_Library library; + * FT_Bool warping = 1; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "autofitter", "warping", &warping ); + * ``` + * + * @since: + * 2.6 + * + */ + + + /* */ + + +FT_END_HEADER + + +#endif /* FTDRIVER_H_ */ + + +/* END */ diff --git a/android/x86_64/include/freetype/fterrdef.h b/android/x86_64/include/freetype/fterrdef.h index 99b2fade..9bc7dc65 100644 --- a/android/x86_64/include/freetype/fterrdef.h +++ b/android/x86_64/include/freetype/fterrdef.h @@ -1,33 +1,57 @@ -/***************************************************************************/ -/* */ -/* fterrdef.h */ -/* */ -/* FreeType error codes (specification). */ -/* */ -/* Copyright 2002, 2004, 2006, 2007, 2010-2013 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * fterrdef.h + * + * FreeType error codes (specification). + * + * Copyright (C) 2002-2019 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. + * + */ - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** LIST OF ERROR CODES/MESSAGES *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ + /************************************************************************** + * + * @section: + * error_code_values + * + * @title: + * Error Code Values + * + * @abstract: + * All possible error codes returned by FreeType functions. + * + * @description: + * The list below is taken verbatim from the file `fterrdef.h` (loaded + * automatically by including `FT_FREETYPE_H`). The first argument of the + * `FT_ERROR_DEF_` macro is the error label; by default, the prefix + * `FT_Err_` gets added so that you get error names like + * `FT_Err_Cannot_Open_Resource`. The second argument is the error code, + * and the last argument an error string, which is not used by FreeType. + * + * Within your application you should **only** use error names and + * **never** its numeric values! The latter might (and actually do) + * change in forthcoming FreeType versions. + * + * Macro `FT_NOERRORDEF_` defines `FT_Err_Ok`, which is always zero. See + * the 'Error Enumerations' subsection how to automatically generate a + * list of error strings. + * + */ - /* You need to define both FT_ERRORDEF_ and FT_NOERRORDEF_ before */ - /* including this file. */ - + /************************************************************************** + * + * @enum: + * FT_Err_XXX + * + */ /* generic errors */ @@ -206,6 +230,10 @@ "invalid PostScript (post) table format" ) FT_ERRORDEF_( Invalid_Post_Table, 0x9B, "invalid PostScript (post) table" ) + FT_ERRORDEF_( DEF_In_Glyf_Bytecode, 0x9C, + "found FDEF or IDEF opcode in glyf bytecode" ) + FT_ERRORDEF_( Missing_Bitmap, 0x9D, + "missing bitmap in strike" ) /* CFF, CID, and Type 1 errors */ @@ -218,7 +246,7 @@ FT_ERRORDEF_( No_Unicode_Glyph_Name, 0xA3, "no Unicode glyph name found" ) FT_ERRORDEF_( Glyph_Too_Big, 0xA4, - "glyph to big for hinting" ) + "glyph too big for hinting" ) /* BDF errors */ @@ -245,5 +273,7 @@ FT_ERRORDEF_( Corrupted_Font_Glyphs, 0xBA, "Font glyphs corrupted or missing fields" ) + /* */ + /* END */ diff --git a/android/x86_64/include/freetype/fterrors.h b/android/x86_64/include/freetype/fterrors.h index 0fa3e4dc..58f5a3ea 100644 --- a/android/x86_64/include/freetype/fterrors.h +++ b/android/x86_64/include/freetype/fterrors.h @@ -1,87 +1,125 @@ -/***************************************************************************/ -/* */ -/* fterrors.h */ -/* */ -/* FreeType error code handling (specification). */ -/* */ -/* Copyright 1996-2002, 2004, 2007, 2013 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * fterrors.h + * + * FreeType error code handling (specification). + * + * Copyright (C) 1996-2019 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. + * + */ - /*************************************************************************/ - /* */ - /* This special header file is used to define the handling of FT2 */ - /* enumeration constants. It can also be used to generate error message */ - /* strings with a small macro trick explained below. */ - /* */ - /* I - Error Formats */ - /* ----------------- */ - /* */ - /* The configuration macro FT_CONFIG_OPTION_USE_MODULE_ERRORS can be */ - /* defined in ftoption.h in order to make the higher byte indicate */ - /* the module where the error has happened (this is not compatible */ - /* with standard builds of FreeType 2). See the file `ftmoderr.h' for */ - /* more details. */ - /* */ - /* */ - /* II - Error Message strings */ - /* -------------------------- */ - /* */ - /* The error definitions below are made through special macros that */ - /* allow client applications to build a table of error message strings */ - /* if they need it. The strings are not included in a normal build of */ - /* FreeType 2 to save space (most client applications do not use */ - /* them). */ - /* */ - /* To do so, you have to define the following macros before including */ - /* this file: */ - /* */ - /* FT_ERROR_START_LIST :: */ - /* This macro is called before anything else to define the start of */ - /* the error list. It is followed by several FT_ERROR_DEF calls */ - /* (see below). */ - /* */ - /* FT_ERROR_DEF( e, v, s ) :: */ - /* This macro is called to define one single error. */ - /* `e' is the error code identifier (e.g. FT_Err_Invalid_Argument). */ - /* `v' is the error numerical value. */ - /* `s' is the corresponding error string. */ - /* */ - /* FT_ERROR_END_LIST :: */ - /* This macro ends the list. */ - /* */ - /* Additionally, you have to undefine __FTERRORS_H__ before #including */ - /* this file. */ - /* */ - /* Here is a simple example: */ - /* */ - /* { */ - /* #undef __FTERRORS_H__ */ - /* #define FT_ERRORDEF( e, v, s ) { e, s }, */ - /* #define FT_ERROR_START_LIST { */ - /* #define FT_ERROR_END_LIST { 0, 0 } }; */ - /* */ - /* const struct */ - /* { */ - /* int err_code; */ - /* const char* err_msg; */ - /* } ft_errors[] = */ - /* */ - /* #include FT_ERRORS_H */ - /* } */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * error_enumerations + * + * @title: + * Error Enumerations + * + * @abstract: + * How to handle errors and error strings. + * + * @description: + * The header file `fterrors.h` (which is automatically included by + * `freetype.h` defines the handling of FreeType's enumeration + * constants. It can also be used to generate error message strings + * with a small macro trick explained below. + * + * **Error Formats** + * + * The configuration macro `FT_CONFIG_OPTION_USE_MODULE_ERRORS` can be + * defined in `ftoption.h` in order to make the higher byte indicate the + * module where the error has happened (this is not compatible with + * standard builds of FreeType~2, however). See the file `ftmoderr.h` + * for more details. + * + * **Error Message Strings** + * + * Error definitions are set up with special macros that allow client + * applications to build a table of error message strings. The strings + * are not included in a normal build of FreeType~2 to save space (most + * client applications do not use them). + * + * To do so, you have to define the following macros before including + * this file. + * + * ``` + * FT_ERROR_START_LIST + * ``` + * + * This macro is called before anything else to define the start of the + * error list. It is followed by several `FT_ERROR_DEF` calls. + * + * ``` + * FT_ERROR_DEF( e, v, s ) + * ``` + * + * This macro is called to define one single error. 'e' is the error + * code identifier (e.g., `Invalid_Argument`), 'v' is the error's + * numerical value, and 's' is the corresponding error string. + * + * ``` + * FT_ERROR_END_LIST + * ``` + * + * This macro ends the list. + * + * Additionally, you have to undefine `FTERRORS_H_` before #including + * this file. + * + * Here is a simple example. + * + * ``` + * #undef FTERRORS_H_ + * #define FT_ERRORDEF( e, v, s ) { e, s }, + * #define FT_ERROR_START_LIST { + * #define FT_ERROR_END_LIST { 0, NULL } }; + * + * const struct + * { + * int err_code; + * const char* err_msg; + * } ft_errors[] = + * + * #include FT_ERRORS_H + * ``` + * + * An alternative to using an array is a switch statement. + * + * ``` + * #undef FTERRORS_H_ + * #define FT_ERROR_START_LIST switch ( error_code ) { + * #define FT_ERRORDEF( e, v, s ) case v: return s; + * #define FT_ERROR_END_LIST } + * ``` + * + * If you use `FT_CONFIG_OPTION_USE_MODULE_ERRORS`, `error_code` should + * be replaced with `FT_ERROR_BASE(error_code)` in the last example. + */ + /* */ -#ifndef __FTERRORS_H__ + /* In previous FreeType versions we used `__FTERRORS_H__`. However, */ + /* using two successive underscores in a non-system symbol name */ + /* violates the C (and C++) standard, so it was changed to the */ + /* current form. In spite of this, we have to make */ + /* */ + /* ``` */ + /* #undefine __FTERRORS_H__ */ + /* ``` */ + /* */ + /* work for backward compatibility. */ + /* */ +#if !( defined( FTERRORS_H_ ) && defined ( __FTERRORS_H__ ) ) +#define FTERRORS_H_ #define __FTERRORS_H__ @@ -102,7 +140,7 @@ /* FT_ERR_PREFIX is used as a prefix for error identifiers. */ - /* By default, we use `FT_Err_'. */ + /* By default, we use `FT_Err_`. */ /* */ #ifndef FT_ERR_PREFIX #define FT_ERR_PREFIX FT_Err_ @@ -130,6 +168,8 @@ /* */ #ifndef FT_ERRORDEF +#define FT_INCLUDE_ERR_PROTOS + #define FT_ERRORDEF( e, v, s ) e = v, #define FT_ERROR_START_LIST enum { #define FT_ERROR_END_LIST FT_ERR_CAT( FT_ERR_PREFIX, Max ) }; @@ -192,7 +232,54 @@ #undef FT_ERR_PREFIX #endif -#endif /* __FTERRORS_H__ */ + /* FT_INCLUDE_ERR_PROTOS: Control if function prototypes should be */ + /* included with `#include FT_ERRORS_H'. This is */ + /* only true where `FT_ERRORDEF` is undefined. */ + /* FT_ERR_PROTOS_DEFINED: Actual multiple-inclusion protection of */ + /* `fterrors.h`. */ +#ifdef FT_INCLUDE_ERR_PROTOS +#undef FT_INCLUDE_ERR_PROTOS + +#ifndef FT_ERR_PROTOS_DEFINED +#define FT_ERR_PROTOS_DEFINED + + + /************************************************************************** + * + * @function: + * FT_Error_String + * + * @description: + * Retrieve the description of a valid FreeType error code. + * + * @input: + * error_code :: + * A valid FreeType error code. + * + * @return: + * A C~string or `NULL`, if any error occurred. + * + * @note: + * FreeType has to be compiled with `FT_CONFIG_OPTION_ERROR_STRINGS` or + * `FT_DEBUG_LEVEL_ERROR` to get meaningful descriptions. + * 'error_string' will be `NULL` otherwise. + * + * Module identification will be ignored: + * + * ```c + * strcmp( FT_Error_String( FT_Err_Unknown_File_Format ), + * FT_Error_String( BDF_Err_Unknown_File_Format ) ) == 0; + * ``` + */ + FT_EXPORT( const char* ) + FT_Error_String( FT_Error error_code ); + + +#endif /* FT_ERR_PROTOS_DEFINED */ + +#endif /* FT_INCLUDE_ERR_PROTOS */ + +#endif /* !(FTERRORS_H_ && __FTERRORS_H__) */ /* END */ diff --git a/android/x86_64/include/freetype/ftfntfmt.h b/android/x86_64/include/freetype/ftfntfmt.h index bd423247..76479f5d 100644 --- a/android/x86_64/include/freetype/ftfntfmt.h +++ b/android/x86_64/include/freetype/ftfntfmt.h @@ -1,25 +1,25 @@ -/***************************************************************************/ -/* */ -/* ftfntfmt.h */ -/* */ -/* Support functions for font formats. */ -/* */ -/* Copyright 2002-2016 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftfntfmt.h + * + * Support functions for font formats. + * + * Copyright (C) 2002-2019 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 FTFNTFMT_H_ #define FTFNTFMT_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -32,49 +32,48 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* font_formats */ - /* */ - /* <Title> */ - /* Font Formats */ - /* */ - /* <Abstract> */ - /* Getting the font format. */ - /* */ - /* <Description> */ - /* The single function in this section can be used to get the font */ - /* format. Note that this information is not needed normally; */ - /* however, there are special cases (like in PDF devices) where it is */ - /* important to differentiate, in spite of FreeType's uniform API. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * font_formats + * + * @title: + * Font Formats + * + * @abstract: + * Getting the font format. + * + * @description: + * The single function in this section can be used to get the font format. + * Note that this information is not needed normally; however, there are + * special cases (like in PDF devices) where it is important to + * differentiate, in spite of FreeType's uniform API. + * + */ - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Font_Format */ - /* */ - /* <Description> */ - /* Return a string describing the format of a given face. Possible */ - /* values are `TrueType', `Type~1', `BDF', `PCF', `Type~42', */ - /* `CID~Type~1', `CFF', `PFR', and `Windows~FNT'. */ - /* */ - /* The return value is suitable to be used as an X11 FONT_PROPERTY. */ - /* */ - /* <Input> */ - /* face :: */ - /* Input face handle. */ - /* */ - /* <Return> */ - /* Font format string. NULL in case of error. */ - /* */ - /* <Note> */ - /* A deprecated name for the same function is */ - /* `FT_Get_X11_Font_Format'. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Font_Format + * + * @description: + * Return a string describing the format of a given face. Possible values + * are 'TrueType', 'Type~1', 'BDF', 'PCF', 'Type~42', 'CID~Type~1', 'CFF', + * 'PFR', and 'Windows~FNT'. + * + * The return value is suitable to be used as an X11 FONT_PROPERTY. + * + * @input: + * face :: + * Input face handle. + * + * @return: + * Font format string. `NULL` in case of error. + * + * @note: + * A deprecated name for the same function is `FT_Get_X11_Font_Format`. + */ FT_EXPORT( const char* ) FT_Get_Font_Format( FT_Face face ); diff --git a/android/x86_64/include/freetype/ftgasp.h b/android/x86_64/include/freetype/ftgasp.h index 3f3d7654..81c76f90 100644 --- a/android/x86_64/include/freetype/ftgasp.h +++ b/android/x86_64/include/freetype/ftgasp.h @@ -1,25 +1,25 @@ -/***************************************************************************/ -/* */ -/* ftgasp.h */ -/* */ -/* Access of TrueType's `gasp' table (specification). */ -/* */ -/* Copyright 2007, 2008, 2011 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftgasp.h + * + * Access of TrueType's 'gasp' table (specification). + * + * Copyright (C) 2007-2019 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 _FT_GASP_H_ -#define _FT_GASP_H_ +#ifndef FTGASP_H_ +#define FTGASP_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -29,7 +29,10 @@ #endif - /*************************************************************************** +FT_BEGIN_HEADER + + + /************************************************************************** * * @section: * gasp_table @@ -38,16 +41,16 @@ * Gasp Table * * @abstract: - * Retrieving TrueType `gasp' table entries. + * Retrieving TrueType 'gasp' table entries. * * @description: * The function @FT_Get_Gasp can be used to query a TrueType or OpenType - * font for specific entries in its `gasp' table, if any. This is - * mainly useful when implementing native TrueType hinting with the - * bytecode interpreter to duplicate the Windows text rendering results. + * font for specific entries in its 'gasp' table, if any. This is mainly + * useful when implementing native TrueType hinting with the bytecode + * interpreter to duplicate the Windows text rendering results. */ - /************************************************************************* + /************************************************************************** * * @enum: * FT_GASP_XXX @@ -63,7 +66,7 @@ * * FT_GASP_DO_GRIDFIT :: * Grid-fitting and hinting should be performed at the specified ppem. - * This *really* means TrueType bytecode interpretation. If this bit + * This **really** means TrueType bytecode interpretation. If this bit * is not set, no hinting gets applied. * * FT_GASP_DO_GRAY :: @@ -77,13 +80,13 @@ * Grid-fitting must be used with ClearType's symmetric smoothing. * * @note: - * The bit-flags `FT_GASP_DO_GRIDFIT' and `FT_GASP_DO_GRAY' are to be + * The bit-flags `FT_GASP_DO_GRIDFIT` and `FT_GASP_DO_GRAY` are to be * used for standard font rasterization only. Independently of that, - * `FT_GASP_SYMMETRIC_SMOOTHING' and `FT_GASP_SYMMETRIC_GRIDFIT' are to - * be used if ClearType is enabled (and `FT_GASP_DO_GRIDFIT' and - * `FT_GASP_DO_GRAY' are consequently ignored). + * `FT_GASP_SYMMETRIC_SMOOTHING` and `FT_GASP_SYMMETRIC_GRIDFIT` are to + * be used if ClearType is enabled (and `FT_GASP_DO_GRIDFIT` and + * `FT_GASP_DO_GRAY` are consequently ignored). * - * `ClearType' is Microsoft's implementation of LCD rendering, partly + * 'ClearType' is Microsoft's implementation of LCD rendering, partly * protected by patents. * * @since: @@ -92,26 +95,36 @@ #define FT_GASP_NO_TABLE -1 #define FT_GASP_DO_GRIDFIT 0x01 #define FT_GASP_DO_GRAY 0x02 +#define FT_GASP_SYMMETRIC_GRIDFIT 0x04 #define FT_GASP_SYMMETRIC_SMOOTHING 0x08 -#define FT_GASP_SYMMETRIC_GRIDFIT 0x10 - /************************************************************************* + /************************************************************************** * - * @func: + * @function: * FT_Get_Gasp * * @description: - * Read the `gasp' table from a TrueType or OpenType font file and - * return the entry corresponding to a given character pixel size. + * For a TrueType or OpenType font file, return the rasterizer behaviour + * flags from the font's 'gasp' table corresponding to a given character + * pixel size. * * @input: - * face :: The source face handle. - * ppem :: The vertical character pixel size. + * face :: + * The source face handle. + * + * ppem :: + * The vertical character pixel size. * * @return: * Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no - * `gasp' table in the face. + * 'gasp' table in the face. + * + * @note: + * If you want to use the MM functionality of OpenType variation fonts + * (i.e., using @FT_Set_Var_Design_Coordinates and friends), call this + * function **after** setting an instance since the return values can + * change. * * @since: * 2.3.0 @@ -123,7 +136,9 @@ /* */ -#endif /* _FT_GASP_H_ */ +FT_END_HEADER + +#endif /* FTGASP_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftglyph.h b/android/x86_64/include/freetype/ftglyph.h index 15fa6a99..a22e0589 100644 --- a/android/x86_64/include/freetype/ftglyph.h +++ b/android/x86_64/include/freetype/ftglyph.h @@ -1,39 +1,39 @@ -/***************************************************************************/ -/* */ -/* ftglyph.h */ -/* */ -/* FreeType convenience functions to handle glyphs (specification). */ -/* */ -/* Copyright 1996-2003, 2006, 2008, 2009, 2011, 2013, 2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftglyph.h + * + * FreeType convenience functions to handle glyphs (specification). + * + * Copyright (C) 1996-2019 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. + * + */ - /*************************************************************************/ - /* */ - /* This file contains the definition of several convenience functions */ - /* that can be used by client applications to easily retrieve glyph */ - /* bitmaps and outlines from a given face. */ - /* */ - /* These functions should be optional if you are writing a font server */ - /* or text layout engine on top of FreeType. However, they are pretty */ - /* handy for many other simple uses of the library. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * This file contains the definition of several convenience functions that + * can be used by client applications to easily retrieve glyph bitmaps and + * outlines from a given face. + * + * These functions should be optional if you are writing a font server or + * text layout engine on top of FreeType. However, they are pretty handy + * for many other simple uses of the library. + * + */ -#ifndef __FTGLYPH_H__ -#define __FTGLYPH_H__ +#ifndef FTGLYPH_H_ +#define FTGLYPH_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -46,65 +46,70 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* glyph_management */ - /* */ - /* <Title> */ - /* Glyph Management */ - /* */ - /* <Abstract> */ - /* Generic interface to manage individual glyph data. */ - /* */ - /* <Description> */ - /* This section contains definitions used to manage glyph data */ - /* through generic FT_Glyph objects. Each of them can contain a */ - /* bitmap, a vector outline, or even images in other formats. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * glyph_management + * + * @title: + * Glyph Management + * + * @abstract: + * Generic interface to manage individual glyph data. + * + * @description: + * This section contains definitions used to manage glyph data through + * generic @FT_Glyph objects. Each of them can contain a bitmap, + * a vector outline, or even images in other formats. These objects are + * detached from @FT_Face, contrary to @FT_GlyphSlot. + * + */ /* forward declaration to a private type */ typedef struct FT_Glyph_Class_ FT_Glyph_Class; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Glyph */ - /* */ - /* <Description> */ - /* Handle to an object used to model generic glyph images. It is a */ - /* pointer to the @FT_GlyphRec structure and can contain a glyph */ - /* bitmap or pointer. */ - /* */ - /* <Note> */ - /* Glyph objects are not owned by the library. You must thus release */ - /* them manually (through @FT_Done_Glyph) _before_ calling */ - /* @FT_Done_FreeType. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Glyph + * + * @description: + * Handle to an object used to model generic glyph images. It is a + * pointer to the @FT_GlyphRec structure and can contain a glyph bitmap + * or pointer. + * + * @note: + * Glyph objects are not owned by the library. You must thus release + * them manually (through @FT_Done_Glyph) _before_ calling + * @FT_Done_FreeType. + */ typedef struct FT_GlyphRec_* FT_Glyph; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_GlyphRec */ - /* */ - /* <Description> */ - /* The root glyph structure contains a given glyph image plus its */ - /* advance width in 16.16 fixed-point format. */ - /* */ - /* <Fields> */ - /* library :: A handle to the FreeType library object. */ - /* */ - /* clazz :: A pointer to the glyph's class. Private. */ - /* */ - /* format :: The format of the glyph's image. */ - /* */ - /* advance :: A 16.16 vector that gives the glyph's advance width. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_GlyphRec + * + * @description: + * The root glyph structure contains a given glyph image plus its advance + * width in 16.16 fixed-point format. + * + * @fields: + * library :: + * A handle to the FreeType library object. + * + * clazz :: + * A pointer to the glyph's class. Private. + * + * format :: + * The format of the glyph's image. + * + * advance :: + * A 16.16 vector that gives the glyph's advance width. + */ typedef struct FT_GlyphRec_ { FT_Library library; @@ -115,48 +120,51 @@ FT_BEGIN_HEADER } FT_GlyphRec; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_BitmapGlyph */ - /* */ - /* <Description> */ - /* A handle to an object used to model a bitmap glyph image. This is */ - /* a sub-class of @FT_Glyph, and a pointer to @FT_BitmapGlyphRec. */ - /* */ + /************************************************************************** + * + * @type: + * FT_BitmapGlyph + * + * @description: + * A handle to an object used to model a bitmap glyph image. This is a + * sub-class of @FT_Glyph, and a pointer to @FT_BitmapGlyphRec. + */ typedef struct FT_BitmapGlyphRec_* FT_BitmapGlyph; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_BitmapGlyphRec */ - /* */ - /* <Description> */ - /* A structure used for bitmap glyph images. This really is a */ - /* `sub-class' of @FT_GlyphRec. */ - /* */ - /* <Fields> */ - /* root :: The root @FT_Glyph fields. */ - /* */ - /* left :: The left-side bearing, i.e., the horizontal distance */ - /* from the current pen position to the left border of the */ - /* glyph bitmap. */ - /* */ - /* top :: The top-side bearing, i.e., the vertical distance from */ - /* the current pen position to the top border of the glyph */ - /* bitmap. This distance is positive for upwards~y! */ - /* */ - /* bitmap :: A descriptor for the bitmap. */ - /* */ - /* <Note> */ - /* You can typecast an @FT_Glyph to @FT_BitmapGlyph if you have */ - /* `glyph->format == FT_GLYPH_FORMAT_BITMAP'. This lets you access */ - /* the bitmap's contents easily. */ - /* */ - /* The corresponding pixel buffer is always owned by @FT_BitmapGlyph */ - /* and is thus created and destroyed with it. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_BitmapGlyphRec + * + * @description: + * A structure used for bitmap glyph images. This really is a + * 'sub-class' of @FT_GlyphRec. + * + * @fields: + * root :: + * The root @FT_Glyph fields. + * + * left :: + * The left-side bearing, i.e., the horizontal distance from the + * current pen position to the left border of the glyph bitmap. + * + * top :: + * The top-side bearing, i.e., the vertical distance from the current + * pen position to the top border of the glyph bitmap. This distance + * is positive for upwards~y! + * + * bitmap :: + * A descriptor for the bitmap. + * + * @note: + * You can typecast an @FT_Glyph to @FT_BitmapGlyph if you have + * `glyph->format == FT_GLYPH_FORMAT_BITMAP`. This lets you access the + * bitmap's contents easily. + * + * The corresponding pixel buffer is always owned by @FT_BitmapGlyph and + * is thus created and destroyed with it. + */ typedef struct FT_BitmapGlyphRec_ { FT_GlyphRec root; @@ -167,44 +175,46 @@ FT_BEGIN_HEADER } FT_BitmapGlyphRec; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_OutlineGlyph */ - /* */ - /* <Description> */ - /* A handle to an object used to model an outline glyph image. This */ - /* is a sub-class of @FT_Glyph, and a pointer to @FT_OutlineGlyphRec. */ - /* */ + /************************************************************************** + * + * @type: + * FT_OutlineGlyph + * + * @description: + * A handle to an object used to model an outline glyph image. This is a + * sub-class of @FT_Glyph, and a pointer to @FT_OutlineGlyphRec. + */ typedef struct FT_OutlineGlyphRec_* FT_OutlineGlyph; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_OutlineGlyphRec */ - /* */ - /* <Description> */ - /* A structure used for outline (vectorial) glyph images. This */ - /* really is a `sub-class' of @FT_GlyphRec. */ - /* */ - /* <Fields> */ - /* root :: The root @FT_Glyph fields. */ - /* */ - /* outline :: A descriptor for the outline. */ - /* */ - /* <Note> */ - /* You can typecast an @FT_Glyph to @FT_OutlineGlyph if you have */ - /* `glyph->format == FT_GLYPH_FORMAT_OUTLINE'. This lets you access */ - /* the outline's content easily. */ - /* */ - /* As the outline is extracted from a glyph slot, its coordinates are */ - /* expressed normally in 26.6 pixels, unless the flag */ - /* @FT_LOAD_NO_SCALE was used in @FT_Load_Glyph() or @FT_Load_Char(). */ - /* */ - /* The outline's tables are always owned by the object and are */ - /* destroyed with it. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_OutlineGlyphRec + * + * @description: + * A structure used for outline (vectorial) glyph images. This really is + * a 'sub-class' of @FT_GlyphRec. + * + * @fields: + * root :: + * The root @FT_Glyph fields. + * + * outline :: + * A descriptor for the outline. + * + * @note: + * You can typecast an @FT_Glyph to @FT_OutlineGlyph if you have + * `glyph->format == FT_GLYPH_FORMAT_OUTLINE`. This lets you access the + * outline's content easily. + * + * As the outline is extracted from a glyph slot, its coordinates are + * expressed normally in 26.6 pixels, unless the flag @FT_LOAD_NO_SCALE + * was used in @FT_Load_Glyph() or @FT_Load_Char(). + * + * The outline's tables are always owned by the object and are destroyed + * with it. + */ typedef struct FT_OutlineGlyphRec_ { FT_GlyphRec root; @@ -213,107 +223,150 @@ FT_BEGIN_HEADER } FT_OutlineGlyphRec; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Glyph */ - /* */ - /* <Description> */ - /* A function used to extract a glyph image from a slot. Note that */ - /* the created @FT_Glyph object must be released with @FT_Done_Glyph. */ - /* */ - /* <Input> */ - /* slot :: A handle to the source glyph slot. */ - /* */ - /* <Output> */ - /* aglyph :: A handle to the glyph object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_New_Glyph + * + * @description: + * A function used to create a new empty glyph image. Note that the + * created @FT_Glyph object must be released with @FT_Done_Glyph. + * + * @input: + * library :: + * A handle to the FreeType library object. + * + * format :: + * The format of the glyph's image. + * + * @output: + * aglyph :: + * A handle to the glyph object. + * + * @return: + * FreeType error code. 0~means success. + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Error ) + FT_New_Glyph( FT_Library library, + FT_Glyph_Format format, + FT_Glyph *aglyph ); + + + /************************************************************************** + * + * @function: + * FT_Get_Glyph + * + * @description: + * A function used to extract a glyph image from a slot. Note that the + * created @FT_Glyph object must be released with @FT_Done_Glyph. + * + * @input: + * slot :: + * A handle to the source glyph slot. + * + * @output: + * aglyph :: + * A handle to the glyph object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Because `*aglyph->advance.x` and `*aglyph->advance.y` are 16.16 + * fixed-point numbers, `slot->advance.x` and `slot->advance.y` (which + * are in 26.6 fixed-point format) must be in the range ]-32768;32768[. + */ FT_EXPORT( FT_Error ) FT_Get_Glyph( FT_GlyphSlot slot, FT_Glyph *aglyph ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_Copy */ - /* */ - /* <Description> */ - /* A function used to copy a glyph image. Note that the created */ - /* @FT_Glyph object must be released with @FT_Done_Glyph. */ - /* */ - /* <Input> */ - /* source :: A handle to the source glyph object. */ - /* */ - /* <Output> */ - /* target :: A handle to the target glyph object. 0~in case of */ - /* error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Glyph_Copy + * + * @description: + * A function used to copy a glyph image. Note that the created + * @FT_Glyph object must be released with @FT_Done_Glyph. + * + * @input: + * source :: + * A handle to the source glyph object. + * + * @output: + * target :: + * A handle to the target glyph object. 0~in case of error. + * + * @return: + * FreeType error code. 0~means success. + */ FT_EXPORT( FT_Error ) FT_Glyph_Copy( FT_Glyph source, FT_Glyph *target ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_Transform */ - /* */ - /* <Description> */ - /* Transform a glyph image if its format is scalable. */ - /* */ - /* <InOut> */ - /* glyph :: A handle to the target glyph object. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to a 2x2 matrix to apply. */ - /* */ - /* delta :: A pointer to a 2d vector to apply. Coordinates are */ - /* expressed in 1/64th of a pixel. */ - /* */ - /* <Return> */ - /* FreeType error code (if not 0, the glyph format is not scalable). */ - /* */ - /* <Note> */ - /* The 2x2 transformation matrix is also applied to the glyph's */ - /* advance vector. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Glyph_Transform + * + * @description: + * Transform a glyph image if its format is scalable. + * + * @inout: + * glyph :: + * A handle to the target glyph object. + * + * @input: + * matrix :: + * A pointer to a 2x2 matrix to apply. + * + * delta :: + * A pointer to a 2d vector to apply. Coordinates are expressed in + * 1/64th of a pixel. + * + * @return: + * FreeType error code (if not 0, the glyph format is not scalable). + * + * @note: + * The 2x2 transformation matrix is also applied to the glyph's advance + * vector. + */ FT_EXPORT( FT_Error ) FT_Glyph_Transform( FT_Glyph glyph, FT_Matrix* matrix, FT_Vector* delta ); - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Glyph_BBox_Mode */ - /* */ - /* <Description> */ - /* The mode how the values of @FT_Glyph_Get_CBox are returned. */ - /* */ - /* <Values> */ - /* FT_GLYPH_BBOX_UNSCALED :: */ - /* Return unscaled font units. */ - /* */ - /* FT_GLYPH_BBOX_SUBPIXELS :: */ - /* Return unfitted 26.6 coordinates. */ - /* */ - /* FT_GLYPH_BBOX_GRIDFIT :: */ - /* Return grid-fitted 26.6 coordinates. */ - /* */ - /* FT_GLYPH_BBOX_TRUNCATE :: */ - /* Return coordinates in integer pixels. */ - /* */ - /* FT_GLYPH_BBOX_PIXELS :: */ - /* Return grid-fitted pixel coordinates. */ - /* */ + /************************************************************************** + * + * @enum: + * FT_Glyph_BBox_Mode + * + * @description: + * The mode how the values of @FT_Glyph_Get_CBox are returned. + * + * @values: + * FT_GLYPH_BBOX_UNSCALED :: + * Return unscaled font units. + * + * FT_GLYPH_BBOX_SUBPIXELS :: + * Return unfitted 26.6 coordinates. + * + * FT_GLYPH_BBOX_GRIDFIT :: + * Return grid-fitted 26.6 coordinates. + * + * FT_GLYPH_BBOX_TRUNCATE :: + * Return coordinates in integer pixels. + * + * FT_GLYPH_BBOX_PIXELS :: + * Return grid-fitted pixel coordinates. + */ typedef enum FT_Glyph_BBox_Mode_ { FT_GLYPH_BBOX_UNSCALED = 0, @@ -326,7 +379,7 @@ FT_BEGIN_HEADER /* these constants are deprecated; use the corresponding */ - /* `FT_Glyph_BBox_Mode' values instead */ + /* `FT_Glyph_BBox_Mode` values instead */ #define ft_glyph_bbox_unscaled FT_GLYPH_BBOX_UNSCALED #define ft_glyph_bbox_subpixels FT_GLYPH_BBOX_SUBPIXELS #define ft_glyph_bbox_gridfit FT_GLYPH_BBOX_GRIDFIT @@ -334,187 +387,188 @@ FT_BEGIN_HEADER #define ft_glyph_bbox_pixels FT_GLYPH_BBOX_PIXELS - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_Get_CBox */ - /* */ - /* <Description> */ - /* Return a glyph's `control box'. The control box encloses all the */ - /* outline's points, including Bézier 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). */ - /* */ - /* 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 */ - /* and arcs in the outline. To get the latter, you can use the */ - /* `ftbbox' component, which is dedicated to this single task. */ - /* */ - /* <Input> */ - /* glyph :: A handle to the source glyph object. */ - /* */ - /* mode :: The mode that indicates how to interpret the returned */ - /* bounding box values. */ - /* */ - /* <Output> */ - /* acbox :: The glyph coordinate bounding box. Coordinates are */ - /* expressed in 1/64th of pixels if it is grid-fitted. */ - /* */ - /* <Note> */ - /* Coordinates are relative to the glyph origin, using the y~upwards */ - /* convention. */ - /* */ - /* If the glyph has been loaded with @FT_LOAD_NO_SCALE, `bbox_mode' */ - /* must be set to @FT_GLYPH_BBOX_UNSCALED to get unscaled font */ - /* units in 26.6 pixel format. The value @FT_GLYPH_BBOX_SUBPIXELS */ - /* is another name for this constant. */ - /* */ - /* If the font is tricky and the glyph has been loaded with */ - /* @FT_LOAD_NO_SCALE, the resulting CBox is meaningless. To get */ - /* reasonable values for the CBox it is necessary to load the glyph */ - /* at a large ppem value (so that the hinting instructions can */ - /* properly shift and scale the subglyphs), then extracting the CBox, */ - /* which can be eventually converted back to font units. */ - /* */ - /* Note that the maximum coordinates are exclusive, which means that */ - /* one can compute the width and height of the glyph image (be it in */ - /* integer or 26.6 pixels) as: */ - /* */ - /* { */ - /* width = bbox.xMax - bbox.xMin; */ - /* height = bbox.yMax - bbox.yMin; */ - /* } */ - /* */ - /* Note also that for 26.6 coordinates, if `bbox_mode' is set to */ - /* @FT_GLYPH_BBOX_GRIDFIT, the coordinates will also be grid-fitted, */ - /* which corresponds to: */ - /* */ - /* { */ - /* bbox.xMin = FLOOR(bbox.xMin); */ - /* bbox.yMin = FLOOR(bbox.yMin); */ - /* bbox.xMax = CEILING(bbox.xMax); */ - /* bbox.yMax = CEILING(bbox.yMax); */ - /* } */ - /* */ - /* To get the bbox in pixel coordinates, set `bbox_mode' to */ - /* @FT_GLYPH_BBOX_TRUNCATE. */ - /* */ - /* To get the bbox in grid-fitted pixel coordinates, set `bbox_mode' */ - /* to @FT_GLYPH_BBOX_PIXELS. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Glyph_Get_CBox + * + * @description: + * Return a glyph's 'control box'. The control box encloses all 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 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 and arcs + * in the outline. To get the latter, you can use the 'ftbbox' + * component, which is dedicated to this single task. + * + * @input: + * glyph :: + * A handle to the source glyph object. + * + * mode :: + * The mode that indicates how to interpret the returned bounding box + * values. + * + * @output: + * acbox :: + * The glyph coordinate bounding box. Coordinates are expressed in + * 1/64th of pixels if it is grid-fitted. + * + * @note: + * Coordinates are relative to the glyph origin, using the y~upwards + * convention. + * + * If the glyph has been loaded with @FT_LOAD_NO_SCALE, `bbox_mode` must + * be set to @FT_GLYPH_BBOX_UNSCALED to get unscaled font units in 26.6 + * pixel format. The value @FT_GLYPH_BBOX_SUBPIXELS is another name for + * this constant. + * + * If the font is tricky and the glyph has been loaded with + * @FT_LOAD_NO_SCALE, the resulting CBox is meaningless. To get + * reasonable values for the CBox it is necessary to load the glyph at a + * large ppem value (so that the hinting instructions can properly shift + * and scale the subglyphs), then extracting the CBox, which can be + * eventually converted back to font units. + * + * Note that the maximum coordinates are exclusive, which means that one + * can compute the width and height of the glyph image (be it in integer + * or 26.6 pixels) as: + * + * ``` + * width = bbox.xMax - bbox.xMin; + * height = bbox.yMax - bbox.yMin; + * ``` + * + * Note also that for 26.6 coordinates, if `bbox_mode` is set to + * @FT_GLYPH_BBOX_GRIDFIT, the coordinates will also be grid-fitted, + * which corresponds to: + * + * ``` + * bbox.xMin = FLOOR(bbox.xMin); + * bbox.yMin = FLOOR(bbox.yMin); + * bbox.xMax = CEILING(bbox.xMax); + * bbox.yMax = CEILING(bbox.yMax); + * ``` + * + * To get the bbox in pixel coordinates, set `bbox_mode` to + * @FT_GLYPH_BBOX_TRUNCATE. + * + * To get the bbox in grid-fitted pixel coordinates, set `bbox_mode` to + * @FT_GLYPH_BBOX_PIXELS. + */ FT_EXPORT( void ) FT_Glyph_Get_CBox( FT_Glyph glyph, FT_UInt bbox_mode, FT_BBox *acbox ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_To_Bitmap */ - /* */ - /* <Description> */ - /* Convert a given glyph object to a bitmap glyph object. */ - /* */ - /* <InOut> */ - /* the_glyph :: A pointer to a handle to the target glyph. */ - /* */ - /* <Input> */ - /* render_mode :: An enumeration that describes how the data is */ - /* rendered. */ - /* */ - /* origin :: A pointer to a vector used to translate the glyph */ - /* image before rendering. Can be~0 (if no */ - /* translation). The origin is expressed in */ - /* 26.6 pixels. */ - /* */ - /* destroy :: A boolean that indicates that the original glyph */ - /* image should be destroyed by this function. It is */ - /* never destroyed in case of error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function does nothing if the glyph format isn't scalable. */ - /* */ - /* The glyph image is translated with the `origin' vector before */ - /* rendering. */ - /* */ - /* The first parameter is a pointer to an @FT_Glyph handle, that will */ - /* be _replaced_ by this function (with newly allocated data). */ - /* Typically, you would use (omitting error handling): */ - /* */ - /* */ - /* { */ - /* FT_Glyph glyph; */ - /* FT_BitmapGlyph glyph_bitmap; */ - /* */ - /* */ - /* // load glyph */ - /* error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAUT ); */ - /* */ - /* // extract glyph image */ - /* error = FT_Get_Glyph( face->glyph, &glyph ); */ - /* */ - /* // convert to a bitmap (default render mode + destroying old) */ - /* if ( glyph->format != FT_GLYPH_FORMAT_BITMAP ) */ - /* { */ - /* error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_NORMAL, */ - /* 0, 1 ); */ - /* if ( error ) // `glyph' unchanged */ - /* ... */ - /* } */ - /* */ - /* // access bitmap content by typecasting */ - /* glyph_bitmap = (FT_BitmapGlyph)glyph; */ - /* */ - /* // do funny stuff with it, like blitting/drawing */ - /* ... */ - /* */ - /* // discard glyph image (bitmap or not) */ - /* FT_Done_Glyph( glyph ); */ - /* } */ - /* */ - /* */ - /* Here another example, again without error handling: */ - /* */ - /* */ - /* { */ - /* FT_Glyph glyphs[MAX_GLYPHS] */ - /* */ - /* */ - /* ... */ - /* */ - /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ - /* error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) || */ - /* FT_Get_Glyph ( face->glyph, &glyph[idx] ); */ - /* */ - /* ... */ - /* */ - /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ - /* { */ - /* FT_Glyph bitmap = glyphs[idx]; */ - /* */ - /* */ - /* ... */ - /* */ - /* // after this call, `bitmap' no longer points into */ - /* // the `glyphs' array (and the old value isn't destroyed) */ - /* FT_Glyph_To_Bitmap( &bitmap, FT_RENDER_MODE_MONO, 0, 0 ); */ - /* */ - /* ... */ - /* */ - /* FT_Done_Glyph( bitmap ); */ - /* } */ - /* */ - /* ... */ - /* */ - /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ - /* FT_Done_Glyph( glyphs[idx] ); */ - /* } */ - /* */ + /************************************************************************** + * + * @function: + * FT_Glyph_To_Bitmap + * + * @description: + * Convert a given glyph object to a bitmap glyph object. + * + * @inout: + * the_glyph :: + * A pointer to a handle to the target glyph. + * + * @input: + * render_mode :: + * An enumeration that describes how the data is rendered. + * + * origin :: + * A pointer to a vector used to translate the glyph image before + * rendering. Can be~0 (if no translation). The origin is expressed + * in 26.6 pixels. + * + * destroy :: + * A boolean that indicates that the original glyph image should be + * destroyed by this function. It is never destroyed in case of error. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function does nothing if the glyph format isn't scalable. + * + * The glyph image is translated with the `origin` vector before + * rendering. + * + * The first parameter is a pointer to an @FT_Glyph handle, that will be + * _replaced_ by this function (with newly allocated data). Typically, + * you would use (omitting error handling): + * + * ``` + * FT_Glyph glyph; + * FT_BitmapGlyph glyph_bitmap; + * + * + * // load glyph + * error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAULT ); + * + * // extract glyph image + * error = FT_Get_Glyph( face->glyph, &glyph ); + * + * // convert to a bitmap (default render mode + destroying old) + * if ( glyph->format != FT_GLYPH_FORMAT_BITMAP ) + * { + * error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_NORMAL, + * 0, 1 ); + * if ( error ) // `glyph' unchanged + * ... + * } + * + * // access bitmap content by typecasting + * glyph_bitmap = (FT_BitmapGlyph)glyph; + * + * // do funny stuff with it, like blitting/drawing + * ... + * + * // discard glyph image (bitmap or not) + * FT_Done_Glyph( glyph ); + * ``` + * + * Here is another example, again without error handling: + * + * ``` + * FT_Glyph glyphs[MAX_GLYPHS] + * + * + * ... + * + * for ( idx = 0; i < MAX_GLYPHS; i++ ) + * error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) || + * FT_Get_Glyph ( face->glyph, &glyphs[idx] ); + * + * ... + * + * for ( idx = 0; i < MAX_GLYPHS; i++ ) + * { + * FT_Glyph bitmap = glyphs[idx]; + * + * + * ... + * + * // after this call, `bitmap' no longer points into + * // the `glyphs' array (and the old value isn't destroyed) + * FT_Glyph_To_Bitmap( &bitmap, FT_RENDER_MODE_MONO, 0, 0 ); + * + * ... + * + * FT_Done_Glyph( bitmap ); + * } + * + * ... + * + * for ( idx = 0; i < MAX_GLYPHS; i++ ) + * FT_Done_Glyph( glyphs[idx] ); + * ``` + */ FT_EXPORT( FT_Error ) FT_Glyph_To_Bitmap( FT_Glyph* the_glyph, FT_Render_Mode render_mode, @@ -522,17 +576,18 @@ FT_BEGIN_HEADER FT_Bool destroy ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Glyph */ - /* */ - /* <Description> */ - /* Destroy a given glyph. */ - /* */ - /* <Input> */ - /* glyph :: A handle to the target glyph object. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Done_Glyph + * + * @description: + * Destroy a given glyph. + * + * @input: + * glyph :: + * A handle to the target glyph object. + */ FT_EXPORT( void ) FT_Done_Glyph( FT_Glyph glyph ); @@ -541,51 +596,56 @@ FT_BEGIN_HEADER /* other helpful functions */ - /*************************************************************************/ - /* */ - /* <Section> */ - /* computations */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * computations + * + */ - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Matrix_Multiply */ - /* */ - /* <Description> */ - /* Perform the matrix operation `b = a*b'. */ - /* */ - /* <Input> */ - /* a :: A pointer to matrix `a'. */ - /* */ - /* <InOut> */ - /* b :: A pointer to matrix `b'. */ - /* */ - /* <Note> */ - /* The result is undefined if either `a' or `b' is zero. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Matrix_Multiply + * + * @description: + * Perform the matrix operation `b = a*b`. + * + * @input: + * a :: + * A pointer to matrix `a`. + * + * @inout: + * b :: + * A pointer to matrix `b`. + * + * @note: + * The result is undefined if either `a` or `b` is zero. + * + * Since the function uses wrap-around arithmetic, results become + * meaningless if the arguments are very large. + */ FT_EXPORT( void ) FT_Matrix_Multiply( const FT_Matrix* a, FT_Matrix* b ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Matrix_Invert */ - /* */ - /* <Description> */ - /* Invert a 2x2 matrix. Return an error if it can't be inverted. */ - /* */ - /* <InOut> */ - /* matrix :: A pointer to the target matrix. Remains untouched in */ - /* case of error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Matrix_Invert + * + * @description: + * Invert a 2x2 matrix. Return an error if it can't be inverted. + * + * @inout: + * matrix :: + * A pointer to the target matrix. Remains untouched in case of error. + * + * @return: + * FreeType error code. 0~means success. + */ FT_EXPORT( FT_Error ) FT_Matrix_Invert( FT_Matrix* matrix ); @@ -594,7 +654,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTGLYPH_H__ */ +#endif /* FTGLYPH_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftgxval.h b/android/x86_64/include/freetype/ftgxval.h index 88c3d937..8faa8ffc 100644 --- a/android/x86_64/include/freetype/ftgxval.h +++ b/android/x86_64/include/freetype/ftgxval.h @@ -1,34 +1,34 @@ -/***************************************************************************/ -/* */ -/* ftgxval.h */ -/* */ -/* FreeType API for validating TrueTypeGX/AAT tables (specification). */ -/* */ -/* Copyright 2004-2006, 2013 by */ -/* Masatake YAMATO, Redhat K.K, */ -/* 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftgxval.h + * + * FreeType API for validating TrueTypeGX/AAT tables (specification). + * + * Copyright (C) 2004-2019 by + * Masatake YAMATO, Redhat K.K, + * 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. + * + */ -/***************************************************************************/ -/* */ -/* gxvalid is derived from both gxlayout module and otvalid module. */ -/* Development of gxlayout is supported by the Information-technology */ -/* Promotion Agency(IPA), Japan. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * gxvalid is derived from both gxlayout module and otvalid module. + * Development of gxlayout is supported by the Information-technology + * Promotion Agency(IPA), Japan. + * + */ -#ifndef __FTGXVAL_H__ -#define __FTGXVAL_H__ +#ifndef FTGXVAL_H_ +#define FTGXVAL_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -41,43 +41,43 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* gx_validation */ - /* */ - /* <Title> */ - /* TrueTypeGX/AAT Validation */ - /* */ - /* <Abstract> */ - /* An API to validate TrueTypeGX/AAT tables. */ - /* */ - /* <Description> */ - /* This section contains the declaration of functions to validate */ - /* some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, */ - /* trak, prop, lcar). */ - /* */ - /* <Order> */ - /* FT_TrueTypeGX_Validate */ - /* FT_TrueTypeGX_Free */ - /* */ - /* FT_ClassicKern_Validate */ - /* FT_ClassicKern_Free */ - /* */ - /* FT_VALIDATE_GX_LENGTH */ - /* FT_VALIDATE_GXXXX */ - /* FT_VALIDATE_CKERNXXX */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * gx_validation + * + * @title: + * TrueTypeGX/AAT Validation + * + * @abstract: + * An API to validate TrueTypeGX/AAT tables. + * + * @description: + * This section contains the declaration of functions to validate some + * TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, trak, + * prop, lcar). + * + * @order: + * FT_TrueTypeGX_Validate + * FT_TrueTypeGX_Free + * + * FT_ClassicKern_Validate + * FT_ClassicKern_Free + * + * FT_VALIDATE_GX_LENGTH + * FT_VALIDATE_GXXXX + * FT_VALIDATE_CKERNXXX + * + */ - /*************************************************************************/ - /* */ - /* */ - /* Warning: Use FT_VALIDATE_XXX to validate a table. */ - /* Following definitions are for gxvalid developers. */ - /* */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * + * Warning: Use `FT_VALIDATE_XXX` to validate a table. + * Following definitions are for gxvalid developers. + * + * + */ #define FT_VALIDATE_feat_INDEX 0 #define FT_VALIDATE_mort_INDEX 1 @@ -92,71 +92,71 @@ FT_BEGIN_HEADER #define FT_VALIDATE_GX_LAST_INDEX FT_VALIDATE_lcar_INDEX - /************************************************************************* + /************************************************************************** * * @macro: * FT_VALIDATE_GX_LENGTH * * @description: * The number of tables checked in this module. Use it as a parameter - * for the `table-length' argument of function @FT_TrueTypeGX_Validate. + * 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 ) - /********************************************************************** - * - * @enum: - * FT_VALIDATE_GXXXX - * - * @description: - * A list of bit-field constants used with @FT_TrueTypeGX_Validate to - * indicate which TrueTypeGX/AAT Type tables should be validated. - * - * @values: - * FT_VALIDATE_feat :: - * Validate `feat' table. - * - * FT_VALIDATE_mort :: - * Validate `mort' table. - * - * FT_VALIDATE_morx :: - * Validate `morx' table. - * - * FT_VALIDATE_bsln :: - * Validate `bsln' table. - * - * FT_VALIDATE_just :: - * Validate `just' table. - * - * FT_VALIDATE_kern :: - * Validate `kern' table. - * - * FT_VALIDATE_opbd :: - * Validate `opbd' table. - * - * FT_VALIDATE_trak :: - * Validate `trak' table. - * - * FT_VALIDATE_prop :: - * Validate `prop' table. - * - * FT_VALIDATE_lcar :: - * Validate `lcar' table. - * - * FT_VALIDATE_GX :: - * Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern, - * opbd, trak, prop and lcar). - * - */ + /************************************************************************** + * + * @enum: + * FT_VALIDATE_GXXXX + * + * @description: + * A list of bit-field constants used with @FT_TrueTypeGX_Validate to + * indicate which TrueTypeGX/AAT Type tables should be validated. + * + * @values: + * FT_VALIDATE_feat :: + * Validate 'feat' table. + * + * FT_VALIDATE_mort :: + * Validate 'mort' table. + * + * FT_VALIDATE_morx :: + * Validate 'morx' table. + * + * FT_VALIDATE_bsln :: + * Validate 'bsln' table. + * + * FT_VALIDATE_just :: + * Validate 'just' table. + * + * FT_VALIDATE_kern :: + * Validate 'kern' table. + * + * FT_VALIDATE_opbd :: + * Validate 'opbd' table. + * + * FT_VALIDATE_trak :: + * Validate 'trak' table. + * + * FT_VALIDATE_prop :: + * Validate 'prop' table. + * + * FT_VALIDATE_lcar :: + * Validate 'lcar' table. + * + * FT_VALIDATE_GX :: + * Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern, + * opbd, trak, prop and lcar). + * + */ #define FT_VALIDATE_feat FT_VALIDATE_GX_BITFIELD( feat ) #define FT_VALIDATE_mort FT_VALIDATE_GX_BITFIELD( mort ) @@ -181,47 +181,47 @@ FT_BEGIN_HEADER FT_VALIDATE_lcar ) - /********************************************************************** - * - * @function: - * FT_TrueTypeGX_Validate - * - * @description: - * Validate various TrueTypeGX tables to assure that all offsets and - * indices are valid. The idea is that a higher-level library that - * actually does the text layout can access those tables without - * error checking (which can be quite time consuming). - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the tables to be validated. See - * @FT_VALIDATE_GXXXX for possible values. - * - * table_length :: - * The size of the `tables' array. Normally, @FT_VALIDATE_GX_LENGTH - * should be passed. - * - * @output: - * tables :: - * The array where all validated sfnt tables are stored. - * The array itself must be allocated by a client. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with TrueTypeGX fonts, returning an error - * otherwise. - * - * After use, the application should deallocate the buffers pointed to by - * each `tables' element, by calling @FT_TrueTypeGX_Free. A NULL value - * indicates that the table either doesn't exist in the font, the - * application hasn't asked for validation, or the validator doesn't have - * the ability to validate the sfnt table. - */ + /************************************************************************** + * + * @function: + * FT_TrueTypeGX_Validate + * + * @description: + * Validate various TrueTypeGX tables to assure that all offsets and + * indices are valid. The idea is that a higher-level library that + * actually does the text layout can access those tables without error + * checking (which can be quite time consuming). + * + * @input: + * face :: + * A handle to the input face. + * + * validation_flags :: + * A bit field that specifies the tables to be validated. See + * @FT_VALIDATE_GXXXX for possible values. + * + * table_length :: + * The size of the `tables` array. Normally, @FT_VALIDATE_GX_LENGTH + * should be passed. + * + * @output: + * tables :: + * The array where all validated sfnt tables are stored. The array + * itself must be allocated by a client. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function only works with TrueTypeGX fonts, returning an error + * otherwise. + * + * After use, the application should deallocate the buffers pointed to by + * each `tables` element, by calling @FT_TrueTypeGX_Free. A `NULL` value + * indicates that the table either doesn't exist in the font, the + * application hasn't asked for validation, or the validator doesn't have + * the ability to validate the sfnt table. + */ FT_EXPORT( FT_Error ) FT_TrueTypeGX_Validate( FT_Face face, FT_UInt validation_flags, @@ -229,119 +229,117 @@ FT_BEGIN_HEADER FT_UInt table_length ); - /********************************************************************** - * - * @function: - * FT_TrueTypeGX_Free - * - * @description: - * Free the buffer allocated by TrueTypeGX validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer allocated by - * @FT_TrueTypeGX_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_TrueTypeGX_Validate only. - */ + /************************************************************************** + * + * @function: + * FT_TrueTypeGX_Free + * + * @description: + * Free the buffer allocated by TrueTypeGX validator. + * + * @input: + * face :: + * A handle to the input face. + * + * table :: + * The pointer to the buffer allocated by @FT_TrueTypeGX_Validate. + * + * @note: + * This function must be used to free the buffer allocated by + * @FT_TrueTypeGX_Validate only. + */ FT_EXPORT( void ) FT_TrueTypeGX_Free( FT_Face face, FT_Bytes table ); - /********************************************************************** - * - * @enum: - * FT_VALIDATE_CKERNXXX - * - * @description: - * A list of bit-field constants used with @FT_ClassicKern_Validate - * to indicate the classic kern dialect or dialects. If the selected - * type doesn't fit, @FT_ClassicKern_Validate regards the table as - * invalid. - * - * @values: - * FT_VALIDATE_MS :: - * Handle the `kern' table as a classic Microsoft kern table. - * - * FT_VALIDATE_APPLE :: - * Handle the `kern' table as a classic Apple kern table. - * - * FT_VALIDATE_CKERN :: - * Handle the `kern' as either classic Apple or Microsoft kern table. - */ + /************************************************************************** + * + * @enum: + * FT_VALIDATE_CKERNXXX + * + * @description: + * A list of bit-field constants used with @FT_ClassicKern_Validate to + * indicate the classic kern dialect or dialects. If the selected type + * doesn't fit, @FT_ClassicKern_Validate regards the table as invalid. + * + * @values: + * FT_VALIDATE_MS :: + * Handle the 'kern' table as a classic Microsoft kern table. + * + * FT_VALIDATE_APPLE :: + * Handle the 'kern' table as a classic Apple kern table. + * + * FT_VALIDATE_CKERN :: + * Handle the 'kern' as either classic Apple or Microsoft kern table. + */ #define FT_VALIDATE_MS ( FT_VALIDATE_GX_START << 0 ) #define FT_VALIDATE_APPLE ( FT_VALIDATE_GX_START << 1 ) #define FT_VALIDATE_CKERN ( FT_VALIDATE_MS | FT_VALIDATE_APPLE ) - /********************************************************************** - * - * @function: - * FT_ClassicKern_Validate - * - * @description: - * Validate classic (16-bit format) kern table to assure that the offsets - * and indices are valid. The idea is that a higher-level library that - * actually does the text layout can access those tables without error - * checking (which can be quite time consuming). - * - * The `kern' table validator in @FT_TrueTypeGX_Validate deals with both - * the new 32-bit format and the classic 16-bit format, while - * FT_ClassicKern_Validate only supports the classic 16-bit format. - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the dialect to be validated. See - * @FT_VALIDATE_CKERNXXX for possible values. - * - * @output: - * ckern_table :: - * A pointer to the kern table. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * After use, the application should deallocate the buffers pointed to by - * `ckern_table', by calling @FT_ClassicKern_Free. A NULL value - * indicates that the table doesn't exist in the font. - */ + /************************************************************************** + * + * @function: + * FT_ClassicKern_Validate + * + * @description: + * Validate classic (16-bit format) kern table to assure that the + * offsets and indices are valid. The idea is that a higher-level + * library that actually does the text layout can access those tables + * without error checking (which can be quite time consuming). + * + * The 'kern' table validator in @FT_TrueTypeGX_Validate deals with both + * the new 32-bit format and the classic 16-bit format, while + * FT_ClassicKern_Validate only supports the classic 16-bit format. + * + * @input: + * face :: + * A handle to the input face. + * + * validation_flags :: + * A bit field that specifies the dialect to be validated. See + * @FT_VALIDATE_CKERNXXX for possible values. + * + * @output: + * ckern_table :: + * A pointer to the kern table. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * After use, the application should deallocate the buffers pointed to by + * `ckern_table`, by calling @FT_ClassicKern_Free. A `NULL` value + * indicates that the table doesn't exist in the font. + */ FT_EXPORT( FT_Error ) FT_ClassicKern_Validate( FT_Face face, FT_UInt validation_flags, FT_Bytes *ckern_table ); - /********************************************************************** - * - * @function: - * FT_ClassicKern_Free - * - * @description: - * Free the buffer allocated by classic Kern validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer that is allocated by - * @FT_ClassicKern_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_ClassicKern_Validate only. - */ + /************************************************************************** + * + * @function: + * FT_ClassicKern_Free + * + * @description: + * Free the buffer allocated by classic Kern validator. + * + * @input: + * face :: + * A handle to the input face. + * + * table :: + * The pointer to the buffer that is allocated by + * @FT_ClassicKern_Validate. + * + * @note: + * This function must be used to free the buffer allocated by + * @FT_ClassicKern_Validate only. + */ FT_EXPORT( void ) FT_ClassicKern_Free( FT_Face face, FT_Bytes table ); @@ -351,7 +349,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTGXVAL_H__ */ +#endif /* FTGXVAL_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftgzip.h b/android/x86_64/include/freetype/ftgzip.h index eb346c6d..0899940d 100644 --- a/android/x86_64/include/freetype/ftgzip.h +++ b/android/x86_64/include/freetype/ftgzip.h @@ -1,25 +1,25 @@ -/***************************************************************************/ -/* */ -/* ftgzip.h */ -/* */ -/* Gzip-compressed stream support. */ -/* */ -/* Copyright 2002-2004, 2006, 2013 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftgzip.h + * + * Gzip-compressed stream support. + * + * Copyright (C) 2002-2019 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 __FTGZIP_H__ -#define __FTGZIP_H__ +#ifndef FTGZIP_H_ +#define FTGZIP_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -31,105 +31,108 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* gzip */ - /* */ - /* <Title> */ - /* GZIP Streams */ - /* */ - /* <Abstract> */ - /* Using gzip-compressed font files. */ - /* */ - /* <Description> */ - /* This section contains the declaration of Gzip-specific functions. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * gzip + * + * @title: + * GZIP Streams + * + * @abstract: + * Using gzip-compressed font files. + * + * @description: + * This section contains the declaration of Gzip-specific functions. + * + */ - /************************************************************************ - * - * @function: - * FT_Stream_OpenGzip - * - * @description: - * Open a new stream to parse gzip-compressed font files. This is - * mainly used to support the compressed `*.pcf.gz' fonts that come - * with XFree86. - * - * @input: - * stream :: - * The target embedding stream. - * - * source :: - * The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close' on the new stream will - * *not* call `FT_Stream_Close' on the source stream. None of the stream - * objects will be released to the heap. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream. - * - * In certain builds of the library, gzip compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a gzipped stream from - * it and re-open the face with it. - * - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with zlib support. - */ + /************************************************************************** + * + * @function: + * FT_Stream_OpenGzip + * + * @description: + * Open a new stream to parse gzip-compressed font files. This is mainly + * used to support the compressed `*.pcf.gz` fonts that come with + * XFree86. + * + * @input: + * stream :: + * The target embedding stream. + * + * source :: + * The source stream. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The source stream must be opened _before_ calling this function. + * + * Calling the internal function `FT_Stream_Close` on the new stream will + * **not** call `FT_Stream_Close` on the source stream. None of the + * stream objects will be released to the heap. + * + * The stream implementation is very basic and resets the decompression + * process each time seeking backwards is needed within the stream. + * + * In certain builds of the library, gzip compression recognition is + * automatically handled when calling @FT_New_Face or @FT_Open_Face. + * This means that if no font driver is capable of handling the raw + * compressed file, the library will try to open a gzipped stream from it + * and re-open the face with it. + * + * This function may return `FT_Err_Unimplemented_Feature` if your build + * of FreeType was not compiled with zlib support. + */ FT_EXPORT( FT_Error ) FT_Stream_OpenGzip( FT_Stream stream, FT_Stream source ); - /************************************************************************ - * - * @function: - * FT_Gzip_Uncompress - * - * @description: - * Decompress a zipped input buffer into an output buffer. This function - * is modeled after zlib's `uncompress' function. - * - * @input: - * memory :: - * A FreeType memory handle. - * - * input :: - * The input buffer. - * - * input_len :: - * The length of the input buffer. - * - * @output: - * output:: - * The output buffer. - * - * @inout: - * output_len :: - * Before calling the function, this is the the total size of the - * output buffer, which must be large enough to hold the entire - * uncompressed data (so the size of the uncompressed data must be - * known in advance). After calling the function, `output_len' is the - * size of the used data in `output'. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with zlib support. - */ + /************************************************************************** + * + * @function: + * FT_Gzip_Uncompress + * + * @description: + * Decompress a zipped input buffer into an output buffer. This function + * is modeled after zlib's `uncompress` function. + * + * @input: + * memory :: + * A FreeType memory handle. + * + * input :: + * The input buffer. + * + * input_len :: + * The length of the input buffer. + * + * @output: + * output :: + * The output buffer. + * + * @inout: + * output_len :: + * Before calling the function, this is the total size of the output + * buffer, which must be large enough to hold the entire uncompressed + * data (so the size of the uncompressed data must be known in + * advance). After calling the function, `output_len` is the size of + * the used data in `output`. + * + * @return: + * FreeType error code. 0~means success. + * + * @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, FT_Byte* output, @@ -142,7 +145,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTGZIP_H__ */ +#endif /* FTGZIP_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftimage.h b/android/x86_64/include/freetype/ftimage.h index 2f7ca2aa..b9e23028 100644 --- a/android/x86_64/include/freetype/ftimage.h +++ b/android/x86_64/include/freetype/ftimage.h @@ -1,76 +1,78 @@ -/***************************************************************************/ -/* */ -/* ftimage.h */ -/* */ -/* FreeType glyph image formats and default raster interface */ -/* (specification). */ -/* */ -/* Copyright 1996-2010, 2013, 2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftimage.h + * + * FreeType glyph image formats and default raster interface + * (specification). + * + * Copyright (C) 1996-2019 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. + * + */ - /*************************************************************************/ - /* */ - /* Note: A `raster' is simply a scan-line converter, used to render */ - /* FT_Outlines into FT_Bitmaps. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * Note: A 'raster' is simply a scan-line converter, used to render + * FT_Outlines into FT_Bitmaps. + * + */ -#ifndef __FTIMAGE_H__ -#define __FTIMAGE_H__ +#ifndef FTIMAGE_H_ +#define FTIMAGE_H_ - /* _STANDALONE_ is from ftgrays.c */ -#ifndef _STANDALONE_ -#include <ft2build.h> + /* STANDALONE_ is from ftgrays.c */ +#ifndef STANDALONE_ +#include "ft2build.h" #endif FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * basic_types + * + */ - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Pos */ - /* */ - /* <Description> */ - /* The type FT_Pos is used to store vectorial coordinates. Depending */ - /* on the context, these can represent distances in integer font */ - /* units, or 16.16, or 26.6 fixed-point pixel coordinates. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Pos + * + * @description: + * The type FT_Pos is used to store vectorial coordinates. Depending on + * the context, these can represent distances in integer font units, or + * 16.16, or 26.6 fixed-point pixel coordinates. + */ typedef signed long FT_Pos; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Vector */ - /* */ - /* <Description> */ - /* A simple structure used to store a 2D vector; coordinates are of */ - /* the FT_Pos type. */ - /* */ - /* <Fields> */ - /* x :: The horizontal coordinate. */ - /* y :: The vertical coordinate. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Vector + * + * @description: + * A simple structure used to store a 2D vector; coordinates are of the + * FT_Pos type. + * + * @fields: + * x :: + * The horizontal coordinate. + * y :: + * The vertical coordinate. + */ typedef struct FT_Vector_ { FT_Pos x; @@ -79,39 +81,41 @@ FT_BEGIN_HEADER } FT_Vector; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_BBox */ - /* */ - /* <Description> */ - /* A structure used to hold an outline's bounding box, i.e., the */ - /* coordinates of its extrema in the horizontal and vertical */ - /* directions. */ - /* */ - /* <Fields> */ - /* xMin :: The horizontal minimum (left-most). */ - /* */ - /* yMin :: The vertical minimum (bottom-most). */ - /* */ - /* xMax :: The horizontal maximum (right-most). */ - /* */ - /* yMax :: The vertical maximum (top-most). */ - /* */ - /* <Note> */ - /* The bounding box is specified with the coordinates of the lower */ - /* left and the upper right corner. In PostScript, those values are */ - /* often called (llx,lly) and (urx,ury), respectively. */ - /* */ - /* If `yMin' is negative, this value gives the glyph's descender. */ - /* Otherwise, the glyph doesn't descend below the baseline. */ - /* Similarly, if `ymax' is positive, this value gives the glyph's */ - /* ascender. */ - /* */ - /* `xMin' gives the horizontal distance from the glyph's origin to */ - /* the left edge of the glyph's bounding box. If `xMin' is negative, */ - /* the glyph extends to the left of the origin. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_BBox + * + * @description: + * A structure used to hold an outline's bounding box, i.e., the + * coordinates of its extrema in the horizontal and vertical directions. + * + * @fields: + * xMin :: + * The horizontal minimum (left-most). + * + * yMin :: + * The vertical minimum (bottom-most). + * + * xMax :: + * The horizontal maximum (right-most). + * + * yMax :: + * The vertical maximum (top-most). + * + * @note: + * The bounding box is specified with the coordinates of the lower left + * and the upper right corner. In PostScript, those values are often + * called (llx,lly) and (urx,ury), respectively. + * + * If `yMin` is negative, this value gives the glyph's descender. + * Otherwise, the glyph doesn't descend below the baseline. Similarly, + * if `ymax` is positive, this value gives the glyph's ascender. + * + * `xMin` gives the horizontal distance from the glyph's origin to the + * left edge of the glyph's bounding box. If `xMin` is negative, the + * glyph extends to the left of the origin. + */ typedef struct FT_BBox_ { FT_Pos xMin, yMin; @@ -120,63 +124,60 @@ FT_BEGIN_HEADER } FT_BBox; - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Pixel_Mode */ - /* */ - /* <Description> */ - /* An enumeration type used to describe the format of pixels in a */ - /* given bitmap. Note that additional formats may be added in the */ - /* future. */ - /* */ - /* <Values> */ - /* FT_PIXEL_MODE_NONE :: */ - /* Value~0 is reserved. */ - /* */ - /* FT_PIXEL_MODE_MONO :: */ - /* A monochrome bitmap, using 1~bit per pixel. Note that pixels */ - /* are stored in most-significant order (MSB), which means that */ - /* the left-most pixel in a byte has value 128. */ - /* */ - /* FT_PIXEL_MODE_GRAY :: */ - /* An 8-bit bitmap, generally used to represent anti-aliased glyph */ - /* images. Each pixel is stored in one byte. Note that the number */ - /* of `gray' levels is stored in the `num_grays' field of the */ - /* @FT_Bitmap structure (it generally is 256). */ - /* */ - /* FT_PIXEL_MODE_GRAY2 :: */ - /* A 2-bit per pixel bitmap, used to represent embedded */ - /* anti-aliased bitmaps in font files according to the OpenType */ - /* specification. We haven't found a single font using this */ - /* format, however. */ - /* */ - /* FT_PIXEL_MODE_GRAY4 :: */ - /* A 4-bit per pixel bitmap, representing embedded anti-aliased */ - /* bitmaps in font files according to the OpenType specification. */ - /* We haven't found a single font using this format, however. */ - /* */ - /* FT_PIXEL_MODE_LCD :: */ - /* An 8-bit bitmap, representing RGB or BGR decimated glyph images */ - /* used for display on LCD displays; the bitmap is three times */ - /* wider than the original glyph image. See also */ - /* @FT_RENDER_MODE_LCD. */ - /* */ - /* FT_PIXEL_MODE_LCD_V :: */ - /* An 8-bit bitmap, representing RGB or BGR decimated glyph images */ - /* used for display on rotated LCD displays; the bitmap is three */ - /* times taller than the original glyph image. See also */ - /* @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. */ - /* */ + /************************************************************************** + * + * @enum: + * FT_Pixel_Mode + * + * @description: + * An enumeration type used to describe the format of pixels in a given + * bitmap. Note that additional formats may be added in the future. + * + * @values: + * FT_PIXEL_MODE_NONE :: + * Value~0 is reserved. + * + * FT_PIXEL_MODE_MONO :: + * A monochrome bitmap, using 1~bit per pixel. Note that pixels are + * stored in most-significant order (MSB), which means that the + * left-most pixel in a byte has value 128. + * + * FT_PIXEL_MODE_GRAY :: + * An 8-bit bitmap, generally used to represent anti-aliased glyph + * images. Each pixel is stored in one byte. Note that the number of + * 'gray' levels is stored in the `num_grays` field of the @FT_Bitmap + * structure (it generally is 256). + * + * FT_PIXEL_MODE_GRAY2 :: + * A 2-bit per pixel bitmap, used to represent embedded anti-aliased + * bitmaps in font files according to the OpenType specification. We + * haven't found a single font using this format, however. + * + * FT_PIXEL_MODE_GRAY4 :: + * A 4-bit per pixel bitmap, representing embedded anti-aliased bitmaps + * in font files according to the OpenType specification. We haven't + * found a single font using this format, however. + * + * FT_PIXEL_MODE_LCD :: + * An 8-bit bitmap, representing RGB or BGR decimated glyph images used + * for display on LCD displays; the bitmap is three times wider than + * the original glyph image. See also @FT_RENDER_MODE_LCD. + * + * FT_PIXEL_MODE_LCD_V :: + * An 8-bit bitmap, representing RGB or BGR decimated glyph images used + * for display on rotated LCD displays; the bitmap is three times + * taller than the original glyph image. See also + * @FT_RENDER_MODE_LCD_V. + * + * FT_PIXEL_MODE_BGRA :: + * [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_ { FT_PIXEL_MODE_NONE = 0, @@ -193,7 +194,7 @@ FT_BEGIN_HEADER } FT_Pixel_Mode; - /* these constants are deprecated; use the corresponding `FT_Pixel_Mode' */ + /* these constants are deprecated; use the corresponding `FT_Pixel_Mode` */ /* values instead. */ #define ft_pixel_mode_none FT_PIXEL_MODE_NONE #define ft_pixel_mode_mono FT_PIXEL_MODE_MONO @@ -202,67 +203,61 @@ FT_BEGIN_HEADER #define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4 - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Bitmap */ - /* */ - /* <Description> */ - /* A structure used to describe a bitmap or pixmap to the raster. */ - /* Note that we now manage pixmaps of various depths through the */ - /* `pixel_mode' field. */ - /* */ - /* <Fields> */ - /* rows :: The number of bitmap rows. */ - /* */ - /* width :: The number of pixels in bitmap row. */ - /* */ - /* pitch :: The pitch's absolute value is the number of bytes */ - /* taken by one bitmap row, including padding. */ - /* However, the pitch is positive when the bitmap has */ - /* a `down' flow, and negative when it has an `up' */ - /* flow. In all cases, the pitch is an offset to add */ - /* to a bitmap pointer in order to go down one row. */ - /* */ - /* Note that `padding' means the alignment of a */ - /* bitmap to a byte border, and FreeType functions */ - /* normally align to the smallest possible integer */ - /* value. */ - /* */ - /* For the B/W rasterizer, `pitch' is always an even */ - /* number. */ - /* */ - /* To change the pitch of a bitmap (say, to make it a */ - /* multiple of 4), use @FT_Bitmap_Convert. */ - /* Alternatively, you might use callback functions to */ - /* directly render to the application's surface; see */ - /* the file `example2.cpp' in the tutorial for a */ - /* demonstration. */ - /* */ - /* buffer :: A typeless pointer to the bitmap buffer. This */ - /* value should be aligned on 32-bit boundaries in */ - /* most cases. */ - /* */ - /* num_grays :: This field is only used with */ - /* @FT_PIXEL_MODE_GRAY; it gives the number of gray */ - /* levels used in the bitmap. */ - /* */ - /* pixel_mode :: The pixel mode, i.e., how pixel bits are stored. */ - /* See @FT_Pixel_Mode for possible values. */ - /* */ - /* palette_mode :: This field is intended for paletted pixel modes; */ - /* it indicates how the palette is stored. Not */ - /* used currently. */ - /* */ - /* palette :: A typeless pointer to the bitmap palette; this */ - /* field is intended for paletted pixel modes. Not */ - /* used currently. */ - /* */ - /* <Note> */ - /* For now, the only pixel modes supported by FreeType are mono and */ - /* grays. However, drivers might be added in the future to support */ - /* more `colorful' options. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Bitmap + * + * @description: + * A structure used to describe a bitmap or pixmap to the raster. Note + * that we now manage pixmaps of various depths through the `pixel_mode` + * field. + * + * @fields: + * rows :: + * The number of bitmap rows. + * + * width :: + * The number of pixels in bitmap row. + * + * pitch :: + * The pitch's absolute value is the number of bytes taken by one + * bitmap row, including padding. However, the pitch is positive when + * the bitmap has a 'down' flow, and negative when it has an 'up' flow. + * In all cases, the pitch is an offset to add to a bitmap pointer in + * order to go down one row. + * + * Note that 'padding' means the alignment of a bitmap to a byte + * border, and FreeType functions normally align to the smallest + * possible integer value. + * + * For the B/W rasterizer, `pitch` is always an even number. + * + * To change the pitch of a bitmap (say, to make it a multiple of 4), + * use @FT_Bitmap_Convert. Alternatively, you might use callback + * functions to directly render to the application's surface; see the + * file `example2.cpp` in the tutorial for a demonstration. + * + * buffer :: + * A typeless pointer to the bitmap buffer. This value should be + * aligned on 32-bit boundaries in most cases. + * + * num_grays :: + * This field is only used with @FT_PIXEL_MODE_GRAY; it gives the + * number of gray levels used in the bitmap. + * + * pixel_mode :: + * The pixel mode, i.e., how pixel bits are stored. See @FT_Pixel_Mode + * for possible values. + * + * palette_mode :: + * This field is intended for paletted pixel modes; it indicates how + * the palette is stored. Not used currently. + * + * palette :: + * A typeless pointer to the bitmap palette; this field is intended for + * paletted pixel modes. Not used currently. + */ typedef struct FT_Bitmap_ { unsigned int rows; @@ -277,65 +272,68 @@ FT_BEGIN_HEADER } FT_Bitmap; - /*************************************************************************/ - /* */ - /* <Section> */ - /* outline_processing */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * outline_processing + * + */ - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Outline */ - /* */ - /* <Description> */ - /* This structure is used to describe an outline to the scan-line */ - /* converter. */ - /* */ - /* <Fields> */ - /* n_contours :: The number of contours in the outline. */ - /* */ - /* n_points :: The number of points in the outline. */ - /* */ - /* points :: A pointer to an array of `n_points' @FT_Vector */ - /* elements, giving the outline's point coordinates. */ - /* */ - /* tags :: A pointer to an array of `n_points' chars, giving */ - /* 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 */ - /* set. */ - /* */ - /* Bit~1 is meaningful for `off' points only. If set, */ - /* it indicates a third-order Bézier arc control point; */ - /* and a second-order control point if unset. */ - /* */ - /* If bit~2 is set, bits 5-7 contain the drop-out mode */ - /* (as defined in the OpenType specification; the value */ - /* is the same as the argument to the SCANMODE */ - /* instruction). */ - /* */ - /* Bits 3 and~4 are reserved for internal purposes. */ - /* */ - /* contours :: An array of `n_contours' shorts, giving the end */ - /* point of each contour within the outline. For */ - /* example, the first contour is defined by the points */ - /* `0' to `contours[0]', the second one is defined by */ - /* the points `contours[0]+1' to `contours[1]', etc. */ - /* */ - /* flags :: A set of bit flags used to characterize the outline */ - /* and give hints to the scan-converter and hinter on */ - /* how to convert/grid-fit it. See @FT_OUTLINE_XXX. */ - /* */ - /* <Note> */ - /* The B/W rasterizer only checks bit~2 in the `tags' array for the */ - /* first point of each contour. The drop-out mode as given with */ - /* @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, and */ - /* @FT_OUTLINE_INCLUDE_STUBS in `flags' is then overridden. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Outline + * + * @description: + * This structure is used to describe an outline to the scan-line + * converter. + * + * @fields: + * n_contours :: + * The number of contours in the outline. + * + * n_points :: + * The number of points in the outline. + * + * points :: + * A pointer to an array of `n_points` @FT_Vector elements, giving the + * outline's point coordinates. + * + * tags :: + * A pointer to an array of `n_points` chars, giving each outline + * point's type. + * + * If bit~0 is unset, the point is 'off' the curve, 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 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 (as defined in + * the OpenType specification; the value is the same as the argument to + * the 'SCANMODE' instruction). + * + * Bits 3 and~4 are reserved for internal purposes. + * + * contours :: + * An array of `n_contours` shorts, giving the end point of each + * contour within the outline. For example, the first contour is + * defined by the points '0' to `contours[0]`, the second one is + * defined by the points `contours[0]+1` to `contours[1]`, etc. + * + * flags :: + * A set of bit flags used to characterize the outline and give hints + * to the scan-converter and hinter on how to convert/grid-fit it. See + * @FT_OUTLINE_XXX. + * + * @note: + * The B/W rasterizer only checks bit~2 in the `tags` array for the first + * point of each contour. The drop-out mode as given with + * @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, and + * @FT_OUTLINE_INCLUDE_STUBS in `flags` is then overridden. + */ typedef struct FT_Outline_ { short n_contours; /* number of contours in glyph */ @@ -357,78 +355,76 @@ FT_BEGIN_HEADER #define FT_OUTLINE_POINTS_MAX SHRT_MAX - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_OUTLINE_XXX */ - /* */ - /* <Description> */ - /* A list of bit-field constants use for the flags in an outline's */ - /* `flags' field. */ - /* */ - /* <Values> */ - /* FT_OUTLINE_NONE :: */ - /* Value~0 is reserved. */ - /* */ - /* FT_OUTLINE_OWNER :: */ - /* If set, this flag indicates that the outline's field arrays */ - /* (i.e., `points', `flags', and `contours') are `owned' by the */ - /* outline object, and should thus be freed when it is destroyed. */ - /* */ - /* FT_OUTLINE_EVEN_ODD_FILL :: */ - /* By default, outlines are filled using the non-zero winding rule. */ - /* If set to 1, the outline will be filled using the even-odd fill */ - /* rule (only works with the smooth rasterizer). */ - /* */ - /* FT_OUTLINE_REVERSE_FILL :: */ - /* By default, outside contours of an outline are oriented in */ - /* clock-wise direction, as defined in the TrueType specification. */ - /* This flag is set if the outline uses the opposite direction */ - /* (typically for Type~1 fonts). This flag is ignored by the scan */ - /* converter. */ - /* */ - /* FT_OUTLINE_IGNORE_DROPOUTS :: */ - /* By default, the scan converter will try to detect drop-outs in */ - /* an outline and correct the glyph bitmap to ensure consistent */ - /* shape continuity. If set, this flag hints the scan-line */ - /* converter to ignore such cases. See below for more information. */ - /* */ - /* FT_OUTLINE_SMART_DROPOUTS :: */ - /* Select smart dropout control. If unset, use simple dropout */ - /* control. Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. See */ - /* below for more information. */ - /* */ - /* FT_OUTLINE_INCLUDE_STUBS :: */ - /* If set, turn pixels on for `stubs', otherwise exclude them. */ - /* Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. See below for */ - /* more information. */ - /* */ - /* FT_OUTLINE_HIGH_PRECISION :: */ - /* This flag indicates that the scan-line converter should try to */ - /* convert this outline to bitmaps with the highest possible */ - /* quality. It is typically set for small character sizes. Note */ - /* that this is only a hint that might be completely ignored by a */ - /* given scan-converter. */ - /* */ - /* FT_OUTLINE_SINGLE_PASS :: */ - /* This flag is set to force a given scan-converter to only use a */ - /* single pass over the outline to render a bitmap glyph image. */ - /* Normally, it is set for very large character sizes. It is only */ - /* a hint that might be completely ignored by a given */ - /* scan-converter. */ - /* */ - /* <Note> */ - /* The flags @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, */ - /* and @FT_OUTLINE_INCLUDE_STUBS are ignored by the smooth */ - /* rasterizer. */ - /* */ - /* There exists a second mechanism to pass the drop-out mode to the */ - /* B/W rasterizer; see the `tags' field in @FT_Outline. */ - /* */ - /* Please refer to the description of the `SCANTYPE' instruction in */ - /* the OpenType specification (in file `ttinst1.doc') how simple */ - /* drop-outs, smart drop-outs, and stubs are defined. */ - /* */ + /************************************************************************** + * + * @enum: + * FT_OUTLINE_XXX + * + * @description: + * A list of bit-field constants used for the flags in an outline's + * `flags` field. + * + * @values: + * FT_OUTLINE_NONE :: + * Value~0 is reserved. + * + * FT_OUTLINE_OWNER :: + * If set, this flag indicates that the outline's field arrays (i.e., + * `points`, `flags`, and `contours`) are 'owned' by the outline + * object, and should thus be freed when it is destroyed. + * + * FT_OUTLINE_EVEN_ODD_FILL :: + * By default, outlines are filled using the non-zero winding rule. If + * set to 1, the outline will be filled using the even-odd fill rule + * (only works with the smooth rasterizer). + * + * FT_OUTLINE_REVERSE_FILL :: + * By default, outside contours of an outline are oriented in + * clock-wise direction, as defined in the TrueType specification. + * This flag is set if the outline uses the opposite direction + * (typically for Type~1 fonts). This flag is ignored by the scan + * converter. + * + * FT_OUTLINE_IGNORE_DROPOUTS :: + * By default, the scan converter will try to detect drop-outs in an + * outline and correct the glyph bitmap to ensure consistent shape + * continuity. If set, this flag hints the scan-line converter to + * ignore such cases. See below for more information. + * + * FT_OUTLINE_SMART_DROPOUTS :: + * Select smart dropout control. If unset, use simple dropout control. + * Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. See below for more + * information. + * + * FT_OUTLINE_INCLUDE_STUBS :: + * If set, turn pixels on for 'stubs', otherwise exclude them. Ignored + * if @FT_OUTLINE_IGNORE_DROPOUTS is set. See below for more + * information. + * + * FT_OUTLINE_HIGH_PRECISION :: + * This flag indicates that the scan-line converter should try to + * convert this outline to bitmaps with the highest possible quality. + * It is typically set for small character sizes. Note that this is + * only a hint that might be completely ignored by a given + * scan-converter. + * + * FT_OUTLINE_SINGLE_PASS :: + * This flag is set to force a given scan-converter to only use a + * single pass over the outline to render a bitmap glyph image. + * Normally, it is set for very large character sizes. It is only a + * hint that might be completely ignored by a given scan-converter. + * + * @note: + * The flags @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, and + * @FT_OUTLINE_INCLUDE_STUBS are ignored by the smooth rasterizer. + * + * There exists a second mechanism to pass the drop-out mode to the B/W + * rasterizer; see the `tags` field in @FT_Outline. + * + * Please refer to the description of the 'SCANTYPE' instruction in the + * OpenType specification (in file `ttinst1.doc`) how simple drop-outs, + * smart drop-outs, and stubs are defined. + */ #define FT_OUTLINE_NONE 0x0 #define FT_OUTLINE_OWNER 0x1 #define FT_OUTLINE_EVEN_ODD_FILL 0x2 @@ -442,7 +438,7 @@ FT_BEGIN_HEADER /* these constants are deprecated; use the corresponding */ - /* `FT_OUTLINE_XXX' values instead */ + /* `FT_OUTLINE_XXX` values instead */ #define ft_outline_none FT_OUTLINE_NONE #define ft_outline_owner FT_OUTLINE_OWNER #define ft_outline_even_odd_fill FT_OUTLINE_EVEN_ODD_FILL @@ -453,20 +449,25 @@ FT_BEGIN_HEADER /* */ -#define FT_CURVE_TAG( flag ) ( flag & 3 ) +#define FT_CURVE_TAG( flag ) ( flag & 0x03 ) -#define FT_CURVE_TAG_ON 1 -#define FT_CURVE_TAG_CONIC 0 -#define FT_CURVE_TAG_CUBIC 2 + /* see the `tags` field in `FT_Outline` for a description of the values */ +#define FT_CURVE_TAG_ON 0x01 +#define FT_CURVE_TAG_CONIC 0x00 +#define FT_CURVE_TAG_CUBIC 0x02 -#define FT_CURVE_TAG_HAS_SCANMODE 4 +#define FT_CURVE_TAG_HAS_SCANMODE 0x04 -#define FT_CURVE_TAG_TOUCH_X 8 /* reserved for the TrueType hinter */ -#define FT_CURVE_TAG_TOUCH_Y 16 /* reserved for the TrueType hinter */ +#define FT_CURVE_TAG_TOUCH_X 0x08 /* reserved for TrueType hinter */ +#define FT_CURVE_TAG_TOUCH_Y 0x10 /* reserved for TrueType hinter */ #define FT_CURVE_TAG_TOUCH_BOTH ( FT_CURVE_TAG_TOUCH_X | \ FT_CURVE_TAG_TOUCH_Y ) + /* values 0x20, 0x40, and 0x80 are reserved */ + + /* these constants are deprecated; use the corresponding */ + /* `FT_CURVE_TAG_XXX` values instead */ #define FT_Curve_Tag_On FT_CURVE_TAG_ON #define FT_Curve_Tag_Conic FT_CURVE_TAG_CONIC #define FT_Curve_Tag_Cubic FT_CURVE_TAG_CUBIC @@ -474,26 +475,28 @@ FT_BEGIN_HEADER #define FT_Curve_Tag_Touch_Y FT_CURVE_TAG_TOUCH_Y - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_MoveToFunc */ - /* */ - /* <Description> */ - /* A function pointer type used to describe the signature of a `move */ - /* to' function during outline walking/decomposition. */ - /* */ - /* A `move to' is emitted to start a new contour in an outline. */ - /* */ - /* <Input> */ - /* to :: A pointer to the target point of the `move to'. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of the */ - /* decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_Outline_MoveToFunc + * + * @description: + * A function pointer type used to describe the signature of a 'move to' + * function during outline walking/decomposition. + * + * A 'move to' is emitted to start a new contour in an outline. + * + * @input: + * to :: + * A pointer to the target point of the 'move to'. + * + * user :: + * A typeless pointer, which is passed from the caller of the + * decomposition function. + * + * @return: + * Error code. 0~means success. + */ typedef int (*FT_Outline_MoveToFunc)( const FT_Vector* to, void* user ); @@ -501,26 +504,28 @@ FT_BEGIN_HEADER #define FT_Outline_MoveTo_Func FT_Outline_MoveToFunc - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_LineToFunc */ - /* */ - /* <Description> */ - /* A function pointer type used to describe the signature of a `line */ - /* to' function during outline walking/decomposition. */ - /* */ - /* A `line to' is emitted to indicate a segment in the outline. */ - /* */ - /* <Input> */ - /* to :: A pointer to the target point of the `line to'. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of the */ - /* decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_Outline_LineToFunc + * + * @description: + * A function pointer type used to describe the signature of a 'line to' + * function during outline walking/decomposition. + * + * A 'line to' is emitted to indicate a segment in the outline. + * + * @input: + * to :: + * A pointer to the target point of the 'line to'. + * + * user :: + * A typeless pointer, which is passed from the caller of the + * decomposition function. + * + * @return: + * Error code. 0~means success. + */ typedef int (*FT_Outline_LineToFunc)( const FT_Vector* to, void* user ); @@ -528,30 +533,33 @@ FT_BEGIN_HEADER #define FT_Outline_LineTo_Func FT_Outline_LineToFunc - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_ConicToFunc */ - /* */ - /* <Description> */ - /* 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 */ - /* the outline. */ - /* */ - /* <Input> */ - /* control :: An intermediate control point between the last position */ - /* and the new target in `to'. */ - /* */ - /* to :: A pointer to the target end point of the conic arc. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of */ - /* the decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_Outline_ConicToFunc + * + * @description: + * 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 Bezier arc in the + * outline. + * + * @input: + * control :: + * An intermediate control point between the last position and the new + * target in `to`. + * + * to :: + * A pointer to the target end point of the conic arc. + * + * user :: + * A typeless pointer, which is passed from the caller of the + * decomposition function. + * + * @return: + * Error code. 0~means success. + */ typedef int (*FT_Outline_ConicToFunc)( const FT_Vector* control, const FT_Vector* to, @@ -560,30 +568,34 @@ FT_BEGIN_HEADER #define FT_Outline_ConicTo_Func FT_Outline_ConicToFunc - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_CubicToFunc */ - /* */ - /* <Description> */ - /* 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. */ - /* */ - /* <Input> */ - /* control1 :: A pointer to the first Bézier control point. */ - /* */ - /* control2 :: A pointer to the second Bézier control point. */ - /* */ - /* to :: A pointer to the target end point. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of */ - /* the decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_Outline_CubicToFunc + * + * @description: + * 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 Bezier arc. + * + * @input: + * control1 :: + * A pointer to the first Bezier control point. + * + * control2 :: + * A pointer to the second Bezier control point. + * + * to :: + * A pointer to the target end point. + * + * user :: + * A typeless pointer, which is passed from the caller of the + * decomposition function. + * + * @return: + * Error code. 0~means success. + */ typedef int (*FT_Outline_CubicToFunc)( const FT_Vector* control1, const FT_Vector* control2, @@ -593,43 +605,49 @@ FT_BEGIN_HEADER #define FT_Outline_CubicTo_Func FT_Outline_CubicToFunc - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Outline_Funcs */ - /* */ - /* <Description> */ - /* A structure to hold various function pointers used during outline */ - /* decomposition in order to emit segments, conic, and cubic Béziers. */ - /* */ - /* <Fields> */ - /* move_to :: The `move to' emitter. */ - /* */ - /* line_to :: The segment emitter. */ - /* */ - /* conic_to :: The second-order Bézier arc emitter. */ - /* */ - /* cubic_to :: The third-order Bézier arc emitter. */ - /* */ - /* shift :: The shift that is applied to coordinates before they */ - /* are sent to the emitter. */ - /* */ - /* delta :: The delta that is applied to coordinates before they */ - /* are sent to the emitter, but after the shift. */ - /* */ - /* <Note> */ - /* The point coordinates sent to the emitters are the transformed */ - /* version of the original coordinates (this is important for high */ - /* accuracy during scan-conversion). The transformation is simple: */ - /* */ - /* { */ - /* x' = (x << shift) - delta */ - /* y' = (x << shift) - delta */ - /* } */ - /* */ - /* Set the values of `shift' and `delta' to~0 to get the original */ - /* point coordinates. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Outline_Funcs + * + * @description: + * A structure to hold various function pointers used during outline + * 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 Bezier 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. + * + * delta :: + * The delta that is applied to coordinates before they are sent to the + * emitter, but after the shift. + * + * @note: + * The point coordinates sent to the emitters are the transformed version + * of the original coordinates (this is important for high accuracy + * during scan-conversion). The transformation is simple: + * + * ``` + * x' = (x << shift) - delta + * y' = (y << shift) - delta + * ``` + * + * Set the values of `shift` and `delta` to~0 to get the original point + * coordinates. + */ typedef struct FT_Outline_Funcs_ { FT_Outline_MoveToFunc move_to; @@ -643,33 +661,32 @@ FT_BEGIN_HEADER } FT_Outline_Funcs; - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * basic_types + * + */ - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_IMAGE_TAG */ - /* */ - /* <Description> */ - /* This macro converts four-letter tags to an unsigned long type. */ - /* */ - /* <Note> */ - /* Since many 16-bit compilers don't like 32-bit enumerations, you */ - /* should redefine this macro in case of problems to something like */ - /* this: */ - /* */ - /* { */ - /* #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) value */ - /* } */ - /* */ - /* to get a simple enumeration without assigning special numbers. */ - /* */ + /************************************************************************** + * + * @macro: + * FT_IMAGE_TAG + * + * @description: + * This macro converts four-letter tags to an unsigned long type. + * + * @note: + * Since many 16-bit compilers don't like 32-bit enumerations, you should + * redefine this macro in case of problems to something like this: + * + * ``` + * #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) value + * ``` + * + * to get a simple enumeration without assigning special numbers. + */ #ifndef FT_IMAGE_TAG #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) \ value = ( ( (unsigned long)_x1 << 24 ) | \ @@ -679,44 +696,43 @@ FT_BEGIN_HEADER #endif /* FT_IMAGE_TAG */ - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Glyph_Format */ - /* */ - /* <Description> */ - /* An enumeration type used to describe the format of a given glyph */ - /* image. Note that this version of FreeType only supports two image */ - /* formats, even though future font drivers will be able to register */ - /* their own format. */ - /* */ - /* <Values> */ - /* FT_GLYPH_FORMAT_NONE :: */ - /* The value~0 is reserved. */ - /* */ - /* FT_GLYPH_FORMAT_COMPOSITE :: */ - /* The glyph image is a composite of several other images. This */ - /* format is _only_ used with @FT_LOAD_NO_RECURSE, and is used to */ - /* report compound glyphs (like accented characters). */ - /* */ - /* FT_GLYPH_FORMAT_BITMAP :: */ - /* The glyph image is a bitmap, and can be described as an */ - /* @FT_Bitmap. You generally need to access the `bitmap' field of */ - /* the @FT_GlyphSlotRec structure to read it. */ - /* */ - /* 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 */ - /* generally want to access the `outline' field of the */ - /* @FT_GlyphSlotRec structure to read it. */ - /* */ - /* FT_GLYPH_FORMAT_PLOTTER :: */ - /* The glyph image is a vectorial path with no inside and outside */ - /* contours. Some Type~1 fonts, like those in the Hershey family, */ - /* contain glyphs in this format. These are described as */ - /* @FT_Outline, but FreeType isn't currently capable of rendering */ - /* them correctly. */ - /* */ + /************************************************************************** + * + * @enum: + * FT_Glyph_Format + * + * @description: + * An enumeration type used to describe the format of a given glyph + * image. Note that this version of FreeType only supports two image + * formats, even though future font drivers will be able to register + * their own format. + * + * @values: + * FT_GLYPH_FORMAT_NONE :: + * The value~0 is reserved. + * + * FT_GLYPH_FORMAT_COMPOSITE :: + * The glyph image is a composite of several other images. This format + * is _only_ used with @FT_LOAD_NO_RECURSE, and is used to report + * compound glyphs (like accented characters). + * + * FT_GLYPH_FORMAT_BITMAP :: + * The glyph image is a bitmap, and can be described as an @FT_Bitmap. + * You generally need to access the `bitmap` field of the + * @FT_GlyphSlotRec structure to read it. + * + * FT_GLYPH_FORMAT_OUTLINE :: + * The glyph image is a vectorial outline made of line segments 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. + * + * FT_GLYPH_FORMAT_PLOTTER :: + * The glyph image is a vectorial path with no inside and outside + * contours. Some Type~1 fonts, like those in the Hershey family, + * contain glyphs in this format. These are described as @FT_Outline, + * but FreeType isn't currently capable of rendering them correctly. + */ typedef enum FT_Glyph_Format_ { FT_IMAGE_TAG( FT_GLYPH_FORMAT_NONE, 0, 0, 0, 0 ), @@ -730,7 +746,7 @@ FT_BEGIN_HEADER /* these constants are deprecated; use the corresponding */ - /* `FT_Glyph_Format' values instead. */ + /* `FT_Glyph_Format` values instead. */ #define ft_glyph_format_none FT_GLYPH_FORMAT_NONE #define ft_glyph_format_composite FT_GLYPH_FORMAT_COMPOSITE #define ft_glyph_format_bitmap FT_GLYPH_FORMAT_BITMAP @@ -749,87 +765,89 @@ FT_BEGIN_HEADER /*************************************************************************/ - /*************************************************************************/ - /* */ - /* A raster is a scan converter, in charge of rendering an outline into */ - /* a a bitmap. This section contains the public API for rasters. */ - /* */ - /* Note that in FreeType 2, all rasters are now encapsulated within */ - /* specific modules called `renderers'. See `ftrender.h' for more */ - /* details on renderers. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * A raster is a scan converter, in charge of rendering an outline into a + * bitmap. This section contains the public API for rasters. + * + * Note that in FreeType 2, all rasters are now encapsulated within + * specific modules called 'renderers'. See `ftrender.h` for more details + * on renderers. + * + */ - /*************************************************************************/ - /* */ - /* <Section> */ - /* raster */ - /* */ - /* <Title> */ - /* Scanline Converter */ - /* */ - /* <Abstract> */ - /* How vectorial outlines are converted into bitmaps and pixmaps. */ - /* */ - /* <Description> */ - /* This section contains technical definitions. */ - /* */ - /* <Order> */ - /* FT_Raster */ - /* FT_Span */ - /* FT_SpanFunc */ - /* */ - /* FT_Raster_Params */ - /* FT_RASTER_FLAG_XXX */ - /* */ - /* FT_Raster_NewFunc */ - /* FT_Raster_DoneFunc */ - /* FT_Raster_ResetFunc */ - /* FT_Raster_SetModeFunc */ - /* FT_Raster_RenderFunc */ - /* FT_Raster_Funcs */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * raster + * + * @title: + * Scanline Converter + * + * @abstract: + * How vectorial outlines are converted into bitmaps and pixmaps. + * + * @description: + * This section contains technical definitions. + * + * @order: + * FT_Raster + * FT_Span + * FT_SpanFunc + * + * FT_Raster_Params + * FT_RASTER_FLAG_XXX + * + * FT_Raster_NewFunc + * FT_Raster_DoneFunc + * FT_Raster_ResetFunc + * FT_Raster_SetModeFunc + * FT_Raster_RenderFunc + * FT_Raster_Funcs + * + */ - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Raster */ - /* */ - /* <Description> */ - /* An opaque handle (pointer) to a raster object. Each object can be */ - /* used independently to convert an outline into a bitmap or pixmap. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Raster + * + * @description: + * An opaque handle (pointer) to a raster object. Each object can be + * used independently to convert an outline into a bitmap or pixmap. + */ typedef struct FT_RasterRec_* FT_Raster; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Span */ - /* */ - /* <Description> */ - /* A structure used to model a single span of gray pixels when */ - /* rendering an anti-aliased bitmap. */ - /* */ - /* <Fields> */ - /* x :: The span's horizontal start position. */ - /* */ - /* len :: The span's length in pixels. */ - /* */ - /* coverage :: The span color/coverage, ranging from 0 (background) */ - /* to 255 (foreground). */ - /* */ - /* <Note> */ - /* This structure is used by the span drawing callback type named */ - /* @FT_SpanFunc that takes the y~coordinate of the span as a */ - /* parameter. */ - /* */ - /* The coverage value is always between 0 and 255. If you want less */ - /* gray values, the callback function has to reduce them. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Span + * + * @description: + * A structure used to model a single span of gray pixels when rendering + * an anti-aliased bitmap. + * + * @fields: + * x :: + * The span's horizontal start position. + * + * len :: + * The span's length in pixels. + * + * coverage :: + * The span color/coverage, ranging from 0 (background) to 255 + * (foreground). + * + * @note: + * This structure is used by the span drawing callback type named + * @FT_SpanFunc that takes the y~coordinate of the span as a parameter. + * + * The coverage value is always between 0 and 255. If you want less gray + * values, the callback function has to reduce them. + */ typedef struct FT_Span_ { short x; @@ -839,42 +857,36 @@ FT_BEGIN_HEADER } FT_Span; - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_SpanFunc */ - /* */ - /* <Description> */ - /* A function used as a call-back by the anti-aliased renderer in */ - /* order to let client applications draw themselves the gray pixel */ - /* spans on each scan line. */ - /* */ - /* <Input> */ - /* y :: The scanline's y~coordinate. */ - /* */ - /* count :: The number of spans to draw on this scanline. */ - /* */ - /* spans :: A table of `count' spans to draw on the scanline. */ - /* */ - /* user :: User-supplied data that is passed to the callback. */ - /* */ - /* <Note> */ - /* This callback allows client applications to directly render the */ - /* gray spans of the anti-aliased bitmap to any kind of surfaces. */ - /* */ - /* This can be used to write anti-aliased outlines directly to a */ - /* given background bitmap, and even perform translucency. */ - /* */ - /* Note that the `count' field cannot be greater than a fixed value */ - /* defined by the `FT_MAX_GRAY_SPANS' configuration macro in */ - /* `ftoption.h'. By default, this value is set to~32, which means */ - /* that if there are more than 32~spans on a given scanline, the */ - /* callback is called several times with the same `y' parameter in */ - /* order to draw all callbacks. */ - /* */ - /* Otherwise, the callback is only called once per scan-line, and */ - /* only for those scanlines that do have `gray' pixels on them. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_SpanFunc + * + * @description: + * A function used as a call-back by the anti-aliased renderer in order + * to let client applications draw themselves the gray pixel spans on + * each scan line. + * + * @input: + * y :: + * The scanline's y~coordinate. + * + * count :: + * The number of spans to draw on this scanline. + * + * spans :: + * A table of `count` spans to draw on the scanline. + * + * user :: + * User-supplied data that is passed to the callback. + * + * @note: + * This callback allows client applications to directly render the gray + * spans of the anti-aliased bitmap to any kind of surfaces. + * + * This can be used to write anti-aliased outlines directly to a given + * background bitmap, and even perform translucency. + */ typedef void (*FT_SpanFunc)( int y, int count, @@ -884,131 +896,131 @@ FT_BEGIN_HEADER #define FT_Raster_Span_Func FT_SpanFunc - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_BitTest_Func */ - /* */ - /* <Description> */ - /* Deprecated, unimplemented. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_Raster_BitTest_Func + * + * @description: + * Deprecated, unimplemented. + */ typedef int (*FT_Raster_BitTest_Func)( int y, int x, void* user ); - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_BitSet_Func */ - /* */ - /* <Description> */ - /* Deprecated, unimplemented. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_Raster_BitSet_Func + * + * @description: + * Deprecated, unimplemented. + */ typedef void (*FT_Raster_BitSet_Func)( int y, int x, void* user ); - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_RASTER_FLAG_XXX */ - /* */ - /* <Description> */ - /* A list of bit flag constants as used in the `flags' field of a */ - /* @FT_Raster_Params structure. */ - /* */ - /* <Values> */ - /* FT_RASTER_FLAG_DEFAULT :: This value is 0. */ - /* */ - /* FT_RASTER_FLAG_AA :: This flag is set to indicate that an */ - /* anti-aliased glyph image should be */ - /* generated. Otherwise, it will be */ - /* monochrome (1-bit). */ - /* */ - /* FT_RASTER_FLAG_DIRECT :: This flag is set to indicate direct */ - /* rendering. In this mode, client */ - /* applications must provide their own span */ - /* callback. This lets them directly */ - /* draw or compose over an existing bitmap. */ - /* If this bit is not set, the target */ - /* pixmap's buffer _must_ be zeroed before */ - /* rendering. */ - /* */ - /* Direct rendering is only possible with */ - /* anti-aliased glyphs. */ - /* */ - /* FT_RASTER_FLAG_CLIP :: This flag is only used in direct */ - /* rendering mode. If set, the output will */ - /* be clipped to a box specified in the */ - /* `clip_box' field of the */ - /* @FT_Raster_Params structure. */ - /* */ - /* Note that by default, the glyph bitmap */ - /* is clipped to the target pixmap, except */ - /* in direct rendering mode where all spans */ - /* are generated if no clipping box is set. */ - /* */ + /************************************************************************** + * + * @enum: + * FT_RASTER_FLAG_XXX + * + * @description: + * A list of bit flag constants as used in the `flags` field of a + * @FT_Raster_Params structure. + * + * @values: + * FT_RASTER_FLAG_DEFAULT :: + * This value is 0. + * + * FT_RASTER_FLAG_AA :: + * This flag is set to indicate that an anti-aliased glyph image should + * be generated. Otherwise, it will be monochrome (1-bit). + * + * FT_RASTER_FLAG_DIRECT :: + * This flag is set to indicate direct rendering. In this mode, client + * applications must provide their own span callback. This lets them + * directly draw or compose over an existing bitmap. If this bit is + * not set, the target pixmap's buffer _must_ be zeroed before + * rendering. + * + * Direct rendering is only possible with anti-aliased glyphs. + * + * FT_RASTER_FLAG_CLIP :: + * This flag is only used in direct rendering mode. If set, the output + * will be clipped to a box specified in the `clip_box` field of the + * @FT_Raster_Params structure. + * + * Note that by default, the glyph bitmap is clipped to the target + * pixmap, except in direct rendering mode where all spans are + * generated if no clipping box is set. + */ #define FT_RASTER_FLAG_DEFAULT 0x0 #define FT_RASTER_FLAG_AA 0x1 #define FT_RASTER_FLAG_DIRECT 0x2 #define FT_RASTER_FLAG_CLIP 0x4 /* these constants are deprecated; use the corresponding */ - /* `FT_RASTER_FLAG_XXX' values instead */ + /* `FT_RASTER_FLAG_XXX` values instead */ #define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT #define ft_raster_flag_aa FT_RASTER_FLAG_AA #define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT #define ft_raster_flag_clip FT_RASTER_FLAG_CLIP - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Raster_Params */ - /* */ - /* <Description> */ - /* A structure to hold the arguments used by a raster's render */ - /* function. */ - /* */ - /* <Fields> */ - /* target :: The target bitmap. */ - /* */ - /* source :: A pointer to the source glyph image (e.g., an */ - /* @FT_Outline). */ - /* */ - /* flags :: The rendering flags. */ - /* */ - /* gray_spans :: The gray span drawing callback. */ - /* */ - /* black_spans :: Unused. */ - /* */ - /* bit_test :: Unused. */ - /* */ - /* bit_set :: Unused. */ - /* */ - /* user :: User-supplied data that is passed to each drawing */ - /* callback. */ - /* */ - /* clip_box :: An optional clipping box. It is only used in */ - /* direct rendering mode. Note that coordinates here */ - /* should be expressed in _integer_ pixels (and not in */ - /* 26.6 fixed-point units). */ - /* */ - /* <Note> */ - /* An anti-aliased glyph bitmap is drawn if the @FT_RASTER_FLAG_AA */ - /* bit flag is set in the `flags' field, otherwise a monochrome */ - /* bitmap is generated. */ - /* */ - /* If the @FT_RASTER_FLAG_DIRECT bit flag is set in `flags', the */ - /* raster will call the `gray_spans' callback to draw gray pixel */ - /* spans. This allows direct composition over a pre-existing bitmap */ - /* through user-provided callbacks to perform the span drawing and */ - /* composition. Not supported by the monochrome rasterizer. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Raster_Params + * + * @description: + * A structure to hold the arguments used by a raster's render function. + * + * @fields: + * target :: + * The target bitmap. + * + * source :: + * A pointer to the source glyph image (e.g., an @FT_Outline). + * + * flags :: + * The rendering flags. + * + * gray_spans :: + * The gray span drawing callback. + * + * black_spans :: + * Unused. + * + * bit_test :: + * Unused. + * + * bit_set :: + * Unused. + * + * user :: + * User-supplied data that is passed to each drawing callback. + * + * clip_box :: + * An optional clipping box. It is only used in direct rendering mode. + * Note that coordinates here should be expressed in _integer_ pixels + * (and not in 26.6 fixed-point units). + * + * @note: + * An anti-aliased glyph bitmap is drawn if the @FT_RASTER_FLAG_AA bit + * flag is set in the `flags` field, otherwise a monochrome bitmap is + * generated. + * + * If the @FT_RASTER_FLAG_DIRECT bit flag is set in `flags`, the raster + * will call the `gray_spans` callback to draw gray pixel spans. This + * allows direct composition over a pre-existing bitmap through + * user-provided callbacks to perform the span drawing and composition. + * Not supported by the monochrome rasterizer. + */ typedef struct FT_Raster_Params_ { const FT_Bitmap* target; @@ -1024,30 +1036,32 @@ FT_BEGIN_HEADER } FT_Raster_Params; - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_NewFunc */ - /* */ - /* <Description> */ - /* A function used to create a new raster object. */ - /* */ - /* <Input> */ - /* memory :: A handle to the memory allocator. */ - /* */ - /* <Output> */ - /* raster :: A handle to the new raster object. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - /* <Note> */ - /* The `memory' parameter is a typeless pointer in order to avoid */ - /* un-wanted dependencies on the rest of the FreeType code. In */ - /* practice, it is an @FT_Memory object, i.e., a handle to the */ - /* standard FreeType memory allocator. However, this field can be */ - /* completely ignored by a given raster implementation. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_Raster_NewFunc + * + * @description: + * A function used to create a new raster object. + * + * @input: + * memory :: + * A handle to the memory allocator. + * + * @output: + * raster :: + * A handle to the new raster object. + * + * @return: + * Error code. 0~means success. + * + * @note: + * The `memory` parameter is a typeless pointer in order to avoid + * un-wanted dependencies on the rest of the FreeType code. In practice, + * it is an @FT_Memory object, i.e., a handle to the standard FreeType + * memory allocator. However, this field can be completely ignored by a + * given raster implementation. + */ typedef int (*FT_Raster_NewFunc)( void* memory, FT_Raster* raster ); @@ -1055,50 +1069,52 @@ FT_BEGIN_HEADER #define FT_Raster_New_Func FT_Raster_NewFunc - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_DoneFunc */ - /* */ - /* <Description> */ - /* A function used to destroy a given raster object. */ - /* */ - /* <Input> */ - /* raster :: A handle to the raster object. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_Raster_DoneFunc + * + * @description: + * A function used to destroy a given raster object. + * + * @input: + * raster :: + * A handle to the raster object. + */ typedef void (*FT_Raster_DoneFunc)( FT_Raster raster ); #define FT_Raster_Done_Func FT_Raster_DoneFunc - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_ResetFunc */ - /* */ - /* <Description> */ - /* FreeType provides an area of memory called the `render pool', */ - /* available to all registered rasters. This pool can be freely used */ - /* during a given scan-conversion but is shared by all rasters. Its */ - /* content is thus transient. */ - /* */ - /* This function is called each time the render pool changes, or just */ - /* after a new raster object is created. */ - /* */ - /* <Input> */ - /* raster :: A handle to the new raster object. */ - /* */ - /* pool_base :: The address in memory of the render pool. */ - /* */ - /* pool_size :: The size in bytes of the render pool. */ - /* */ - /* <Note> */ - /* Rasters can ignore the render pool and rely on dynamic memory */ - /* allocation if they want to (a handle to the memory allocator is */ - /* passed to the raster constructor). However, this is not */ - /* recommended for efficiency purposes. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_Raster_ResetFunc + * + * @description: + * FreeType used to provide an area of memory called the 'render pool' + * available to all registered rasterizers. This was not thread safe, + * however, and now FreeType never allocates this pool. + * + * This function is called after a new raster object is created. + * + * @input: + * raster :: + * A handle to the new raster object. + * + * pool_base :: + * Previously, the address in memory of the render pool. Set this to + * `NULL`. + * + * pool_size :: + * Previously, the size in bytes of the render pool. Set this to 0. + * + * @note: + * Rasterizers should rely on dynamic or stack allocation if they want to + * (a handle to the memory allocator is passed to the rasterizer + * constructor). + */ typedef void (*FT_Raster_ResetFunc)( FT_Raster raster, unsigned char* pool_base, @@ -1107,24 +1123,26 @@ FT_BEGIN_HEADER #define FT_Raster_Reset_Func FT_Raster_ResetFunc - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_SetModeFunc */ - /* */ - /* <Description> */ - /* This function is a generic facility to change modes or attributes */ - /* in a given raster. This can be used for debugging purposes, or */ - /* simply to allow implementation-specific `features' in a given */ - /* raster module. */ - /* */ - /* <Input> */ - /* raster :: A handle to the new raster object. */ - /* */ - /* mode :: A 4-byte tag used to name the mode or property. */ - /* */ - /* args :: A pointer to the new mode/property to use. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_Raster_SetModeFunc + * + * @description: + * This function is a generic facility to change modes or attributes in a + * given raster. This can be used for debugging purposes, or simply to + * allow implementation-specific 'features' in a given raster module. + * + * @input: + * raster :: + * A handle to the new raster object. + * + * mode :: + * A 4-byte tag used to name the mode or property. + * + * args :: + * A pointer to the new mode/property to use. + */ typedef int (*FT_Raster_SetModeFunc)( FT_Raster raster, unsigned long mode, @@ -1133,40 +1151,36 @@ FT_BEGIN_HEADER #define FT_Raster_Set_Mode_Func FT_Raster_SetModeFunc - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_RenderFunc */ - /* */ - /* <Description> */ - /* Invoke a given raster to scan-convert a given glyph image into a */ - /* target bitmap. */ - /* */ - /* <Input> */ - /* raster :: A handle to the raster object. */ - /* */ - /* params :: A pointer to an @FT_Raster_Params structure used to */ - /* store the rendering parameters. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - /* <Note> */ - /* The exact format of the source image depends on the raster's glyph */ - /* format defined in its @FT_Raster_Funcs structure. It can be an */ - /* @FT_Outline or anything else in order to support a large array of */ - /* glyph formats. */ - /* */ - /* Note also that the render function can fail and return a */ - /* `FT_Err_Unimplemented_Feature' error code if the raster used does */ - /* not support direct composition. */ - /* */ - /* XXX: For now, the standard raster doesn't support direct */ - /* composition but this should change for the final release (see */ - /* the files `demos/src/ftgrays.c' and `demos/src/ftgrays2.c' */ - /* for examples of distinct implementations that support direct */ - /* composition). */ - /* */ + /************************************************************************** + * + * @functype: + * FT_Raster_RenderFunc + * + * @description: + * Invoke a given raster to scan-convert a given glyph image into a + * target bitmap. + * + * @input: + * raster :: + * A handle to the raster object. + * + * params :: + * A pointer to an @FT_Raster_Params structure used to store the + * rendering parameters. + * + * @return: + * Error code. 0~means success. + * + * @note: + * The exact format of the source image depends on the raster's glyph + * format defined in its @FT_Raster_Funcs structure. It can be an + * @FT_Outline or anything else in order to support a large array of + * glyph formats. + * + * Note also that the render function can fail and return a + * `FT_Err_Unimplemented_Feature` error code if the raster used does not + * support direct composition. + */ typedef int (*FT_Raster_RenderFunc)( FT_Raster raster, const FT_Raster_Params* params ); @@ -1174,28 +1188,34 @@ FT_BEGIN_HEADER #define FT_Raster_Render_Func FT_Raster_RenderFunc - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Raster_Funcs */ - /* */ - /* <Description> */ - /* A structure used to describe a given raster class to the library. */ - /* */ - /* <Fields> */ - /* glyph_format :: The supported glyph format for this raster. */ - /* */ - /* raster_new :: The raster constructor. */ - /* */ - /* raster_reset :: Used to reset the render pool within the raster. */ - /* */ - /* raster_render :: A function to render a glyph into a given bitmap. */ - /* */ - /* raster_done :: The raster destructor. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Raster_Funcs + * + * @description: + * A structure used to describe a given raster class to the library. + * + * @fields: + * glyph_format :: + * The supported glyph format for this raster. + * + * raster_new :: + * The raster constructor. + * + * raster_reset :: + * Used to reset the render pool within the raster. + * + * raster_render :: + * A function to render a glyph into a given bitmap. + * + * raster_done :: + * The raster destructor. + */ typedef struct FT_Raster_Funcs_ { FT_Glyph_Format glyph_format; + FT_Raster_NewFunc raster_new; FT_Raster_ResetFunc raster_reset; FT_Raster_SetModeFunc raster_set_mode; @@ -1209,7 +1229,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTIMAGE_H__ */ +#endif /* FTIMAGE_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftincrem.h b/android/x86_64/include/freetype/ftincrem.h index 4c0246c5..b5547327 100644 --- a/android/x86_64/include/freetype/ftincrem.h +++ b/android/x86_64/include/freetype/ftincrem.h @@ -1,26 +1,27 @@ -/***************************************************************************/ -/* */ -/* ftincrem.h */ -/* */ -/* FreeType incremental loading (specification). */ -/* */ -/* Copyright 2002, 2003, 2006-2008, 2010, 2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftincrem.h + * + * FreeType incremental loading (specification). + * + * Copyright (C) 2002-2019 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 __FTINCREM_H__ -#define __FTINCREM_H__ +#ifndef FTINCREM_H_ +#define FTINCREM_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H +#include FT_PARAMETER_TAGS_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -31,7 +32,7 @@ FT_BEGIN_HEADER - /*************************************************************************** + /************************************************************************** * * @section: * incremental @@ -44,7 +45,7 @@ FT_BEGIN_HEADER * * @description: * This section contains various functions used to perform so-called - * `incremental' glyph loading. This is a mode where all glyphs loaded + * 'incremental' glyph loading. This is a mode where all glyphs loaded * from a given @FT_Face are provided by the client application. * * Apart from that, all other tables are loaded normally from the font @@ -59,23 +60,24 @@ FT_BEGIN_HEADER */ - /*************************************************************************** + /************************************************************************** * * @type: * FT_Incremental * * @description: * An opaque type describing a user-provided object used to implement - * `incremental' glyph loading within FreeType. This is used to support - * embedded fonts in certain environments (e.g., PostScript interpreters), - * where the glyph data isn't in the font file, or must be overridden by - * different values. + * 'incremental' glyph loading within FreeType. This is used to support + * embedded fonts in certain environments (e.g., PostScript + * interpreters), where the glyph data isn't in the font file, or must be + * overridden by different values. * * @note: - * It is up to client applications to create and implement @FT_Incremental - * objects, as long as they provide implementations for the methods - * @FT_Incremental_GetGlyphDataFunc, @FT_Incremental_FreeGlyphDataFunc - * and @FT_Incremental_GetGlyphMetricsFunc. + * It is up to client applications to create and implement + * @FT_Incremental objects, as long as they provide implementations for + * the methods @FT_Incremental_GetGlyphDataFunc, + * @FT_Incremental_FreeGlyphDataFunc and + * @FT_Incremental_GetGlyphMetricsFunc. * * See the description of @FT_Incremental_InterfaceRec to understand how * to use incremental objects with FreeType. @@ -84,14 +86,14 @@ FT_BEGIN_HEADER typedef struct FT_IncrementalRec_* FT_Incremental; - /*************************************************************************** + /************************************************************************** * * @struct: * FT_Incremental_MetricsRec * * @description: - * A small structure used to contain the basic glyph metrics returned - * by the @FT_Incremental_GetGlyphMetricsFunc method. + * A small structure used to contain the basic glyph metrics returned by + * the @FT_Incremental_GetGlyphMetricsFunc method. * * @fields: * bearing_x :: @@ -108,7 +110,7 @@ FT_BEGIN_HEADER * * @note: * These correspond to horizontal or vertical metrics depending on the - * value of the `vertical' argument to the function + * value of the `vertical` argument to the function * @FT_Incremental_GetGlyphMetricsFunc. * */ @@ -122,7 +124,7 @@ FT_BEGIN_HEADER } FT_Incremental_MetricsRec; - /*************************************************************************** + /************************************************************************** * * @struct: * FT_Incremental_Metrics @@ -134,7 +136,7 @@ FT_BEGIN_HEADER typedef struct FT_Incremental_MetricsRec_* FT_Incremental_Metrics; - /*************************************************************************** + /************************************************************************** * * @type: * FT_Incremental_GetGlyphDataFunc @@ -146,8 +148,8 @@ FT_BEGIN_HEADER * * Note that the format of the glyph's data bytes depends on the font * file format. For TrueType, it must correspond to the raw bytes within - * the `glyf' table. For PostScript formats, it must correspond to the - * *unencrypted* charstring bytes, without any `lenIV' header. It is + * the 'glyf' table. For PostScript formats, it must correspond to the + * **unencrypted** charstring bytes, without any `lenIV` header. It is * undefined for any other format. * * @input: @@ -168,8 +170,8 @@ FT_BEGIN_HEADER * * @note: * If this function returns successfully the method - * @FT_Incremental_FreeGlyphDataFunc will be called later to release - * the data bytes. + * @FT_Incremental_FreeGlyphDataFunc will be called later to release the + * data bytes. * * Nested calls to @FT_Incremental_GetGlyphDataFunc can happen for * compound glyphs. @@ -181,7 +183,7 @@ FT_BEGIN_HEADER FT_Data* adata ); - /*************************************************************************** + /************************************************************************** * * @type: * FT_Incremental_FreeGlyphDataFunc @@ -205,7 +207,7 @@ FT_BEGIN_HEADER FT_Data* data ); - /*************************************************************************** + /************************************************************************** * * @type: * FT_Incremental_GetGlyphMetricsFunc @@ -213,8 +215,8 @@ FT_BEGIN_HEADER * @description: * A function used to retrieve the basic metrics of a given glyph index * before accessing its data. This is necessary because, in certain - * formats like TrueType, the metrics are stored in a different place from - * the glyph images proper. + * formats like TrueType, the metrics are stored in a different place + * from the glyph images proper. * * @input: * incremental :: @@ -228,9 +230,9 @@ FT_BEGIN_HEADER * If true, return vertical metrics. * * ametrics :: - * This parameter is used for both input and output. - * The original glyph metrics, if any, in font units. If metrics are - * not available all the values must be set to zero. + * This parameter is used for both input and output. The original + * glyph metrics, if any, in font units. If metrics are not available + * all the values must be set to zero. * * @output: * ametrics :: @@ -251,8 +253,8 @@ FT_BEGIN_HEADER * FT_Incremental_FuncsRec * * @description: - * A table of functions for accessing fonts that load data - * incrementally. Used in @FT_Incremental_InterfaceRec. + * A table of functions for accessing fonts that load data incrementally. + * Used in @FT_Incremental_InterfaceRec. * * @fields: * get_glyph_data :: @@ -262,8 +264,8 @@ FT_BEGIN_HEADER * The function to release glyph data. Must not be null. * * get_glyph_metrics :: - * The function to get glyph metrics. May be null if the font does - * not provide overriding glyph metrics. + * The function to get glyph metrics. May be null if the font does not + * provide overriding glyph metrics. * */ typedef struct FT_Incremental_FuncsRec_ @@ -275,7 +277,7 @@ FT_BEGIN_HEADER } FT_Incremental_FuncsRec; - /*************************************************************************** + /************************************************************************** * * @struct: * FT_Incremental_InterfaceRec @@ -285,30 +287,30 @@ FT_BEGIN_HEADER * wants to support incremental glyph loading. You should use it with * @FT_PARAM_TAG_INCREMENTAL as in the following example: * - * { - * FT_Incremental_InterfaceRec inc_int; - * FT_Parameter parameter; - * FT_Open_Args open_args; + * ``` + * FT_Incremental_InterfaceRec inc_int; + * FT_Parameter parameter; + * FT_Open_Args open_args; * * - * // set up incremental descriptor - * inc_int.funcs = my_funcs; - * inc_int.object = my_object; + * // set up incremental descriptor + * inc_int.funcs = my_funcs; + * inc_int.object = my_object; * - * // set up optional parameter - * parameter.tag = FT_PARAM_TAG_INCREMENTAL; - * parameter.data = &inc_int; + * // set up optional parameter + * parameter.tag = FT_PARAM_TAG_INCREMENTAL; + * parameter.data = &inc_int; * - * // set up FT_Open_Args structure - * open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; - * open_args.pathname = my_font_pathname; - * open_args.num_params = 1; - * open_args.params = ¶meter; // we use one optional argument + * // set up FT_Open_Args structure + * open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; + * open_args.pathname = my_font_pathname; + * open_args.num_params = 1; + * open_args.params = ¶meter; // we use one optional argument * - * // open the font - * error = FT_Open_Face( library, &open_args, index, &face ); - * ... - * } + * // open the font + * error = FT_Open_Face( library, &open_args, index, &face ); + * ... + * ``` * */ typedef struct FT_Incremental_InterfaceRec_ @@ -319,7 +321,7 @@ FT_BEGIN_HEADER } FT_Incremental_InterfaceRec; - /*************************************************************************** + /************************************************************************** * * @type: * FT_Incremental_Interface @@ -331,24 +333,12 @@ 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' ) - /* */ FT_END_HEADER -#endif /* __FTINCREM_H__ */ +#endif /* FTINCREM_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftlcdfil.h b/android/x86_64/include/freetype/ftlcdfil.h index e8679c1a..58c60ea1 100644 --- a/android/x86_64/include/freetype/ftlcdfil.h +++ b/android/x86_64/include/freetype/ftlcdfil.h @@ -1,27 +1,28 @@ -/***************************************************************************/ -/* */ -/* ftlcdfil.h */ -/* */ -/* FreeType API for color filtering of subpixel bitmap glyphs */ -/* (specification). */ -/* */ -/* Copyright 2006-2008, 2010, 2013, 2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftlcdfil.h + * + * FreeType API for color filtering of subpixel bitmap glyphs + * (specification). + * + * Copyright (C) 2006-2019 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 __FT_LCD_FILTER_H__ -#define __FT_LCD_FILTER_H__ +#ifndef FTLCDFIL_H_ +#define FTLCDFIL_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H +#include FT_PARAMETER_TAGS_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -32,69 +33,98 @@ FT_BEGIN_HEADER - /*************************************************************************** + /************************************************************************** * * @section: - * lcd_filtering + * lcd_rendering * * @title: - * LCD Filtering + * Subpixel Rendering * * @abstract: - * Reduce color fringes of LCD-optimized bitmaps. + * API to control subpixel rendering. * * @description: - * The @FT_Library_SetLcdFilter API can be used to specify a low-pass - * filter, which is then applied to LCD-optimized bitmaps generated - * through @FT_Render_Glyph. This is useful to reduce color fringes - * that would occur with unfiltered rendering. + * FreeType provides two alternative subpixel rendering technologies. + * Should you define `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` in your + * `ftoption.h` file, this enables patented ClearType-style rendering. + * Otherwise, Harmony LCD rendering is enabled. These technologies are + * controlled differently and API described below, although always + * available, performs its function when appropriate method is enabled + * and does nothing otherwise. * - * Note that no filter is active by default, and that this function is - * *not* implemented in default builds of the library. You need to - * #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING in your `ftoption.h' file - * in order to activate it. + * ClearType-style LCD rendering exploits the color-striped structure of + * LCD pixels, increasing the available resolution in the direction of + * the stripe (usually horizontal RGB) by a factor of~3. Using the + * subpixels coverages unfiltered can create severe color fringes + * especially when rendering thin features. Indeed, to produce + * black-on-white text, the nearby color subpixels must be dimmed + * equally. * - * FreeType generates alpha coverage maps, which are linear by nature. - * For instance, the value 0x80 in bitmap representation means that - * (within numerical precision) 0x80/0xFF fraction of that pixel is - * covered by the glyph's outline. The blending function for placing - * text over a background is + * A good 5-tap FIR filter should be applied to subpixel coverages + * regardless of pixel boundaries and should have these properties: * - * { - * dst = alpha * src + (1 - alpha) * dst , - * } + * 1. It should be symmetrical, like {~a, b, c, b, a~}, to avoid + * any shifts in appearance. * - * which is known as OVER. However, when calculating the output of the - * OVER operator, the source colors should first be transformed to a - * linear color space, then alpha blended in that space, and transformed - * back to the output color space. + * 2. It should be color-balanced, meaning a~+ b~=~c, to reduce color + * fringes by distributing the computed coverage for one subpixel to + * all subpixels equally. * - * When linear light blending is used, the default FIR5 filtering - * weights (as given by FT_LCD_FILTER_DEFAULT) are no longer optimal, as - * they have been designed for black on white rendering while lacking - * gamma correction. To preserve color neutrality, weights for a FIR5 - * filter should be chosen according to two free parameters `a' and `c', - * and the FIR weights should be + * 3. It should be normalized, meaning 2a~+ 2b~+ c~=~1.0 to maintain + * overall brightness. * - * { - * [a - c, a + c, 2 * a, a + c, a - c] . - * } + * Boxy 3-tap filter {0, 1/3, 1/3, 1/3, 0} is sharper but is less + * forgiving of non-ideal gamma curves of a screen (and viewing angles), + * beveled filters are fuzzier but more tolerant. * - * This formula generates equal weights for all the color primaries - * across the filter kernel, which makes it colorless. One suggested - * set of weights is + * Use the @FT_Library_SetLcdFilter or @FT_Library_SetLcdFilterWeights + * API to specify a low-pass filter, which is then applied to + * subpixel-rendered bitmaps generated through @FT_Render_Glyph. * - * { - * [0x10, 0x50, 0x60, 0x50, 0x10] , - * } + * Harmony LCD rendering is suitable to panels with any regular subpixel + * structure, not just monitors with 3 color striped subpixels, as long + * as the color subpixels have fixed positions relative to the pixel + * center. In this case, each color channel is then rendered separately + * after shifting the outline opposite to the subpixel shift so that the + * coverage maps are aligned. This method is immune to color fringes + * because the shifts do not change integral coverage. * - * where `a' has value 0x30 and `b' value 0x20. The weights in filter - * may have a sum larger than 0x100, which increases coloration slightly - * but also improves contrast. + * The subpixel geometry must be specified by xy-coordinates for each + * subpixel. By convention they may come in the RGB order: {{-1/3, 0}, + * {0, 0}, {1/3, 0}} for standard RGB striped panel or {{-1/6, 1/4}, + * {-1/6, -1/4}, {1/3, 0}} for a certain PenTile panel. + * + * Use the @FT_Library_SetLcdGeometry API to specify subpixel positions. + * If one follows the RGB order convention, the same order applies to the + * resulting @FT_PIXEL_MODE_LCD and @FT_PIXEL_MODE_LCD_V bitmaps. Note, + * however, that the coordinate frame for the latter must be rotated + * clockwise. Harmony with default LCD geometry is equivalent to + * ClearType with light filter. + * + * As a result of ClearType filtering or Harmony rendering, the + * dimensions of LCD bitmaps can be either wider or taller than the + * dimensions of the corresponding outline with regard to the pixel grid. + * For example, for @FT_RENDER_MODE_LCD, the filter adds 2~subpixels to + * the left, and 2~subpixels to the right. The bitmap offset values are + * adjusted accordingly, so clients shouldn't need to modify their layout + * and glyph positioning code when enabling the filter. + * + * The ClearType and Harmony rendering is applicable to glyph bitmaps + * rendered through @FT_Render_Glyph, @FT_Load_Glyph, @FT_Load_Char, and + * @FT_Glyph_To_Bitmap, when @FT_RENDER_MODE_LCD or @FT_RENDER_MODE_LCD_V + * is specified. This API does not control @FT_Outline_Render and + * @FT_Outline_Get_Bitmap. + * + * The described algorithms can completely remove color artefacts when + * combined with gamma-corrected alpha blending in linear space. Each of + * the 3~alpha values (subpixels) must by independently used to blend one + * color channel. That is, red alpha blends the red channel of the text + * color with the red channel of the background pixel. */ - /**************************************************************************** + /************************************************************************** * * @enum: * FT_LcdFilter @@ -108,32 +138,32 @@ FT_BEGIN_HEADER * results in sometimes severe color fringes. * * FT_LCD_FILTER_DEFAULT :: - * The default filter reduces color fringes considerably, at the cost - * of a slight blurriness in the output. + * This is a beveled, normalized, and color-balanced five-tap filter + * with weights of [0x08 0x4D 0x56 0x4D 0x08] in 1/256th units. * * FT_LCD_FILTER_LIGHT :: - * The light filter is a variant that produces less blurriness at the - * cost of slightly more color fringes than the default one. It might - * be better, depending on taste, your monitor, or your personal vision. + * this is a boxy, normalized, and color-balanced three-tap filter with + * weights of [0x00 0x55 0x56 0x55 0x00] in 1/256th units. * * FT_LCD_FILTER_LEGACY :: + * FT_LCD_FILTER_LEGACY1 :: * This filter corresponds to the original libXft color filter. It * provides high contrast output but can exhibit really bad color * fringes if glyphs are not extremely well hinted to the pixel grid. - * In other words, it only works well if the TrueType bytecode - * interpreter is enabled *and* high-quality hinted fonts are used. - * * This filter is only provided for comparison purposes, and might be - * disabled or stay unsupported in the future. + * disabled or stay unsupported in the future. The second value is + * provided for compatibility with FontConfig, which historically used + * different enumeration, sometimes incorrectly forwarded to FreeType. * * @since: - * 2.3.0 + * 2.3.0 (`FT_LCD_FILTER_LEGACY1` since 2.6.2) */ typedef enum FT_LcdFilter_ { FT_LCD_FILTER_NONE = 0, FT_LCD_FILTER_DEFAULT = 1, FT_LCD_FILTER_LIGHT = 2, + FT_LCD_FILTER_LEGACY1 = 3, FT_LCD_FILTER_LEGACY = 16, FT_LCD_FILTER_MAX /* do not remove */ @@ -143,7 +173,7 @@ FT_BEGIN_HEADER /************************************************************************** * - * @func: + * @function: * FT_Library_SetLcdFilter * * @description: @@ -159,39 +189,23 @@ FT_BEGIN_HEADER * The filter type. * * You can use @FT_LCD_FILTER_NONE here to disable this feature, or - * @FT_LCD_FILTER_DEFAULT to use a default filter that should work - * well on most LCD screens. + * @FT_LCD_FILTER_DEFAULT to use a default filter that should work well + * on most LCD screens. * * @return: * FreeType error code. 0~means success. * * @note: * This feature is always disabled by default. Clients must make an - * explicit call to this function with a `filter' value other than + * explicit call to this function with a `filter` value other than * @FT_LCD_FILTER_NONE in order to enable it. * - * Due to *PATENTS* covering subpixel rendering, this function doesn't - * do anything except returning `FT_Err_Unimplemented_Feature' if the - * configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not + * Due to **PATENTS** covering subpixel rendering, this function doesn't + * do anything except returning `FT_Err_Unimplemented_Feature` if the + * configuration macro `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` is not * defined in your build of the library, which should correspond to all * default builds of FreeType. * - * The filter affects glyph bitmaps rendered through @FT_Render_Glyph, - * @FT_Outline_Get_Bitmap, @FT_Load_Glyph, and @FT_Load_Char. - * - * It does _not_ affect the output of @FT_Outline_Render and - * @FT_Outline_Get_Bitmap. - * - * If this feature is activated, the dimensions of LCD glyph bitmaps are - * either larger or taller than the dimensions of the corresponding - * outline with regards to the pixel grid. For example, for - * @FT_RENDER_MODE_LCD, the filter adds up to 3~pixels to the left, and - * up to 3~pixels to the right. - * - * The bitmap offset values are adjusted correctly, so clients shouldn't - * need to modify their layout and glyph positioning code when enabling - * the filter. - * * @since: * 2.3.0 */ @@ -202,15 +216,12 @@ FT_BEGIN_HEADER /************************************************************************** * - * @func: + * @function: * FT_Library_SetLcdFilterWeights * * @description: - * Use this function to override the filter weights selected by - * @FT_Library_SetLcdFilter. By default, FreeType uses the quintuple - * (0x00, 0x55, 0x56, 0x55, 0x00) for FT_LCD_FILTER_LIGHT, and (0x10, - * 0x40, 0x70, 0x40, 0x10) for FT_LCD_FILTER_DEFAULT and - * FT_LCD_FILTER_LEGACY. + * This function can be used to enable LCD filter with custom weights, + * instead of using presets in @FT_Library_SetLcdFilter. * * @input: * library :: @@ -218,20 +229,20 @@ FT_BEGIN_HEADER * * weights :: * A pointer to an array; the function copies the first five bytes and - * uses them to specify the filter weights. + * uses them to specify the filter weights in 1/256th units. * * @return: * FreeType error code. 0~means success. * * @note: - * Due to *PATENTS* covering subpixel rendering, this function doesn't - * do anything except returning `FT_Err_Unimplemented_Feature' if the - * configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not + * Due to **PATENTS** covering subpixel rendering, this function doesn't + * do anything except returning `FT_Err_Unimplemented_Feature` if the + * configuration macro `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` is not * defined in your build of the library, which should correspond to all * default builds of FreeType. * - * This function must be called after @FT_Library_SetLcdFilter to have - * any effect. + * LCD filter weights can also be set per face using @FT_Face_Properties + * with @FT_PARAM_TAG_LCD_FILTER_WEIGHTS. * * @since: * 2.4.0 @@ -240,12 +251,78 @@ FT_BEGIN_HEADER FT_Library_SetLcdFilterWeights( FT_Library library, unsigned char *weights ); + + /************************************************************************** + * + * @type: + * FT_LcdFiveTapFilter + * + * @description: + * 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 + + typedef FT_Byte FT_LcdFiveTapFilter[FT_LCD_FILTER_FIVE_TAPS]; + + + /************************************************************************** + * + * @function: + * FT_Library_SetLcdGeometry + * + * @description: + * This function can be used to modify default positions of color + * subpixels, which controls Harmony LCD rendering. + * + * @input: + * library :: + * A handle to the target library instance. + * + * sub :: + * A pointer to an array of 3 vectors in 26.6 fractional pixel format; + * the function modifies the default values, see the note below. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Subpixel geometry examples: + * + * - {{-21, 0}, {0, 0}, {21, 0}} is the default, corresponding to 3 color + * stripes shifted by a third of a pixel. This could be an RGB panel. + * + * - {{21, 0}, {0, 0}, {-21, 0}} looks the same as the default but can + * specify a BGR panel instead, while keeping the bitmap in the same + * RGB888 format. + * + * - {{0, 21}, {0, 0}, {0, -21}} is the vertical RGB, but the bitmap + * stays RGB888 as a result. + * + * - {{-11, 16}, {-11, -16}, {22, 0}} is a certain PenTile arrangement. + * + * This function does nothing and returns `FT_Err_Unimplemented_Feature` + * in the context of ClearType-style subpixel rendering when + * `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` is defined in your build of the + * library. + * + * @since: + * 2.10.0 + */ + FT_EXPORT( FT_Error ) + FT_Library_SetLcdGeometry( FT_Library library, + FT_Vector sub[3] ); + /* */ FT_END_HEADER -#endif /* __FT_LCD_FILTER_H__ */ +#endif /* FTLCDFIL_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftlist.h b/android/x86_64/include/freetype/ftlist.h index 9950a279..e3ccf888 100644 --- a/android/x86_64/include/freetype/ftlist.h +++ b/android/x86_64/include/freetype/ftlist.h @@ -1,34 +1,34 @@ -/***************************************************************************/ -/* */ -/* ftlist.h */ -/* */ -/* Generic list support for FreeType (specification). */ -/* */ -/* Copyright 1996-2001, 2003, 2007, 2010, 2013, 2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftlist.h + * + * Generic list support for FreeType (specification). + * + * Copyright (C) 1996-2019 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. + * + */ - /*************************************************************************/ - /* */ - /* This file implements functions relative to list processing. Its */ - /* data structures are defined in `freetype.h'. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * This file implements functions relative to list processing. Its data + * structures are defined in `freetype.h`. + * + */ -#ifndef __FTLIST_H__ -#define __FTLIST_H__ +#ifndef FTLIST_H_ +#define FTLIST_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -41,224 +41,245 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* list_processing */ - /* */ - /* <Title> */ - /* List Processing */ - /* */ - /* <Abstract> */ - /* Simple management of lists. */ - /* */ - /* <Description> */ - /* This section contains various definitions related to list */ - /* processing using doubly-linked nodes. */ - /* */ - /* <Order> */ - /* FT_List */ - /* FT_ListNode */ - /* FT_ListRec */ - /* FT_ListNodeRec */ - /* */ - /* FT_List_Add */ - /* FT_List_Insert */ - /* FT_List_Find */ - /* FT_List_Remove */ - /* FT_List_Up */ - /* FT_List_Iterate */ - /* FT_List_Iterator */ - /* FT_List_Finalize */ - /* FT_List_Destructor */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * list_processing + * + * @title: + * List Processing + * + * @abstract: + * Simple management of lists. + * + * @description: + * This section contains various definitions related to list processing + * using doubly-linked nodes. + * + * @order: + * FT_List + * FT_ListNode + * FT_ListRec + * FT_ListNodeRec + * + * FT_List_Add + * FT_List_Insert + * FT_List_Find + * FT_List_Remove + * FT_List_Up + * FT_List_Iterate + * FT_List_Iterator + * FT_List_Finalize + * FT_List_Destructor + * + */ - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Find */ - /* */ - /* <Description> */ - /* Find the list node for a given listed object. */ - /* */ - /* <Input> */ - /* list :: A pointer to the parent list. */ - /* data :: The address of the listed object. */ - /* */ - /* <Return> */ - /* List node. NULL if it wasn't found. */ - /* */ + /************************************************************************** + * + * @function: + * FT_List_Find + * + * @description: + * Find the list node for a given listed object. + * + * @input: + * list :: + * A pointer to the parent list. + * data :: + * The address of the listed object. + * + * @return: + * List node. `NULL` if it wasn't found. + */ FT_EXPORT( FT_ListNode ) FT_List_Find( FT_List list, void* data ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Add */ - /* */ - /* <Description> */ - /* Append an element to the end of a list. */ - /* */ - /* <InOut> */ - /* list :: A pointer to the parent list. */ - /* node :: The node to append. */ - /* */ + /************************************************************************** + * + * @function: + * FT_List_Add + * + * @description: + * Append an element to the end of a list. + * + * @inout: + * list :: + * A pointer to the parent list. + * node :: + * The node to append. + */ FT_EXPORT( void ) FT_List_Add( FT_List list, FT_ListNode node ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Insert */ - /* */ - /* <Description> */ - /* Insert an element at the head of a list. */ - /* */ - /* <InOut> */ - /* list :: A pointer to parent list. */ - /* node :: The node to insert. */ - /* */ + /************************************************************************** + * + * @function: + * FT_List_Insert + * + * @description: + * Insert an element at the head of a list. + * + * @inout: + * list :: + * A pointer to parent list. + * node :: + * The node to insert. + */ FT_EXPORT( void ) FT_List_Insert( FT_List list, FT_ListNode node ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Remove */ - /* */ - /* <Description> */ - /* Remove a node from a list. This function doesn't check whether */ - /* the node is in the list! */ - /* */ - /* <Input> */ - /* node :: The node to remove. */ - /* */ - /* <InOut> */ - /* list :: A pointer to the parent list. */ - /* */ + /************************************************************************** + * + * @function: + * FT_List_Remove + * + * @description: + * Remove a node from a list. This function doesn't check whether the + * node is in the list! + * + * @input: + * node :: + * The node to remove. + * + * @inout: + * list :: + * A pointer to the parent list. + */ FT_EXPORT( void ) FT_List_Remove( FT_List list, FT_ListNode node ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Up */ - /* */ - /* <Description> */ - /* Move a node to the head/top of a list. Used to maintain LRU */ - /* lists. */ - /* */ - /* <InOut> */ - /* list :: A pointer to the parent list. */ - /* node :: The node to move. */ - /* */ + /************************************************************************** + * + * @function: + * FT_List_Up + * + * @description: + * Move a node to the head/top of a list. Used to maintain LRU lists. + * + * @inout: + * list :: + * A pointer to the parent list. + * node :: + * The node to move. + */ FT_EXPORT( void ) FT_List_Up( FT_List list, FT_ListNode node ); - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_List_Iterator */ - /* */ - /* <Description> */ - /* An FT_List iterator function that is called during a list parse */ - /* by @FT_List_Iterate. */ - /* */ - /* <Input> */ - /* node :: The current iteration list node. */ - /* */ - /* user :: A typeless pointer passed to @FT_List_Iterate. */ - /* Can be used to point to the iteration's state. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_List_Iterator + * + * @description: + * An FT_List iterator function that is called during a list parse by + * @FT_List_Iterate. + * + * @input: + * node :: + * The current iteration list node. + * + * user :: + * A typeless pointer passed to @FT_List_Iterate. Can be used to point + * to the iteration's state. + */ typedef FT_Error (*FT_List_Iterator)( FT_ListNode node, void* user ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Iterate */ - /* */ - /* <Description> */ - /* Parse a list and calls a given iterator function on each element. */ - /* Note that parsing is stopped as soon as one of the iterator calls */ - /* returns a non-zero value. */ - /* */ - /* <Input> */ - /* list :: A handle to the list. */ - /* iterator :: An iterator function, called on each node of the list. */ - /* user :: A user-supplied field that is passed as the second */ - /* argument to the iterator. */ - /* */ - /* <Return> */ - /* The result (a FreeType error code) of the last iterator call. */ - /* */ + /************************************************************************** + * + * @function: + * FT_List_Iterate + * + * @description: + * Parse a list and calls a given iterator function on each element. + * Note that parsing is stopped as soon as one of the iterator calls + * returns a non-zero value. + * + * @input: + * list :: + * A handle to the list. + * iterator :: + * An iterator function, called on each node of the list. + * user :: + * A user-supplied field that is passed as the second argument to the + * iterator. + * + * @return: + * The result (a FreeType error code) of the last iterator call. + */ FT_EXPORT( FT_Error ) FT_List_Iterate( FT_List list, FT_List_Iterator iterator, void* user ); - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_List_Destructor */ - /* */ - /* <Description> */ - /* An @FT_List iterator function that is called during a list */ - /* finalization by @FT_List_Finalize to destroy all elements in a */ - /* given list. */ - /* */ - /* <Input> */ - /* system :: The current system object. */ - /* */ - /* data :: The current object to destroy. */ - /* */ - /* user :: A typeless pointer passed to @FT_List_Iterate. It can */ - /* be used to point to the iteration's state. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_List_Destructor + * + * @description: + * An @FT_List iterator function that is called during a list + * finalization by @FT_List_Finalize to destroy all elements in a given + * list. + * + * @input: + * system :: + * The current system object. + * + * data :: + * The current object to destroy. + * + * user :: + * A typeless pointer passed to @FT_List_Iterate. It can be used to + * point to the iteration's state. + */ typedef void (*FT_List_Destructor)( FT_Memory memory, void* data, void* user ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Finalize */ - /* */ - /* <Description> */ - /* Destroy all elements in the list as well as the list itself. */ - /* */ - /* <Input> */ - /* list :: A handle to the list. */ - /* */ - /* destroy :: A list destructor that will be applied to each element */ - /* of the list. Set this to NULL if not needed. */ - /* */ - /* memory :: The current memory object that handles deallocation. */ - /* */ - /* user :: A user-supplied field that is passed as the last */ - /* argument to the destructor. */ - /* */ - /* <Note> */ - /* This function expects that all nodes added by @FT_List_Add or */ - /* @FT_List_Insert have been dynamically allocated. */ - /* */ + /************************************************************************** + * + * @function: + * FT_List_Finalize + * + * @description: + * Destroy all elements in the list as well as the list itself. + * + * @input: + * list :: + * A handle to the list. + * + * destroy :: + * A list destructor that will be applied to each element of the list. + * Set this to `NULL` if not needed. + * + * memory :: + * The current memory object that handles deallocation. + * + * user :: + * A user-supplied field that is passed as the last argument to the + * destructor. + * + * @note: + * This function expects that all nodes added by @FT_List_Add or + * @FT_List_Insert have been dynamically allocated. + */ FT_EXPORT( void ) FT_List_Finalize( FT_List list, FT_List_Destructor destroy, @@ -270,7 +291,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTLIST_H__ */ +#endif /* FTLIST_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftlzw.h b/android/x86_64/include/freetype/ftlzw.h index 857c0c52..e3041830 100644 --- a/android/x86_64/include/freetype/ftlzw.h +++ b/android/x86_64/include/freetype/ftlzw.h @@ -1,25 +1,25 @@ -/***************************************************************************/ -/* */ -/* ftlzw.h */ -/* */ -/* LZW-compressed stream support. */ -/* */ -/* Copyright 2004, 2006 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftlzw.h + * + * LZW-compressed stream support. + * + * Copyright (C) 2004-2019 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 __FTLZW_H__ -#define __FTLZW_H__ +#ifndef FTLZW_H_ +#define FTLZW_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -31,59 +31,60 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* lzw */ - /* */ - /* <Title> */ - /* LZW Streams */ - /* */ - /* <Abstract> */ - /* Using LZW-compressed font files. */ - /* */ - /* <Description> */ - /* This section contains the declaration of LZW-specific functions. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * lzw + * + * @title: + * LZW Streams + * + * @abstract: + * Using LZW-compressed font files. + * + * @description: + * This section contains the declaration of LZW-specific functions. + * + */ - /************************************************************************ - * - * @function: - * FT_Stream_OpenLZW - * - * @description: - * Open a new stream to parse LZW-compressed font files. This is - * mainly used to support the compressed `*.pcf.Z' fonts that come - * with XFree86. - * - * @input: - * stream :: The target embedding stream. - * - * source :: The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close' on the new stream will - * *not* call `FT_Stream_Close' on the source stream. None of the stream - * objects will be released to the heap. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream - * - * In certain builds of the library, LZW compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a LZW stream from it - * and re-open the face with it. - * - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with LZW support. - */ + /************************************************************************** + * + * @function: + * FT_Stream_OpenLZW + * + * @description: + * Open a new stream to parse LZW-compressed font files. This is mainly + * used to support the compressed `*.pcf.Z` fonts that come with XFree86. + * + * @input: + * stream :: + * The target embedding stream. + * + * source :: + * The source stream. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The source stream must be opened _before_ calling this function. + * + * Calling the internal function `FT_Stream_Close` on the new stream will + * **not** call `FT_Stream_Close` on the source stream. None of the + * stream objects will be released to the heap. + * + * The stream implementation is very basic and resets the decompression + * process each time seeking backwards is needed within the stream + * + * In certain builds of the library, LZW compression recognition is + * automatically handled when calling @FT_New_Face or @FT_Open_Face. + * This means that if no font driver is capable of handling the raw + * compressed file, the library will try to open a LZW stream from it and + * re-open the face with it. + * + * This function may return `FT_Err_Unimplemented_Feature` if your build + * of FreeType was not compiled with LZW support. + */ FT_EXPORT( FT_Error ) FT_Stream_OpenLZW( FT_Stream stream, FT_Stream source ); @@ -93,7 +94,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTLZW_H__ */ +#endif /* FTLZW_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftmac.h b/android/x86_64/include/freetype/ftmac.h index 42874fe6..9c1b0832 100644 --- a/android/x86_64/include/freetype/ftmac.h +++ b/android/x86_64/include/freetype/ftmac.h @@ -1,101 +1,105 @@ -/***************************************************************************/ -/* */ -/* ftmac.h */ -/* */ -/* Additional Mac-specific API. */ -/* */ -/* Copyright 1996-2001, 2004, 2006, 2007, 2013 by */ -/* Just van Rossum, 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftmac.h + * + * Additional Mac-specific API. + * + * Copyright (C) 1996-2019 by + * Just van Rossum, 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. + * + */ -/***************************************************************************/ -/* */ -/* NOTE: Include this file after FT_FREETYPE_H and after any */ -/* Mac-specific headers (because this header uses Mac types such as */ -/* Handle, FSSpec, FSRef, etc.) */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * NOTE: Include this file after `FT_FREETYPE_H` and after any + * Mac-specific headers (because this header uses Mac types such as + * 'Handle', 'FSSpec', 'FSRef', etc.) + * + */ -#ifndef __FTMAC_H__ -#define __FTMAC_H__ +#ifndef FTMAC_H_ +#define FTMAC_H_ -#include <ft2build.h> +#include "ft2build.h" FT_BEGIN_HEADER -/* gcc-3.4.1 and later can warn about functions tagged as deprecated */ + /* gcc-3.1 and later can warn about functions tagged as deprecated */ #ifndef FT_DEPRECATED_ATTRIBUTE -#if defined(__GNUC__) && \ - ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1))) -#define FT_DEPRECATED_ATTRIBUTE __attribute__((deprecated)) +#if defined( __GNUC__ ) && \ + ( ( __GNUC__ >= 4 ) || \ + ( ( __GNUC__ == 3 ) && ( __GNUC_MINOR__ >= 1 ) ) ) +#define FT_DEPRECATED_ATTRIBUTE __attribute__(( deprecated )) #else #define FT_DEPRECATED_ATTRIBUTE #endif #endif - /*************************************************************************/ - /* */ - /* <Section> */ - /* mac_specific */ - /* */ - /* <Title> */ - /* Mac Specific Interface */ - /* */ - /* <Abstract> */ - /* Only available on the Macintosh. */ - /* */ - /* <Description> */ - /* The following definitions are only available if FreeType is */ - /* compiled on a Macintosh. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * mac_specific + * + * @title: + * Mac Specific Interface + * + * @abstract: + * Only available on the Macintosh. + * + * @description: + * The following definitions are only available if FreeType is compiled + * on a Macintosh. + * + */ - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face_From_FOND */ - /* */ - /* <Description> */ - /* Create a new face object from a FOND resource. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* fond :: A FOND resource. */ - /* */ - /* face_index :: Only supported for the -1 `sanity check' special */ - /* case. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Notes> */ - /* This function can be used to create @FT_Face objects from fonts */ - /* that are installed in the system as follows. */ - /* */ - /* { */ - /* fond = GetResource( 'FOND', fontName ); */ - /* error = FT_New_Face_From_FOND( library, fond, 0, &face ); */ - /* } */ - /* */ + /************************************************************************** + * + * @function: + * FT_New_Face_From_FOND + * + * @description: + * Create a new face object from a FOND resource. + * + * @inout: + * library :: + * A handle to the library resource. + * + * @input: + * fond :: + * A FOND resource. + * + * face_index :: + * Only supported for the -1 'sanity check' special case. + * + * @output: + * aface :: + * A handle to a new face object. + * + * @return: + * FreeType error code. 0~means success. + * + * @example: + * This function can be used to create @FT_Face objects from fonts that + * are installed in the system as follows. + * + * ``` + * fond = GetResource( 'FOND', fontName ); + * error = FT_New_Face_From_FOND( library, fond, 0, &face ); + * ``` + */ FT_EXPORT( FT_Error ) FT_New_Face_From_FOND( FT_Library library, Handle fond, @@ -104,28 +108,28 @@ FT_BEGIN_HEADER FT_DEPRECATED_ATTRIBUTE; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GetFile_From_Mac_Name */ - /* */ - /* <Description> */ - /* Return an FSSpec for the disk file containing the named font. */ - /* */ - /* <Input> */ - /* fontName :: Mac OS name of the font (e.g., Times New Roman */ - /* Bold). */ - /* */ - /* <Output> */ - /* pathSpec :: FSSpec to the file. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* face_index :: Index of the face. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_GetFile_From_Mac_Name + * + * @description: + * Return an FSSpec for the disk file containing the named font. + * + * @input: + * fontName :: + * Mac OS name of the font (e.g., Times New Roman Bold). + * + * @output: + * pathSpec :: + * FSSpec to the file. For passing to @FT_New_Face_From_FSSpec. + * + * face_index :: + * Index of the face. For passing to @FT_New_Face_From_FSSpec. + * + * @return: + * FreeType error code. 0~means success. + */ FT_EXPORT( FT_Error ) FT_GetFile_From_Mac_Name( const char* fontName, FSSpec* pathSpec, @@ -133,27 +137,28 @@ FT_BEGIN_HEADER FT_DEPRECATED_ATTRIBUTE; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GetFile_From_Mac_ATS_Name */ - /* */ - /* <Description> */ - /* Return an FSSpec for the disk file containing the named font. */ - /* */ - /* <Input> */ - /* fontName :: Mac OS name of the font in ATS framework. */ - /* */ - /* <Output> */ - /* pathSpec :: FSSpec to the file. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* face_index :: Index of the face. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_GetFile_From_Mac_ATS_Name + * + * @description: + * Return an FSSpec for the disk file containing the named font. + * + * @input: + * fontName :: + * Mac OS name of the font in ATS framework. + * + * @output: + * pathSpec :: + * FSSpec to the file. For passing to @FT_New_Face_From_FSSpec. + * + * face_index :: + * Index of the face. For passing to @FT_New_Face_From_FSSpec. + * + * @return: + * FreeType error code. 0~means success. + */ FT_EXPORT( FT_Error ) FT_GetFile_From_Mac_ATS_Name( const char* fontName, FSSpec* pathSpec, @@ -161,30 +166,33 @@ FT_BEGIN_HEADER FT_DEPRECATED_ATTRIBUTE; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GetFilePath_From_Mac_ATS_Name */ - /* */ - /* <Description> */ - /* Return a pathname of the disk file and face index for given font */ - /* name that is handled by ATS framework. */ - /* */ - /* <Input> */ - /* fontName :: Mac OS name of the font in ATS framework. */ - /* */ - /* <Output> */ - /* path :: Buffer to store pathname of the file. For passing */ - /* to @FT_New_Face. The client must allocate this */ - /* buffer before calling this function. */ - /* */ - /* maxPathSize :: Lengths of the buffer `path' that client allocated. */ - /* */ - /* face_index :: Index of the face. For passing to @FT_New_Face. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_GetFilePath_From_Mac_ATS_Name + * + * @description: + * Return a pathname of the disk file and face index for given font name + * that is handled by ATS framework. + * + * @input: + * fontName :: + * Mac OS name of the font in ATS framework. + * + * @output: + * path :: + * Buffer to store pathname of the file. For passing to @FT_New_Face. + * The client must allocate this buffer before calling this function. + * + * maxPathSize :: + * Lengths of the buffer `path` that client allocated. + * + * face_index :: + * Index of the face. For passing to @FT_New_Face. + * + * @return: + * FreeType error code. 0~means success. + */ FT_EXPORT( FT_Error ) FT_GetFilePath_From_Mac_ATS_Name( const char* fontName, UInt8* path, @@ -193,33 +201,37 @@ FT_BEGIN_HEADER FT_DEPRECATED_ATTRIBUTE; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face_From_FSSpec */ - /* */ - /* <Description> */ - /* Create a new face object from a given resource and typeface index */ - /* using an FSSpec to the font file. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* spec :: FSSpec to the font file. */ - /* */ - /* face_index :: The index of the face within the resource. The */ - /* first face has index~0. */ - /* <Output> */ - /* aface :: A handle to a new face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* @FT_New_Face_From_FSSpec is identical to @FT_New_Face except */ - /* it accepts an FSSpec instead of a path. */ - /* */ + /************************************************************************** + * + * @function: + * FT_New_Face_From_FSSpec + * + * @description: + * Create a new face object from a given resource and typeface index + * using an FSSpec to the font file. + * + * @inout: + * library :: + * A handle to the library resource. + * + * @input: + * spec :: + * FSSpec to the font file. + * + * face_index :: + * The index of the face within the resource. The first face has + * index~0. + * @output: + * aface :: + * A handle to a new face object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * @FT_New_Face_From_FSSpec is identical to @FT_New_Face except it + * accepts an FSSpec instead of a path. + */ FT_EXPORT( FT_Error ) FT_New_Face_From_FSSpec( FT_Library library, const FSSpec *spec, @@ -228,33 +240,37 @@ FT_BEGIN_HEADER FT_DEPRECATED_ATTRIBUTE; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face_From_FSRef */ - /* */ - /* <Description> */ - /* Create a new face object from a given resource and typeface index */ - /* using an FSRef to the font file. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* spec :: FSRef to the font file. */ - /* */ - /* face_index :: The index of the face within the resource. The */ - /* first face has index~0. */ - /* <Output> */ - /* aface :: A handle to a new face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* @FT_New_Face_From_FSRef is identical to @FT_New_Face except */ - /* it accepts an FSRef instead of a path. */ - /* */ + /************************************************************************** + * + * @function: + * FT_New_Face_From_FSRef + * + * @description: + * Create a new face object from a given resource and typeface index + * using an FSRef to the font file. + * + * @inout: + * library :: + * A handle to the library resource. + * + * @input: + * spec :: + * FSRef to the font file. + * + * face_index :: + * The index of the face within the resource. The first face has + * index~0. + * @output: + * aface :: + * A handle to a new face object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * @FT_New_Face_From_FSRef is identical to @FT_New_Face except it accepts + * an FSRef instead of a path. + */ FT_EXPORT( FT_Error ) FT_New_Face_From_FSRef( FT_Library library, const FSRef *ref, @@ -268,7 +284,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTMAC_H__ */ +#endif /* FTMAC_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftmm.h b/android/x86_64/include/freetype/ftmm.h index 2dcfd678..417c6dc5 100644 --- a/android/x86_64/include/freetype/ftmm.h +++ b/android/x86_64/include/freetype/ftmm.h @@ -1,75 +1,78 @@ -/***************************************************************************/ -/* */ -/* ftmm.h */ -/* */ -/* FreeType Multiple Master font interface (specification). */ -/* */ -/* Copyright 1996-2001, 2003, 2004, 2006, 2009, 2013 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftmm.h + * + * FreeType Multiple Master font interface (specification). + * + * Copyright (C) 1996-2019 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 __FTMM_H__ -#define __FTMM_H__ +#ifndef FTMM_H_ +#define FTMM_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_TYPE1_TABLES_H FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* multiple_masters */ - /* */ - /* <Title> */ - /* Multiple Masters */ - /* */ - /* <Abstract> */ - /* How to manage Multiple Masters fonts. */ - /* */ - /* <Description> */ - /* The following types and functions are used to manage Multiple */ - /* Master fonts, i.e., the selection of specific design instances by */ - /* setting design axis coordinates. */ - /* */ - /* George Williams has extended this interface to make it work with */ - /* both Type~1 Multiple Masters fonts and GX distortable (var) */ - /* fonts. Some of these routines only work with MM fonts, others */ - /* will work with both types. They are similar enough that a */ - /* consistent interface makes sense. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * multiple_masters + * + * @title: + * Multiple Masters + * + * @abstract: + * How to manage Multiple Masters fonts. + * + * @description: + * The following types and functions are used to manage Multiple Master + * fonts, i.e., the selection of specific design instances by setting + * design axis coordinates. + * + * Besides Adobe MM fonts, the interface supports Apple's TrueType GX and + * OpenType variation fonts. Some of the routines only work with Adobe + * MM fonts, others will work with all three types. They are similar + * enough that a consistent interface makes sense. + * + */ - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_MM_Axis */ - /* */ - /* <Description> */ - /* A simple structure used to model a given axis in design space for */ - /* Multiple Masters fonts. */ - /* */ - /* This structure can't be used for GX var fonts. */ - /* */ - /* <Fields> */ - /* name :: The axis's name. */ - /* */ - /* minimum :: The axis's minimum design coordinate. */ - /* */ - /* maximum :: The axis's maximum design coordinate. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_MM_Axis + * + * @description: + * A structure to model a given axis in design space for Multiple Masters + * fonts. + * + * This structure can't be used for TrueType GX or OpenType variation + * fonts. + * + * @fields: + * name :: + * The axis's name. + * + * minimum :: + * The axis's minimum design coordinate. + * + * maximum :: + * The axis's maximum design coordinate. + */ typedef struct FT_MM_Axis_ { FT_String* name; @@ -79,27 +82,29 @@ FT_BEGIN_HEADER } FT_MM_Axis; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Multi_Master */ - /* */ - /* <Description> */ - /* A structure used to model the axes and space of a Multiple Masters */ - /* font. */ - /* */ - /* This structure can't be used for GX var fonts. */ - /* */ - /* <Fields> */ - /* num_axis :: Number of axes. Cannot exceed~4. */ - /* */ - /* num_designs :: Number of designs; should be normally 2^num_axis */ - /* even though the Type~1 specification strangely */ - /* allows for intermediate designs to be present. This */ - /* number cannot exceed~16. */ - /* */ - /* axis :: A table of axis descriptors. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Multi_Master + * + * @description: + * A structure to model the axes and space of a Multiple Masters font. + * + * This structure can't be used for TrueType GX or OpenType variation + * fonts. + * + * @fields: + * num_axis :: + * Number of axes. Cannot exceed~4. + * + * num_designs :: + * Number of designs; should be normally 2^num_axis even though the + * Type~1 specification strangely allows for intermediate designs to be + * present. This number cannot exceed~16. + * + * axis :: + * A table of axis descriptors. + */ typedef struct FT_Multi_Master_ { FT_UInt num_axis; @@ -109,34 +114,45 @@ FT_BEGIN_HEADER } FT_Multi_Master; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Var_Axis */ - /* */ - /* <Description> */ - /* A simple structure used to model a given axis in design space for */ - /* Multiple Masters and GX var fonts. */ - /* */ - /* <Fields> */ - /* name :: The axis's name. */ - /* Not always meaningful for GX. */ - /* */ - /* minimum :: The axis's minimum design coordinate. */ - /* */ - /* def :: The axis's default design coordinate. */ - /* FreeType computes meaningful default values for MM; it */ - /* is then an integer value, not in 16.16 format. */ - /* */ - /* maximum :: The axis's maximum design coordinate. */ - /* */ - /* tag :: The axis's tag (the GX equivalent to `name'). */ - /* FreeType provides default values for MM if possible. */ - /* */ - /* strid :: The entry in `name' table (another GX version of */ - /* `name'). */ - /* Not meaningful for MM. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Var_Axis + * + * @description: + * A structure to model a given axis in design space for Multiple + * Masters, TrueType GX, and OpenType variation fonts. + * + * @fields: + * name :: + * The axis's name. Not always meaningful for TrueType GX or OpenType + * variation fonts. + * + * minimum :: + * The axis's minimum design coordinate. + * + * def :: + * The axis's default design coordinate. FreeType computes meaningful + * default values for Adobe MM fonts. + * + * maximum :: + * The axis's maximum design coordinate. + * + * tag :: + * The axis's tag (the equivalent to 'name' for TrueType GX and + * OpenType variation fonts). FreeType provides default values for + * Adobe MM fonts if possible. + * + * strid :: + * The axis name entry in the font's 'name' table. This is another + * (and often better) version of the 'name' field for TrueType GX or + * OpenType variation fonts. Not meaningful for Adobe MM fonts. + * + * @note: + * The fields `minimum`, `def`, and `maximum` are 16.16 fractional values + * for TrueType GX and OpenType variation fonts. For Adobe MM fonts, the + * values are integers. + */ typedef struct FT_Var_Axis_ { FT_String* name; @@ -151,62 +167,79 @@ FT_BEGIN_HEADER } FT_Var_Axis; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Var_Named_Style */ - /* */ - /* <Description> */ - /* A simple structure used to model a named style in a GX var font. */ - /* */ - /* This structure can't be used for MM fonts. */ - /* */ - /* <Fields> */ - /* coords :: The design coordinates for this style. */ - /* This is an array with one entry for each axis. */ - /* */ - /* strid :: The entry in `name' table identifying this style. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Var_Named_Style + * + * @description: + * A structure to model a named instance in a TrueType GX or OpenType + * variation font. + * + * This structure can't be used for Adobe MM fonts. + * + * @fields: + * coords :: + * The design coordinates for this instance. This is an array with one + * entry for each axis. + * + * strid :: + * The entry in 'name' table identifying this instance. + * + * psid :: + * The entry in 'name' table identifying a PostScript name for this + * instance. Value 0xFFFF indicates a missing entry. + */ typedef struct FT_Var_Named_Style_ { FT_Fixed* coords; FT_UInt strid; + FT_UInt psid; /* since 2.7.1 */ } FT_Var_Named_Style; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_MM_Var */ - /* */ - /* <Description> */ - /* A structure used to model the axes and space of a Multiple Masters */ - /* or GX var distortable font. */ - /* */ - /* Some fields are specific to one format and not to the other. */ - /* */ - /* <Fields> */ - /* num_axis :: The number of axes. The maximum value is~4 for */ - /* MM; no limit in GX. */ - /* */ - /* num_designs :: The number of designs; should be normally */ - /* 2^num_axis for MM fonts. Not meaningful for GX */ - /* (where every glyph could have a different */ - /* number of designs). */ - /* */ - /* num_namedstyles :: The number of named styles; only meaningful for */ - /* GX that allows certain design coordinates to */ - /* have a string ID (in the `name' table) */ - /* associated with them. The font can tell the */ - /* user that, for example, Weight=1.5 is `Bold'. */ - /* */ - /* axis :: A table of axis descriptors. */ - /* GX fonts contain slightly more data than MM. */ - /* */ - /* namedstyles :: A table of named styles. */ - /* Only meaningful with GX. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_MM_Var + * + * @description: + * A structure to model the axes and space of an Adobe MM, TrueType GX, + * or OpenType variation font. + * + * Some fields are specific to one format and not to the others. + * + * @fields: + * num_axis :: + * The number of axes. The maximum value is~4 for Adobe MM fonts; no + * limit in TrueType GX or OpenType variation fonts. + * + * num_designs :: + * The number of designs; should be normally 2^num_axis for Adobe MM + * fonts. Not meaningful for TrueType GX or OpenType variation fonts + * (where every glyph could have a different number of designs). + * + * num_namedstyles :: + * The number of named styles; a 'named style' is a tuple of design + * coordinates that has a string ID (in the 'name' table) associated + * with it. The font can tell the user that, for example, + * [Weight=1.5,Width=1.1] is 'Bold'. Another name for 'named style' is + * 'named instance'. + * + * For Adobe Multiple Masters fonts, this value is always zero because + * the format does not support named styles. + * + * axis :: + * An axis descriptor table. TrueType GX and OpenType variation fonts + * contain slightly more data than Adobe MM fonts. Memory management + * of this pointer is done internally by FreeType. + * + * namedstyle :: + * A named style (instance) table. Only meaningful for TrueType GX and + * OpenType variation fonts. Memory management of this pointer is done + * internally by FreeType. + */ typedef struct FT_MM_Var_ { FT_UInt num_axis; @@ -218,156 +251,503 @@ FT_BEGIN_HEADER } FT_MM_Var; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Multi_Master */ - /* */ - /* <Description> */ - /* Retrieve the Multiple Master descriptor of a given font. */ - /* */ - /* This function can't be used with GX fonts. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* <Output> */ - /* amaster :: The Multiple Masters descriptor. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Multi_Master + * + * @description: + * Retrieve a variation descriptor of a given Adobe MM font. + * + * This function can't be used with TrueType GX or OpenType variation + * fonts. + * + * @input: + * face :: + * A handle to the source face. + * + * @output: + * amaster :: + * The Multiple Masters descriptor. + * + * @return: + * FreeType error code. 0~means success. + */ FT_EXPORT( FT_Error ) FT_Get_Multi_Master( FT_Face face, FT_Multi_Master *amaster ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_MM_Var */ - /* */ - /* <Description> */ - /* Retrieve the Multiple Master/GX var descriptor of a given font. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* <Output> */ - /* amaster :: The Multiple Masters/GX var descriptor. */ - /* Allocates a data structure, which the user must free. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_MM_Var + * + * @description: + * Retrieve a variation descriptor for a given font. + * + * This function works with all supported variation formats. + * + * @input: + * face :: + * A handle to the source face. + * + * @output: + * amaster :: + * The variation descriptor. Allocates a data structure, which the + * user must deallocate with a call to @FT_Done_MM_Var after use. + * + * @return: + * FreeType error code. 0~means success. + */ FT_EXPORT( FT_Error ) FT_Get_MM_Var( FT_Face face, FT_MM_Var* *amaster ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_MM_Design_Coordinates */ - /* */ - /* <Description> */ - /* For Multiple Masters fonts, choose an interpolated font design */ - /* through design coordinates. */ - /* */ - /* This function can't be used with GX fonts. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face. */ - /* */ - /* <Input> */ - /* num_coords :: The number of design coordinates (must be equal to */ - /* the number of axes in the font). */ - /* */ - /* coords :: An array of design coordinates. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @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: + * FT_Set_MM_Design_Coordinates + * + * @description: + * For Adobe MM fonts, choose an interpolated font design through design + * coordinates. + * + * This function can't be used with TrueType GX or OpenType variation + * fonts. + * + * @inout: + * face :: + * A handle to the source face. + * + * @input: + * num_coords :: + * The number of available design coordinates. If it is larger than + * the number of axes, ignore the excess values. If it is smaller than + * the number of axes, use default values for the remaining axes. + * + * coords :: + * An array of design coordinates. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * [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, FT_UInt num_coords, FT_Long* coords ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Var_Design_Coordinates */ - /* */ - /* <Description> */ - /* For Multiple Master or GX Var fonts, choose an interpolated font */ - /* design through design coordinates. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face. */ - /* */ - /* <Input> */ - /* num_coords :: The number of design coordinates (must be equal to */ - /* the number of axes in the font). */ - /* */ - /* coords :: An array of design coordinates. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Set_Var_Design_Coordinates + * + * @description: + * Choose an interpolated font design through design coordinates. + * + * This function works with all supported variation formats. + * + * @inout: + * face :: + * A handle to the source face. + * + * @input: + * num_coords :: + * The number of available design coordinates. If it is larger than + * the number of axes, ignore the excess values. If it is smaller than + * the number of axes, use default values for the remaining axes. + * + * coords :: + * An array of design coordinates. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * [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, FT_UInt num_coords, FT_Fixed* coords ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_MM_Blend_Coordinates */ - /* */ - /* <Description> */ - /* For Multiple Masters and GX var fonts, choose an interpolated font */ - /* design through normalized blend coordinates. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face. */ - /* */ - /* <Input> */ - /* num_coords :: The number of design coordinates (must be equal to */ - /* the number of axes in the font). */ - /* */ - /* coords :: The design coordinates array (each element must be */ - /* between 0 and 1.0). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Var_Design_Coordinates + * + * @description: + * Get the design coordinates of the currently selected interpolated + * font. + * + * This function works with all supported variation formats. + * + * @input: + * face :: + * A handle to the source face. + * + * num_coords :: + * The number of design coordinates to retrieve. If it is larger than + * the number of axes, set the excess values to~0. + * + * @output: + * coords :: + * The design coordinates array. + * + * @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, + FT_Fixed* coords ); + + + /************************************************************************** + * + * @function: + * FT_Set_MM_Blend_Coordinates + * + * @description: + * Choose an interpolated font design through normalized blend + * coordinates. + * + * This function works with all supported variation formats. + * + * @inout: + * face :: + * A handle to the source face. + * + * @input: + * num_coords :: + * The number of available design coordinates. If it is larger than + * the number of axes, ignore the excess values. If it is smaller than + * the number of axes, use default values for the remaining axes. + * + * coords :: + * The design coordinates array (each element must be between 0 and 1.0 + * for Adobe MM fonts, and between -1.0 and 1.0 for TrueType GX and + * OpenType variation fonts). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * [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, FT_UInt num_coords, FT_Fixed* coords ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Var_Blend_Coordinates */ - /* */ - /* <Description> */ - /* This is another name of @FT_Set_MM_Blend_Coordinates. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_MM_Blend_Coordinates + * + * @description: + * Get the normalized blend coordinates of the currently selected + * interpolated font. + * + * This function works with all supported variation formats. + * + * @input: + * face :: + * A handle to the source face. + * + * num_coords :: + * The number of normalized blend coordinates to retrieve. If it is + * larger than the number of axes, set the excess values to~0.5 for + * Adobe MM fonts, and to~0 for TrueType GX and OpenType variation + * fonts. + * + * @output: + * coords :: + * The normalized blend coordinates array. + * + * @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, + FT_Fixed* coords ); + + + /************************************************************************** + * + * @function: + * FT_Set_Var_Blend_Coordinates + * + * @description: + * This is another name of @FT_Set_MM_Blend_Coordinates. + */ FT_EXPORT( FT_Error ) FT_Set_Var_Blend_Coordinates( FT_Face face, FT_UInt num_coords, FT_Fixed* coords ); + + /************************************************************************** + * + * @function: + * FT_Get_Var_Blend_Coordinates + * + * @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, + FT_Fixed* coords ); + + + /************************************************************************** + * + * @function: + * FT_Set_MM_WeightVector + * + * @description: + * For Adobe MM fonts, choose an interpolated font design by directly + * setting the weight vector. + * + * This function can't be used with TrueType GX or OpenType variation + * fonts. + * + * @inout: + * face :: + * A handle to the source face. + * + * @input: + * len :: + * The length of the weight vector array. If it is larger than the + * number of designs, the extra values are ignored. If it is less than + * the number of designs, the remaining values are set to zero. + * + * weightvector :: + * An array representing the weight vector. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Adobe Multiple Master fonts limit the number of designs, and thus the + * length of the weight vector to~16. + * + * If `len` is zero and `weightvector` is `NULL`, the weight vector array + * is reset to the default values. + * + * The Adobe documentation also states that the values in the + * WeightVector array must total 1.0 +/-~0.001. In practice this does + * not seem to be enforced, so is not enforced here, either. + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Error ) + FT_Set_MM_WeightVector( FT_Face face, + FT_UInt len, + FT_Fixed* weightvector ); + + + /************************************************************************** + * + * @function: + * FT_Get_MM_WeightVector + * + * @description: + * For Adobe MM fonts, retrieve the current weight vector of the font. + * + * This function can't be used with TrueType GX or OpenType variation + * fonts. + * + * @inout: + * face :: + * A handle to the source face. + * + * len :: + * A pointer to the size of the array to be filled. If the size of the + * array is less than the number of designs, `FT_Err_Invalid_Argument` + * is returned, and `len` is set to the required size (the number of + * designs). If the size of the array is greater than the number of + * designs, the remaining entries are set to~0. On successful + * completion, `len` is set to the number of designs (i.e., the number + * of values written to the array). + * + * @output: + * weightvector :: + * An array to be filled. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Adobe Multiple Master fonts limit the number of designs, and thus the + * length of the WeightVector to~16. + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Error ) + FT_Get_MM_WeightVector( FT_Face face, + FT_UInt* len, + FT_Fixed* weightvector ); + + + /************************************************************************** + * + * @enum: + * FT_VAR_AXIS_FLAG_XXX + * + * @description: + * A list of bit flags used in the return value of + * @FT_Get_Var_Axis_Flags. + * + * @values: + * 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 + + + /************************************************************************** + * + * @function: + * FT_Get_Var_Axis_Flags + * + * @description: + * Get the 'flags' field of an OpenType Variation Axis Record. + * + * Not meaningful for Adobe MM fonts (`*flags` is always zero). + * + * @input: + * master :: + * The variation descriptor. + * + * axis_index :: + * The index of the requested variation axis. + * + * @output: + * flags :: + * The 'flags' field. See @FT_VAR_AXIS_FLAG_XXX for possible values. + * + * @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 ); + /* */ FT_END_HEADER -#endif /* __FTMM_H__ */ +#endif /* FTMM_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftmodapi.h b/android/x86_64/include/freetype/ftmodapi.h index 980f15d3..dcf7957b 100644 --- a/android/x86_64/include/freetype/ftmodapi.h +++ b/android/x86_64/include/freetype/ftmodapi.h @@ -1,26 +1,26 @@ -/***************************************************************************/ -/* */ -/* ftmodapi.h */ -/* */ -/* FreeType modules public interface (specification). */ -/* */ -/* Copyright 1996-2003, 2006, 2008-2010, 2012, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftmodapi.h + * + * FreeType modules public interface (specification). + * + * Copyright (C) 1996-2019 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 __FTMODAPI_H__ -#define __FTMODAPI_H__ +#ifndef FTMODAPI_H_ +#define FTMODAPI_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -33,76 +33,77 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* module_management */ - /* */ - /* <Title> */ - /* Module Management */ - /* */ - /* <Abstract> */ - /* How to add, upgrade, remove, and control modules from FreeType. */ - /* */ - /* <Description> */ - /* The definitions below are used to manage modules within FreeType. */ - /* Modules can be added, upgraded, and removed at runtime. */ - /* Additionally, some module properties can be controlled also. */ - /* */ - /* Here is a list of possible values of the `module_name' field in */ - /* the @FT_Module_Class structure. */ - /* */ - /* { */ - /* autofitter */ - /* bdf */ - /* cff */ - /* gxvalid */ - /* otvalid */ - /* pcf */ - /* pfr */ - /* psaux */ - /* pshinter */ - /* psnames */ - /* raster1, raster5 */ - /* sfnt */ - /* smooth, smooth-lcd, smooth-lcdv */ - /* truetype */ - /* type1 */ - /* type42 */ - /* t1cid */ - /* winfonts */ - /* } */ - /* */ - /* Note that the FreeType Cache sub-system is not a FreeType module. */ - /* */ - /* <Order> */ - /* FT_Module */ - /* FT_Module_Constructor */ - /* FT_Module_Destructor */ - /* FT_Module_Requester */ - /* FT_Module_Class */ - /* */ - /* FT_Add_Module */ - /* FT_Get_Module */ - /* FT_Remove_Module */ - /* FT_Add_Default_Modules */ - /* */ - /* FT_Property_Set */ - /* FT_Property_Get */ - /* */ - /* FT_New_Library */ - /* FT_Done_Library */ - /* FT_Reference_Library */ - /* */ - /* FT_Renderer */ - /* FT_Renderer_Class */ - /* */ - /* FT_Get_Renderer */ - /* FT_Set_Renderer */ - /* */ - /* FT_Set_Debug_Hook */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * module_management + * + * @title: + * Module Management + * + * @abstract: + * How to add, upgrade, remove, and control modules from FreeType. + * + * @description: + * The definitions below are used to manage modules within FreeType. + * Modules can be added, upgraded, and removed at runtime. Additionally, + * some module properties can be controlled also. + * + * Here is a list of possible values of the `module_name` field in the + * @FT_Module_Class structure. + * + * ``` + * autofitter + * bdf + * cff + * gxvalid + * otvalid + * pcf + * pfr + * psaux + * pshinter + * psnames + * raster1 + * sfnt + * smooth, smooth-lcd, smooth-lcdv + * truetype + * type1 + * type42 + * t1cid + * winfonts + * ``` + * + * Note that the FreeType Cache sub-system is not a FreeType module. + * + * @order: + * FT_Module + * FT_Module_Constructor + * FT_Module_Destructor + * FT_Module_Requester + * FT_Module_Class + * + * FT_Add_Module + * FT_Get_Module + * FT_Remove_Module + * FT_Add_Default_Modules + * + * FT_Property_Set + * FT_Property_Get + * FT_Set_Default_Properties + * + * FT_New_Library + * FT_Done_Library + * FT_Reference_Library + * + * FT_Renderer + * FT_Renderer_Class + * + * FT_Get_Renderer + * FT_Set_Renderer + * + * FT_Set_Debug_Hook + * + */ /* module bit flags */ @@ -111,12 +112,14 @@ FT_BEGIN_HEADER #define FT_MODULE_HINTER 4 /* this module is a glyph hinter */ #define FT_MODULE_STYLER 8 /* this module is a styler */ -#define FT_MODULE_DRIVER_SCALABLE 0x100 /* the driver supports */ +#define FT_MODULE_DRIVER_SCALABLE 0x100 /* the driver supports */ /* scalable fonts */ -#define FT_MODULE_DRIVER_NO_OUTLINES 0x200 /* the driver does not */ +#define FT_MODULE_DRIVER_NO_OUTLINES 0x200 /* the driver does not */ /* support vector outlines */ -#define FT_MODULE_DRIVER_HAS_HINTER 0x400 /* the driver provides its */ +#define FT_MODULE_DRIVER_HAS_HINTER 0x400 /* the driver provides its */ /* own hinter */ +#define FT_MODULE_DRIVER_HINTS_LIGHTLY 0x800 /* the driver's hinter */ + /* produces LIGHT hints */ /* deprecated values */ @@ -125,91 +128,108 @@ FT_BEGIN_HEADER #define ft_module_hinter FT_MODULE_HINTER #define ft_module_styler FT_MODULE_STYLER -#define ft_module_driver_scalable FT_MODULE_DRIVER_SCALABLE -#define ft_module_driver_no_outlines FT_MODULE_DRIVER_NO_OUTLINES -#define ft_module_driver_has_hinter FT_MODULE_DRIVER_HAS_HINTER +#define ft_module_driver_scalable FT_MODULE_DRIVER_SCALABLE +#define ft_module_driver_no_outlines FT_MODULE_DRIVER_NO_OUTLINES +#define ft_module_driver_has_hinter FT_MODULE_DRIVER_HAS_HINTER +#define ft_module_driver_hints_lightly FT_MODULE_DRIVER_HINTS_LIGHTLY typedef FT_Pointer FT_Module_Interface; - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Constructor */ - /* */ - /* <Description> */ - /* A function used to initialize (not create) a new module object. */ - /* */ - /* <Input> */ - /* module :: The module to initialize. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_Module_Constructor + * + * @description: + * A function used to initialize (not create) a new module object. + * + * @input: + * module :: + * The module to initialize. + */ typedef FT_Error (*FT_Module_Constructor)( FT_Module module ); - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Destructor */ - /* */ - /* <Description> */ - /* A function used to finalize (not destroy) a given module object. */ - /* */ - /* <Input> */ - /* module :: The module to finalize. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_Module_Destructor + * + * @description: + * A function used to finalize (not destroy) a given module object. + * + * @input: + * module :: + * The module to finalize. + */ typedef void (*FT_Module_Destructor)( FT_Module module ); - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Requester */ - /* */ - /* <Description> */ - /* A function used to query a given module for a specific interface. */ - /* */ - /* <Input> */ - /* module :: The module to be searched. */ - /* */ - /* name :: The name of the interface in the module. */ - /* */ + /************************************************************************** + * + * @functype: + * FT_Module_Requester + * + * @description: + * A function used to query a given module for a specific interface. + * + * @input: + * module :: + * The module to be searched. + * + * name :: + * The name of the interface in the module. + */ typedef FT_Module_Interface (*FT_Module_Requester)( FT_Module module, const char* name ); - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Module_Class */ - /* */ - /* <Description> */ - /* The module class descriptor. */ - /* */ - /* <Fields> */ - /* module_flags :: Bit flags describing the module. */ - /* */ - /* module_size :: The size of one module object/instance in */ - /* bytes. */ - /* */ - /* module_name :: The name of the module. */ - /* */ - /* module_version :: The version, as a 16.16 fixed number */ - /* (major.minor). */ - /* */ - /* module_requires :: The version of FreeType this module requires, */ - /* as a 16.16 fixed number (major.minor). Starts */ - /* at version 2.0, i.e., 0x20000. */ - /* */ - /* module_init :: The initializing function. */ - /* */ - /* module_done :: The finalizing function. */ - /* */ - /* get_interface :: The interface requesting function. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Module_Class + * + * @description: + * The module class descriptor. While being a public structure necessary + * for FreeType's module bookkeeping, most of the fields are essentially + * internal, not to be used directly by an application. + * + * @fields: + * module_flags :: + * Bit flags describing the module. + * + * module_size :: + * The size of one module object/instance in bytes. + * + * module_name :: + * The name of the module. + * + * module_version :: + * The version, as a 16.16 fixed number (major.minor). + * + * module_requires :: + * The version of FreeType this module requires, as a 16.16 fixed + * number (major.minor). Starts at version 2.0, i.e., 0x20000. + * + * module_interface :: + * A typeless pointer to a structure (which varies between different + * modules) that holds the module's interface functions. This is + * essentially what `get_interface` returns. + * + * module_init :: + * The initializing function. + * + * module_done :: + * The finalizing function. + * + * get_interface :: + * The interface requesting function. + */ typedef struct FT_Module_Class_ { FT_ULong module_flags; @@ -227,83 +247,89 @@ FT_BEGIN_HEADER } FT_Module_Class; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Add_Module */ - /* */ - /* <Description> */ - /* Add a new module to a given library instance. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library object. */ - /* */ - /* <Input> */ - /* clazz :: A pointer to class descriptor for the module. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* An error will be returned if a module already exists by that name, */ - /* or if the module requires a version of FreeType that is too great. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Add_Module + * + * @description: + * Add a new module to a given library instance. + * + * @inout: + * library :: + * A handle to the library object. + * + * @input: + * clazz :: + * A pointer to class descriptor for the module. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * An error will be returned if a module already exists by that name, or + * if the module requires a version of FreeType that is too great. + */ FT_EXPORT( FT_Error ) FT_Add_Module( FT_Library library, const FT_Module_Class* clazz ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Module */ - /* */ - /* <Description> */ - /* Find a module by its name. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object. */ - /* */ - /* module_name :: The module's name (as an ASCII string). */ - /* */ - /* <Return> */ - /* A module handle. 0~if none was found. */ - /* */ - /* <Note> */ - /* FreeType's internal modules aren't documented very well, and you */ - /* should look up the source code for details. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Module + * + * @description: + * Find a module by its name. + * + * @input: + * library :: + * A handle to the library object. + * + * module_name :: + * The module's name (as an ASCII string). + * + * @return: + * A module handle. 0~if none was found. + * + * @note: + * FreeType's internal modules aren't documented very well, and you + * should look up the source code for details. + */ FT_EXPORT( FT_Module ) FT_Get_Module( FT_Library library, const char* module_name ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Remove_Module */ - /* */ - /* <Description> */ - /* Remove a given module from a library instance. */ - /* */ - /* <InOut> */ - /* library :: A handle to a library object. */ - /* */ - /* <Input> */ - /* module :: A handle to a module object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The module object is destroyed by the function in case of success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Remove_Module + * + * @description: + * Remove a given module from a library instance. + * + * @inout: + * library :: + * A handle to a library object. + * + * @input: + * module :: + * A handle to a module object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The module object is destroyed by the function in case of success. + */ FT_EXPORT( FT_Error ) FT_Remove_Module( FT_Library library, FT_Module module ); - /********************************************************************** + /************************************************************************** * * @function: * FT_Property_Set @@ -313,54 +339,51 @@ FT_BEGIN_HEADER * * @input: * library :: - * A handle to the library the module is part of. + * A handle to the library the module is part of. * * module_name :: - * The module name. + * 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. + * 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. + * 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 section @properties. * * @return: * FreeType error code. 0~means success. * * @note: - * If `module_name' isn't a valid module name, or `property_name' - * doesn't specify a valid property, or if `value' doesn't represent a + * If `module_name` isn't a valid module name, or `property_name` + * doesn't specify a valid property, or if `value` doesn't represent a * valid value for the given property, an error is returned. * - * The following example sets property `bar' (a simple integer) in - * module `foo' to value~1. + * The following example sets property 'bar' (a simple integer) in + * module 'foo' to value~1. * - * { + * ``` * FT_UInt bar; * * * bar = 1; * FT_Property_Set( library, "foo", "bar", &bar ); - * } + * ``` * * Note that the FreeType Cache sub-system doesn't recognize module * property changes. To avoid glyph lookup confusion within the cache - * you should call @FTC_Manager_Reset to completely flush the cache if - * a module property gets changed after @FTC_Manager_New has been - * called. + * you should call @FTC_Manager_Reset to completely flush the cache if a + * module property gets changed after @FTC_Manager_New has been called. * - * It is not possible to set properties of the FreeType Cache - * sub-system itself with FT_Property_Set; use @FTC_Property_Set - * instead. + * It is not possible to set properties of the FreeType Cache sub-system + * itself with FT_Property_Set; use @FTC_Property_Set instead. * - * @since: - * 2.4.11 + * @since: + * 2.4.11 * */ FT_EXPORT( FT_Error ) @@ -370,7 +393,7 @@ FT_BEGIN_HEADER const void* value ); - /********************************************************************** + /************************************************************************** * * @function: * FT_Property_Get @@ -380,33 +403,32 @@ FT_BEGIN_HEADER * * @input: * library :: - * A handle to the library the module is part of. + * A handle to the library the module is part of. * * module_name :: - * The module name. + * 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. + * 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 section @properties. * * @return: * FreeType error code. 0~means success. * * @note: - * If `module_name' isn't a valid module name, or `property_name' - * doesn't specify a valid property, or if `value' doesn't represent a + * If `module_name` isn't a valid module name, or `property_name` + * doesn't specify a valid property, or if `value` doesn't represent a * valid value for the given property, an error is returned. * - * The following example gets property `baz' (a range) in module `foo'. + * The following example gets property 'baz' (a range) in module 'foo'. * - * { + * ``` * typedef range_ * { * FT_Int32 min; @@ -418,13 +440,13 @@ FT_BEGIN_HEADER * * * FT_Property_Get( library, "foo", "baz", &baz ); - * } + * ``` * * It is not possible to retrieve properties of the FreeType Cache * sub-system with FT_Property_Get; use @FTC_Property_Get instead. * - * @since: - * 2.4.11 + * @since: + * 2.4.11 * */ FT_EXPORT( FT_Error ) @@ -434,142 +456,243 @@ FT_BEGIN_HEADER void* value ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Reference_Library */ - /* */ - /* <Description> */ - /* A counter gets initialized to~1 at the time an @FT_Library */ - /* structure is created. This function increments the counter. */ - /* @FT_Done_Library then only destroys a library if the counter is~1, */ - /* otherwise it simply decrements the counter. */ - /* */ - /* This function helps in managing life-cycles of structures that */ - /* reference @FT_Library objects. */ - /* */ - /* <Input> */ - /* library :: A handle to a target library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Since> */ - /* 2.4.2 */ - /* */ + /************************************************************************** + * + * @function: + * FT_Set_Default_Properties + * + * @description: + * If compilation option `FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES` is + * set, this function reads the `FREETYPE_PROPERTIES` environment + * variable to control driver properties. See section @properties for + * more. + * + * If the compilation option is not set, this function does nothing. + * + * `FREETYPE_PROPERTIES` has the following syntax form (broken here into + * multiple lines for better readability). + * + * ``` + * <optional whitespace> + * <module-name1> ':' + * <property-name1> '=' <property-value1> + * <whitespace> + * <module-name2> ':' + * <property-name2> '=' <property-value2> + * ... + * ``` + * + * Example: + * + * ``` + * FREETYPE_PROPERTIES=truetype:interpreter-version=35 \ + * cff:no-stem-darkening=1 \ + * autofitter:warping=1 + * ``` + * + * @inout: + * library :: + * A handle to a new library object. + * + * @since: + * 2.8 + */ + FT_EXPORT( void ) + FT_Set_Default_Properties( FT_Library library ); + + + /************************************************************************** + * + * @function: + * FT_Reference_Library + * + * @description: + * A counter gets initialized to~1 at the time an @FT_Library structure + * is created. This function increments the counter. @FT_Done_Library + * then only destroys a library if the counter is~1, otherwise it simply + * decrements the counter. + * + * This function helps in managing life-cycles of structures that + * reference @FT_Library objects. + * + * @input: + * library :: + * A handle to a target library object. + * + * @return: + * FreeType error code. 0~means success. + * + * @since: + * 2.4.2 + */ FT_EXPORT( FT_Error ) FT_Reference_Library( FT_Library library ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Library */ - /* */ - /* <Description> */ - /* This function is used to create a new FreeType library instance */ - /* from a given memory object. It is thus possible to use libraries */ - /* with distinct memory allocators within the same program. */ - /* */ - /* Normally, you would call this function (followed by a call to */ - /* @FT_Add_Default_Modules or a series of calls to @FT_Add_Module) */ - /* instead of @FT_Init_FreeType to initialize the FreeType library. */ - /* */ - /* Don't use @FT_Done_FreeType but @FT_Done_Library to destroy a */ - /* library instance. */ - /* */ - /* <Input> */ - /* memory :: A handle to the original memory object. */ - /* */ - /* <Output> */ - /* alibrary :: A pointer to handle of a new library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Library. */ - /* */ + /************************************************************************** + * + * @function: + * FT_New_Library + * + * @description: + * This function is used to create a new FreeType library instance from a + * given memory object. It is thus possible to use libraries with + * distinct memory allocators within the same program. Note, however, + * that the used @FT_Memory structure is expected to remain valid for the + * life of the @FT_Library object. + * + * Normally, you would call this function (followed by a call to + * @FT_Add_Default_Modules or a series of calls to @FT_Add_Module, and a + * call to @FT_Set_Default_Properties) instead of @FT_Init_FreeType to + * initialize the FreeType library. + * + * Don't use @FT_Done_FreeType but @FT_Done_Library to destroy a library + * instance. + * + * @input: + * memory :: + * A handle to the original memory object. + * + * @output: + * alibrary :: + * A pointer to handle of a new library object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * See the discussion of reference counters in the description of + * @FT_Reference_Library. + */ FT_EXPORT( FT_Error ) FT_New_Library( FT_Memory memory, FT_Library *alibrary ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Library */ - /* */ - /* <Description> */ - /* Discard a given library object. This closes all drivers and */ - /* discards all resource objects. */ - /* */ - /* <Input> */ - /* library :: A handle to the target library. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Library. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Done_Library + * + * @description: + * Discard a given library object. This closes all drivers and discards + * all resource objects. + * + * @input: + * library :: + * A handle to the target library. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * See the discussion of reference counters in the description of + * @FT_Reference_Library. + */ FT_EXPORT( FT_Error ) FT_Done_Library( FT_Library library ); - /* */ + /************************************************************************** + * + * @functype: + * FT_DebugHook_Func + * + * @description: + * A drop-in replacement (or rather a wrapper) for the bytecode or + * charstring interpreter's main loop function. + * + * Its job is essentially + * + * - to activate debug mode to enforce single-stepping, + * + * - to call the main loop function to interpret the next opcode, and + * + * - to show the changed context to the user. + * + * An example for such a main loop function is `TT_RunIns` (declared in + * FreeType's internal header file `src/truetype/ttinterp.h`). + * + * Have a look at the source code of the `ttdebug` FreeType demo program + * for an example of a drop-in replacement. + * + * @inout: + * arg :: + * A typeless pointer, to be cast to the main loop function's data + * structure (which depends on the font module). For TrueType fonts + * it is bytecode interpreter's execution context, `TT_ExecContext`, + * which is declared in FreeType's internal header file `tttypes.h`. + */ typedef void (*FT_DebugHook_Func)( void* arg ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Debug_Hook */ - /* */ - /* <Description> */ - /* Set a debug hook function for debugging the interpreter of a font */ - /* format. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library object. */ - /* */ - /* <Input> */ - /* hook_index :: The index of the debug hook. You should use the */ - /* values defined in `ftobjs.h', e.g., */ - /* `FT_DEBUG_HOOK_TRUETYPE'. */ - /* */ - /* debug_hook :: The function used to debug the interpreter. */ - /* */ - /* <Note> */ - /* Currently, four debug hook slots are available, but only two (for */ - /* the TrueType and the Type~1 interpreter) are defined. */ - /* */ - /* Since the internal headers of FreeType are no longer installed, */ - /* the symbol `FT_DEBUG_HOOK_TRUETYPE' isn't available publicly. */ - /* This is a bug and will be fixed in a forthcoming release. */ - /* */ + /************************************************************************** + * + * @enum: + * FT_DEBUG_HOOK_XXX + * + * @description: + * A list of named debug hook indices. + * + * @values: + * FT_DEBUG_HOOK_TRUETYPE:: + * This hook index identifies the TrueType bytecode debugger. + */ +#define FT_DEBUG_HOOK_TRUETYPE 0 + + + /************************************************************************** + * + * @function: + * FT_Set_Debug_Hook + * + * @description: + * Set a debug hook function for debugging the interpreter of a font + * format. + * + * While this is a public API function, an application needs access to + * FreeType's internal header files to do something useful. + * + * Have a look at the source code of the `ttdebug` FreeType demo program + * for an example of its usage. + * + * @inout: + * library :: + * A handle to the library object. + * + * @input: + * hook_index :: + * The index of the debug hook. You should use defined enumeration + * macros like @FT_DEBUG_HOOK_TRUETYPE. + * + * debug_hook :: + * The function used to debug the interpreter. + * + * @note: + * Currently, four debug hook slots are available, but only one (for the + * TrueType interpreter) is defined. + */ FT_EXPORT( void ) FT_Set_Debug_Hook( FT_Library library, FT_UInt hook_index, FT_DebugHook_Func debug_hook ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Add_Default_Modules */ - /* */ - /* <Description> */ - /* Add the set of default drivers to a given library object. */ - /* This is only useful when you create a library object with */ - /* @FT_New_Library (usually to plug a custom memory manager). */ - /* */ - /* <InOut> */ - /* library :: A handle to a new library object. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Add_Default_Modules + * + * @description: + * Add the set of default drivers to a given library object. This is + * only useful when you create a library object with @FT_New_Library + * (usually to plug a custom memory manager). + * + * @inout: + * library :: + * A handle to a new library object. + */ FT_EXPORT( void ) FT_Add_Default_Modules( FT_Library library ); @@ -595,33 +718,28 @@ FT_BEGIN_HEADER /************************************************************************** * - * @enum: - * FT_TrueTypeEngineType + * @enum: + * FT_TrueTypeEngineType * - * @description: - * A list of values describing which kind of TrueType bytecode - * engine is implemented in a given FT_Library instance. It is used - * by the @FT_Get_TrueType_Engine_Type function. + * @description: + * A list of values describing which kind of TrueType bytecode engine is + * implemented in a given FT_Library instance. It is used by the + * @FT_Get_TrueType_Engine_Type function. * - * @values: - * FT_TRUETYPE_ENGINE_TYPE_NONE :: - * The library doesn't implement any kind of bytecode interpreter. + * @values: + * FT_TRUETYPE_ENGINE_TYPE_NONE :: + * The library doesn't implement any kind of bytecode interpreter. * - * FT_TRUETYPE_ENGINE_TYPE_UNPATENTED :: - * The library implements a bytecode interpreter that doesn't - * support the patented operations of the TrueType virtual machine. + * FT_TRUETYPE_ENGINE_TYPE_UNPATENTED :: + * Deprecated and removed. * - * Its main use is to load certain Asian fonts that position and - * scale glyph components with bytecode instructions. It produces - * bad output for most other fonts. + * FT_TRUETYPE_ENGINE_TYPE_PATENTED :: + * The library implements a bytecode interpreter that covers the full + * instruction set of the TrueType virtual machine (this was governed + * by patents until May 2010, hence the name). * - * FT_TRUETYPE_ENGINE_TYPE_PATENTED :: - * The library implements a bytecode interpreter that covers - * the full instruction set of the TrueType virtual machine (this - * was governed by patents until May 2010, hence the name). - * - * @since: - * 2.2 + * @since: + * 2.2 * */ typedef enum FT_TrueTypeEngineType_ @@ -635,22 +753,22 @@ FT_BEGIN_HEADER /************************************************************************** * - * @func: - * FT_Get_TrueType_Engine_Type + * @function: + * FT_Get_TrueType_Engine_Type * - * @description: - * Return an @FT_TrueTypeEngineType value to indicate which level of - * the TrueType virtual machine a given library instance supports. + * @description: + * Return an @FT_TrueTypeEngineType value to indicate which level of the + * TrueType virtual machine a given library instance supports. * - * @input: - * library :: - * A library instance. + * @input: + * library :: + * A library instance. * - * @return: - * A value indicating which level is supported. + * @return: + * A value indicating which level is supported. * - * @since: - * 2.2 + * @since: + * 2.2 * */ FT_EXPORT( FT_TrueTypeEngineType ) @@ -661,7 +779,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTMODAPI_H__ */ +#endif /* FTMODAPI_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftmoderr.h b/android/x86_64/include/freetype/ftmoderr.h index 5a27db15..e1699357 100644 --- a/android/x86_64/include/freetype/ftmoderr.h +++ b/android/x86_64/include/freetype/ftmoderr.h @@ -1,98 +1,107 @@ -/***************************************************************************/ -/* */ -/* ftmoderr.h */ -/* */ -/* FreeType module error offsets (specification). */ -/* */ -/* Copyright 2001-2005, 2010, 2013 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftmoderr.h + * + * FreeType module error offsets (specification). + * + * Copyright (C) 2001-2019 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. + * + */ - /*************************************************************************/ - /* */ - /* This file is used to define the FreeType module error codes. */ - /* */ - /* If the macro FT_CONFIG_OPTION_USE_MODULE_ERRORS in `ftoption.h' is */ - /* set, the lower byte of an error value identifies the error code as */ - /* usual. In addition, the higher byte identifies the module. For */ - /* example, the error `FT_Err_Invalid_File_Format' has value 0x0003, the */ - /* error `TT_Err_Invalid_File_Format' has value 0x1303, the error */ - /* `T1_Err_Invalid_File_Format' has value 0x1403, etc. */ - /* */ - /* Note that `FT_Err_Ok', `TT_Err_Ok', etc. are always equal to zero, */ - /* including the high byte. */ - /* */ - /* If FT_CONFIG_OPTION_USE_MODULE_ERRORS isn't set, the higher byte of */ - /* an error value is set to zero. */ - /* */ - /* To hide the various `XXX_Err_' prefixes in the source code, FreeType */ - /* provides some macros in `fttypes.h'. */ - /* */ - /* FT_ERR( err ) */ - /* Add current error module prefix (as defined with the */ - /* `FT_ERR_PREFIX' macro) to `err'. For example, in the BDF module */ - /* the line */ - /* */ - /* error = FT_ERR( Invalid_Outline ); */ - /* */ - /* expands to */ - /* */ - /* error = BDF_Err_Invalid_Outline; */ - /* */ - /* For simplicity, you can always use `FT_Err_Ok' directly instead */ - /* of `FT_ERR( Ok )'. */ - /* */ - /* FT_ERR_EQ( errcode, err ) */ - /* FT_ERR_NEQ( errcode, err ) */ - /* Compare error code `errcode' with the error `err' for equality */ - /* and inequality, respectively. Example: */ - /* */ - /* if ( FT_ERR_EQ( error, Invalid_Outline ) ) */ - /* ... */ - /* */ - /* Using this macro you don't have to think about error prefixes. */ - /* Of course, if module errors are not active, the above example is */ - /* the same as */ - /* */ - /* if ( error == FT_Err_Invalid_Outline ) */ - /* ... */ - /* */ - /* FT_ERROR_BASE( errcode ) */ - /* FT_ERROR_MODULE( errcode ) */ - /* Get base error and module error code, respectively. */ - /* */ - /* */ - /* It can also be used to create a module error message table easily */ - /* with something like */ - /* */ - /* { */ - /* #undef __FTMODERR_H__ */ - /* #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s }, */ - /* #define FT_MODERR_START_LIST { */ - /* #define FT_MODERR_END_LIST { 0, 0 } }; */ - /* */ - /* const struct */ - /* { */ - /* int mod_err_offset; */ - /* const char* mod_err_msg */ - /* } ft_mod_errors[] = */ - /* */ - /* #include FT_MODULE_ERRORS_H */ - /* } */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * This file is used to define the FreeType module error codes. + * + * If the macro `FT_CONFIG_OPTION_USE_MODULE_ERRORS` in `ftoption.h` is + * set, the lower byte of an error value identifies the error code as + * usual. In addition, the higher byte identifies the module. For + * example, the error `FT_Err_Invalid_File_Format` has value 0x0003, the + * error `TT_Err_Invalid_File_Format` has value 0x1303, the error + * `T1_Err_Invalid_File_Format` has value 0x1403, etc. + * + * Note that `FT_Err_Ok`, `TT_Err_Ok`, etc. are always equal to zero, + * including the high byte. + * + * If `FT_CONFIG_OPTION_USE_MODULE_ERRORS` isn't set, the higher byte of an + * error value is set to zero. + * + * To hide the various `XXX_Err_` prefixes in the source code, FreeType + * provides some macros in `fttypes.h`. + * + * FT_ERR( err ) + * + * Add current error module prefix (as defined with the `FT_ERR_PREFIX` + * macro) to `err`. For example, in the BDF module the line + * + * ``` + * error = FT_ERR( Invalid_Outline ); + * ``` + * + * expands to + * + * ``` + * error = BDF_Err_Invalid_Outline; + * ``` + * + * For simplicity, you can always use `FT_Err_Ok` directly instead of + * `FT_ERR( Ok )`. + * + * FT_ERR_EQ( errcode, err ) + * FT_ERR_NEQ( errcode, err ) + * + * Compare error code `errcode` with the error `err` for equality and + * inequality, respectively. Example: + * + * ``` + * if ( FT_ERR_EQ( error, Invalid_Outline ) ) + * ... + * ``` + * + * Using this macro you don't have to think about error prefixes. Of + * course, if module errors are not active, the above example is the + * same as + * + * ``` + * if ( error == FT_Err_Invalid_Outline ) + * ... + * ``` + * + * FT_ERROR_BASE( errcode ) + * FT_ERROR_MODULE( errcode ) + * + * Get base error and module error code, respectively. + * + * It can also be used to create a module error message table easily with + * something like + * + * ``` + * #undef FTMODERR_H_ + * #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s }, + * #define FT_MODERR_START_LIST { + * #define FT_MODERR_END_LIST { 0, 0 } }; + * + * const struct + * { + * int mod_err_offset; + * const char* mod_err_msg + * } ft_mod_errors[] = + * + * #include FT_MODULE_ERRORS_H + * ``` + * + */ -#ifndef __FTMODERR_H__ -#define __FTMODERR_H__ +#ifndef FTMODERR_H_ +#define FTMODERR_H_ /*******************************************************************/ @@ -188,7 +197,7 @@ #undef FT_NEED_EXTERN_C -#endif /* __FTMODERR_H__ */ +#endif /* FTMODERR_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftotval.h b/android/x86_64/include/freetype/ftotval.h index 75ba03ee..0fb2a118 100644 --- a/android/x86_64/include/freetype/ftotval.h +++ b/android/x86_64/include/freetype/ftotval.h @@ -1,36 +1,36 @@ -/***************************************************************************/ -/* */ -/* ftotval.h */ -/* */ -/* FreeType API for validating OpenType tables (specification). */ -/* */ -/* Copyright 2004-2007, 2013, 2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftotval.h + * + * FreeType API for validating OpenType tables (specification). + * + * Copyright (C) 2004-2019 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. + * + */ -/***************************************************************************/ -/* */ -/* */ -/* Warning: This module might be moved to a different library in the */ -/* future to avoid a tight dependency between FreeType and the */ -/* OpenType specification. */ -/* */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * + * Warning: This module might be moved to a different library in the + * future to avoid a tight dependency between FreeType and the + * OpenType specification. + * + * + */ -#ifndef __FTOTVAL_H__ -#define __FTOTVAL_H__ +#ifndef FTOTVAL_H_ +#define FTOTVAL_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -43,62 +43,62 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* ot_validation */ - /* */ - /* <Title> */ - /* OpenType Validation */ - /* */ - /* <Abstract> */ - /* An API to validate OpenType tables. */ - /* */ - /* <Description> */ - /* This section contains the declaration of functions to validate */ - /* some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). */ - /* */ - /* <Order> */ - /* FT_OpenType_Validate */ - /* FT_OpenType_Free */ - /* */ - /* FT_VALIDATE_OTXXX */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * ot_validation + * + * @title: + * OpenType Validation + * + * @abstract: + * An API to validate OpenType tables. + * + * @description: + * This section contains the declaration of functions to validate some + * OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). + * + * @order: + * FT_OpenType_Validate + * FT_OpenType_Free + * + * FT_VALIDATE_OTXXX + * + */ - /********************************************************************** - * - * @enum: - * FT_VALIDATE_OTXXX - * - * @description: - * A list of bit-field constants used with @FT_OpenType_Validate to - * indicate which OpenType tables should be validated. - * - * @values: - * FT_VALIDATE_BASE :: - * Validate BASE table. - * - * FT_VALIDATE_GDEF :: - * Validate GDEF table. - * - * FT_VALIDATE_GPOS :: - * Validate GPOS table. - * - * FT_VALIDATE_GSUB :: - * Validate GSUB table. - * - * FT_VALIDATE_JSTF :: - * Validate JSTF table. - * - * FT_VALIDATE_MATH :: - * Validate MATH table. - * - * FT_VALIDATE_OT :: - * Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). - * - */ + /************************************************************************** + * + * @enum: + * FT_VALIDATE_OTXXX + * + * @description: + * A list of bit-field constants used with @FT_OpenType_Validate to + * indicate which OpenType tables should be validated. + * + * @values: + * FT_VALIDATE_BASE :: + * Validate BASE table. + * + * FT_VALIDATE_GDEF :: + * Validate GDEF table. + * + * FT_VALIDATE_GPOS :: + * Validate GPOS table. + * + * FT_VALIDATE_GSUB :: + * Validate GSUB table. + * + * FT_VALIDATE_JSTF :: + * Validate JSTF table. + * + * FT_VALIDATE_MATH :: + * Validate MATH table. + * + * FT_VALIDATE_OT :: + * Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). + * + */ #define FT_VALIDATE_BASE 0x0100 #define FT_VALIDATE_GDEF 0x0200 #define FT_VALIDATE_GPOS 0x0400 @@ -106,60 +106,61 @@ FT_BEGIN_HEADER #define FT_VALIDATE_JSTF 0x1000 #define FT_VALIDATE_MATH 0x2000 -#define FT_VALIDATE_OT FT_VALIDATE_BASE | \ - FT_VALIDATE_GDEF | \ - FT_VALIDATE_GPOS | \ - FT_VALIDATE_GSUB | \ - FT_VALIDATE_JSTF | \ - FT_VALIDATE_MATH +#define FT_VALIDATE_OT ( FT_VALIDATE_BASE | \ + FT_VALIDATE_GDEF | \ + FT_VALIDATE_GPOS | \ + FT_VALIDATE_GSUB | \ + FT_VALIDATE_JSTF | \ + FT_VALIDATE_MATH ) - /********************************************************************** - * - * @function: - * FT_OpenType_Validate - * - * @description: - * Validate various OpenType tables to assure that all offsets and - * indices are valid. The idea is that a higher-level library that - * actually does the text layout can access those tables without - * error checking (which can be quite time consuming). - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the tables to be validated. See - * @FT_VALIDATE_OTXXX for possible values. - * - * @output: - * BASE_table :: - * A pointer to the BASE table. - * - * GDEF_table :: - * A pointer to the GDEF table. - * - * GPOS_table :: - * A pointer to the GPOS table. - * - * GSUB_table :: - * A pointer to the GSUB table. - * - * JSTF_table :: - * A pointer to the JSTF table. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with OpenType fonts, returning an error - * otherwise. - * - * After use, the application should deallocate the five tables with - * @FT_OpenType_Free. A NULL value indicates that the table either - * doesn't exist in the font, or the application hasn't asked for - * validation. - */ + + /************************************************************************** + * + * @function: + * FT_OpenType_Validate + * + * @description: + * Validate various OpenType tables to assure that all offsets and + * indices are valid. The idea is that a higher-level library that + * actually does the text layout can access those tables without error + * checking (which can be quite time consuming). + * + * @input: + * face :: + * A handle to the input face. + * + * validation_flags :: + * A bit field that specifies the tables to be validated. See + * @FT_VALIDATE_OTXXX for possible values. + * + * @output: + * BASE_table :: + * A pointer to the BASE table. + * + * GDEF_table :: + * A pointer to the GDEF table. + * + * GPOS_table :: + * A pointer to the GPOS table. + * + * GSUB_table :: + * A pointer to the GSUB table. + * + * JSTF_table :: + * A pointer to the JSTF table. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function only works with OpenType fonts, returning an error + * otherwise. + * + * After use, the application should deallocate the five tables with + * @FT_OpenType_Free. A `NULL` value indicates that the table either + * doesn't exist in the font, or the application hasn't asked for + * validation. + */ FT_EXPORT( FT_Error ) FT_OpenType_Validate( FT_Face face, FT_UInt validation_flags, @@ -169,36 +170,38 @@ FT_BEGIN_HEADER FT_Bytes *GSUB_table, FT_Bytes *JSTF_table ); - /********************************************************************** - * - * @function: - * FT_OpenType_Free - * - * @description: - * Free the buffer allocated by OpenType validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer that is allocated by - * @FT_OpenType_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_OpenType_Validate only. - */ + + /************************************************************************** + * + * @function: + * FT_OpenType_Free + * + * @description: + * Free the buffer allocated by OpenType validator. + * + * @input: + * face :: + * A handle to the input face. + * + * table :: + * The pointer to the buffer that is allocated by + * @FT_OpenType_Validate. + * + * @note: + * This function must be used to free the buffer allocated by + * @FT_OpenType_Validate only. + */ FT_EXPORT( void ) FT_OpenType_Free( FT_Face face, FT_Bytes table ); + /* */ FT_END_HEADER -#endif /* __FTOTVAL_H__ */ +#endif /* FTOTVAL_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftoutln.h b/android/x86_64/include/freetype/ftoutln.h index d3b8fbd2..e6d78b2f 100644 --- a/android/x86_64/include/freetype/ftoutln.h +++ b/android/x86_64/include/freetype/ftoutln.h @@ -1,27 +1,27 @@ -/***************************************************************************/ -/* */ -/* ftoutln.h */ -/* */ -/* Support for the FT_Outline type used to store glyph shapes of */ -/* most scalable font formats (specification). */ -/* */ -/* Copyright 1996-2003, 2005-2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftoutln.h + * + * Support for the FT_Outline type used to store glyph shapes of + * most scalable font formats (specification). + * + * Copyright (C) 1996-2019 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 __FTOUTLN_H__ -#define __FTOUTLN_H__ +#ifndef FTOUTLN_H_ +#define FTOUTLN_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -34,123 +34,131 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* outline_processing */ - /* */ - /* <Title> */ - /* Outline Processing */ - /* */ - /* <Abstract> */ - /* Functions to create, transform, and render vectorial glyph images. */ - /* */ - /* <Description> */ - /* This section contains routines used to create and destroy scalable */ - /* glyph images known as `outlines'. These can also be measured, */ - /* transformed, and converted into bitmaps and pixmaps. */ - /* */ - /* <Order> */ - /* FT_Outline */ - /* FT_Outline_New */ - /* FT_Outline_Done */ - /* FT_Outline_Copy */ - /* FT_Outline_Translate */ - /* FT_Outline_Transform */ - /* FT_Outline_Embolden */ - /* FT_Outline_EmboldenXY */ - /* FT_Outline_Reverse */ - /* FT_Outline_Check */ - /* */ - /* FT_Outline_Get_CBox */ - /* FT_Outline_Get_BBox */ - /* */ - /* FT_Outline_Get_Bitmap */ - /* FT_Outline_Render */ - /* FT_Outline_Decompose */ - /* FT_Outline_Funcs */ - /* FT_Outline_MoveToFunc */ - /* FT_Outline_LineToFunc */ - /* FT_Outline_ConicToFunc */ - /* FT_Outline_CubicToFunc */ - /* */ - /* FT_Orientation */ - /* FT_Outline_Get_Orientation */ - /* */ - /* FT_OUTLINE_XXX */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * outline_processing + * + * @title: + * Outline Processing + * + * @abstract: + * Functions to create, transform, and render vectorial glyph images. + * + * @description: + * This section contains routines used to create and destroy scalable + * glyph images known as 'outlines'. These can also be measured, + * transformed, and converted into bitmaps and pixmaps. + * + * @order: + * FT_Outline + * FT_Outline_New + * FT_Outline_Done + * FT_Outline_Copy + * FT_Outline_Translate + * FT_Outline_Transform + * FT_Outline_Embolden + * FT_Outline_EmboldenXY + * FT_Outline_Reverse + * FT_Outline_Check + * + * FT_Outline_Get_CBox + * FT_Outline_Get_BBox + * + * FT_Outline_Get_Bitmap + * FT_Outline_Render + * FT_Outline_Decompose + * FT_Outline_Funcs + * FT_Outline_MoveToFunc + * FT_Outline_LineToFunc + * FT_Outline_ConicToFunc + * FT_Outline_CubicToFunc + * + * FT_Orientation + * FT_Outline_Get_Orientation + * + * FT_OUTLINE_XXX + * + */ - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Decompose */ - /* */ - /* <Description> */ - /* Walk over an outline's structure to decompose it into individual */ - /* segments and Bézier arcs. This function also emits `move to' */ - /* operations to indicate the start of new contours in the outline. */ - /* */ - /* <Input> */ - /* outline :: A pointer to the source target. */ - /* */ - /* func_interface :: A table of `emitters', i.e., function pointers */ - /* called during decomposition to indicate path */ - /* operations. */ - /* */ - /* <InOut> */ - /* user :: A typeless pointer that is passed to each */ - /* emitter during the decomposition. It can be */ - /* used to store the state during the */ - /* decomposition. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* A contour that contains a single point only is represented by a */ - /* `move to' operation followed by `line to' to the same point. In */ - /* most cases, it is best to filter this out before using the */ - /* outline for stroking purposes (otherwise it would result in a */ - /* visible dot when round caps are used). */ - /* */ + /************************************************************************** + * + * @function: + * FT_Outline_Decompose + * + * @description: + * Walk over an outline's structure to decompose it into individual + * segments and Bezier arcs. This function also emits 'move to' + * operations to indicate the start of new contours in the outline. + * + * @input: + * outline :: + * A pointer to the source target. + * + * func_interface :: + * A table of 'emitters', i.e., function pointers called during + * decomposition to indicate path operations. + * + * @inout: + * user :: + * A typeless pointer that is passed to each emitter during the + * decomposition. It can be used to store the state during the + * decomposition. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * A contour that contains a single point only is represented by a 'move + * to' operation followed by 'line to' to the same point. In most cases, + * it is best to filter this out before using the outline for stroking + * purposes (otherwise it would result in a visible dot when round caps + * are used). + * + * Similarly, the function returns success for an empty outline also + * (doing nothing, this is, not calling any emitter); if necessary, you + * should filter this out, too. + */ FT_EXPORT( FT_Error ) FT_Outline_Decompose( FT_Outline* outline, const FT_Outline_Funcs* func_interface, void* user ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_New */ - /* */ - /* <Description> */ - /* Create a new outline of a given size. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object from where the */ - /* outline is allocated. Note however that the new */ - /* outline will *not* necessarily be *freed*, when */ - /* destroying the library, by @FT_Done_FreeType. */ - /* */ - /* numPoints :: The maximum number of points within the outline. */ - /* Must be smaller than or equal to 0xFFFF (65535). */ - /* */ - /* numContours :: The maximum number of contours within the outline. */ - /* This value must be in the range 0 to `numPoints'. */ - /* */ - /* <Output> */ - /* anoutline :: A handle to the new outline. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The reason why this function takes a `library' parameter is simply */ - /* to use the library's memory allocator. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Outline_New + * + * @description: + * Create a new outline of a given size. + * + * @input: + * library :: + * A handle to the library object from where the outline is allocated. + * Note however that the new outline will **not** necessarily be + * **freed**, when destroying the library, by @FT_Done_FreeType. + * + * numPoints :: + * The maximum number of points within the outline. Must be smaller + * than or equal to 0xFFFF (65535). + * + * numContours :: + * The maximum number of contours within the outline. This value must + * be in the range 0 to `numPoints`. + * + * @output: + * anoutline :: + * A handle to the new outline. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The reason why this function takes a `library` parameter is simply to + * use the library's memory allocator. + */ FT_EXPORT( FT_Error ) FT_Outline_New( FT_Library library, FT_UInt numPoints, @@ -158,368 +166,378 @@ FT_BEGIN_HEADER FT_Outline *anoutline ); - FT_EXPORT( FT_Error ) - FT_Outline_New_Internal( FT_Memory memory, - FT_UInt numPoints, - FT_Int numContours, - FT_Outline *anoutline ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Done */ - /* */ - /* <Description> */ - /* Destroy an outline created with @FT_Outline_New. */ - /* */ - /* <Input> */ - /* library :: A handle of the library object used to allocate the */ - /* outline. */ - /* */ - /* outline :: A pointer to the outline object to be discarded. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* 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(). */ - /* */ + /************************************************************************** + * + * @function: + * FT_Outline_Done + * + * @description: + * Destroy an outline created with @FT_Outline_New. + * + * @input: + * library :: + * A handle of the library object used to allocate the outline. + * + * outline :: + * A pointer to the outline object to be discarded. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If the outline's 'owner' field is not set, only the outline descriptor + * will be released. + */ FT_EXPORT( FT_Error ) FT_Outline_Done( FT_Library library, FT_Outline* outline ); - FT_EXPORT( FT_Error ) - FT_Outline_Done_Internal( FT_Memory memory, - FT_Outline* outline ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Check */ - /* */ - /* <Description> */ - /* Check the contents of an outline descriptor. */ - /* */ - /* <Input> */ - /* outline :: A handle to a source outline. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Outline_Check + * + * @description: + * Check the contents of an outline descriptor. + * + * @input: + * outline :: + * A handle to a source outline. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * An empty outline, or an outline with a single point only is also + * valid. + */ FT_EXPORT( FT_Error ) FT_Outline_Check( FT_Outline* outline ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Get_CBox */ - /* */ - /* <Description> */ - /* Return an outline's `control box'. The control box encloses all */ - /* the outline's points, including Bézier 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). */ - /* */ - /* 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 */ - /* and arcs in the outline. To get the latter, you can use the */ - /* `ftbbox' component, which is dedicated to this single task. */ - /* */ - /* <Input> */ - /* outline :: A pointer to the source outline descriptor. */ - /* */ - /* <Output> */ - /* acbox :: The outline's control box. */ - /* */ - /* <Note> */ - /* See @FT_Glyph_Get_CBox for a discussion of tricky fonts. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Outline_Get_CBox + * + * @description: + * Return an outline's 'control box'. The control box encloses all 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 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 and arcs + * in the outline. To get the latter, you can use the 'ftbbox' + * component, which is dedicated to this single task. + * + * @input: + * outline :: + * A pointer to the source outline descriptor. + * + * @output: + * acbox :: + * The outline's control box. + * + * @note: + * See @FT_Glyph_Get_CBox for a discussion of tricky fonts. + */ FT_EXPORT( void ) FT_Outline_Get_CBox( const FT_Outline* outline, FT_BBox *acbox ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Translate */ - /* */ - /* <Description> */ - /* Apply a simple translation to the points of an outline. */ - /* */ - /* <InOut> */ - /* outline :: A pointer to the target outline descriptor. */ - /* */ - /* <Input> */ - /* xOffset :: The horizontal offset. */ - /* */ - /* yOffset :: The vertical offset. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Outline_Translate + * + * @description: + * Apply a simple translation to the points of an outline. + * + * @inout: + * outline :: + * A pointer to the target outline descriptor. + * + * @input: + * xOffset :: + * The horizontal offset. + * + * yOffset :: + * The vertical offset. + */ FT_EXPORT( void ) FT_Outline_Translate( const FT_Outline* outline, FT_Pos xOffset, FT_Pos yOffset ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Copy */ - /* */ - /* <Description> */ - /* Copy an outline into another one. Both objects must have the */ - /* same sizes (number of points & number of contours) when this */ - /* function is called. */ - /* */ - /* <Input> */ - /* source :: A handle to the source outline. */ - /* */ - /* <Output> */ - /* target :: A handle to the target outline. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Outline_Copy + * + * @description: + * Copy an outline into another one. Both objects must have the same + * sizes (number of points & number of contours) when this function is + * called. + * + * @input: + * source :: + * A handle to the source outline. + * + * @output: + * target :: + * A handle to the target outline. + * + * @return: + * FreeType error code. 0~means success. + */ FT_EXPORT( FT_Error ) FT_Outline_Copy( const FT_Outline* source, FT_Outline *target ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Transform */ - /* */ - /* <Description> */ - /* Apply a simple 2x2 matrix to all of an outline's points. Useful */ - /* for applying rotations, slanting, flipping, etc. */ - /* */ - /* <InOut> */ - /* outline :: A pointer to the target outline descriptor. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to the transformation matrix. */ - /* */ - /* <Note> */ - /* You can use @FT_Outline_Translate if you need to translate the */ - /* outline's points. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Outline_Transform + * + * @description: + * Apply a simple 2x2 matrix to all of an outline's points. Useful for + * applying rotations, slanting, flipping, etc. + * + * @inout: + * outline :: + * A pointer to the target outline descriptor. + * + * @input: + * matrix :: + * A pointer to the transformation matrix. + * + * @note: + * You can use @FT_Outline_Translate if you need to translate the + * outline's points. + */ FT_EXPORT( void ) FT_Outline_Transform( const FT_Outline* outline, const FT_Matrix* matrix ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Embolden */ - /* */ - /* <Description> */ - /* Embolden an outline. The new outline will be at most 4~times */ - /* `strength' pixels wider and higher. You may think of the left and */ - /* bottom borders as unchanged. */ - /* */ - /* Negative `strength' values to reduce the outline thickness are */ - /* possible also. */ - /* */ - /* <InOut> */ - /* outline :: A handle to the target outline. */ - /* */ - /* <Input> */ - /* strength :: How strong the glyph is emboldened. Expressed in */ - /* 26.6 pixel format. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The used algorithm to increase or decrease the thickness of the */ - /* glyph doesn't change the number of points; this means that certain */ - /* situations like acute angles or intersections are sometimes */ - /* handled incorrectly. */ - /* */ - /* If you need `better' metrics values you should call */ - /* @FT_Outline_Get_CBox or @FT_Outline_Get_BBox. */ - /* */ - /* Example call: */ - /* */ - /* { */ - /* FT_Load_Glyph( face, index, FT_LOAD_DEFAULT ); */ - /* if ( face->slot->format == FT_GLYPH_FORMAT_OUTLINE ) */ - /* FT_Outline_Embolden( &face->slot->outline, strength ); */ - /* } */ - /* */ - /* To get meaningful results, font scaling values must be set with */ - /* functions like @FT_Set_Char_Size before calling FT_Render_Glyph. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Outline_Embolden + * + * @description: + * Embolden an outline. The new outline will be at most 4~times + * `strength` pixels wider and higher. You may think of the left and + * bottom borders as unchanged. + * + * Negative `strength` values to reduce the outline thickness are + * possible also. + * + * @inout: + * outline :: + * A handle to the target outline. + * + * @input: + * strength :: + * How strong the glyph is emboldened. Expressed in 26.6 pixel format. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The used algorithm to increase or decrease the thickness of the glyph + * doesn't change the number of points; this means that certain + * situations like acute angles or intersections are sometimes handled + * incorrectly. + * + * If you need 'better' metrics values you should call + * @FT_Outline_Get_CBox or @FT_Outline_Get_BBox. + * + * To get meaningful results, font scaling values must be set with + * functions like @FT_Set_Char_Size before calling FT_Render_Glyph. + * + * @example: + * ``` + * FT_Load_Glyph( face, index, FT_LOAD_DEFAULT ); + * + * if ( face->glyph->format == FT_GLYPH_FORMAT_OUTLINE ) + * FT_Outline_Embolden( &face->glyph->outline, strength ); + * ``` + * + */ FT_EXPORT( FT_Error ) FT_Outline_Embolden( FT_Outline* outline, FT_Pos strength ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_EmboldenXY */ - /* */ - /* <Description> */ - /* Embolden an outline. The new outline will be `xstrength' pixels */ - /* wider and `ystrength' pixels higher. Otherwise, it is similar to */ - /* @FT_Outline_Embolden, which uses the same strength in both */ - /* directions. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Outline_EmboldenXY + * + * @description: + * Embolden an outline. The new outline will be `xstrength` pixels wider + * and `ystrength` pixels higher. Otherwise, it is similar to + * @FT_Outline_Embolden, which uses the same strength in both directions. + * + * @since: + * 2.4.10 + */ FT_EXPORT( FT_Error ) FT_Outline_EmboldenXY( FT_Outline* outline, FT_Pos xstrength, FT_Pos ystrength ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Reverse */ - /* */ - /* <Description> */ - /* Reverse the drawing direction of an outline. This is used to */ - /* ensure consistent fill conventions for mirrored glyphs. */ - /* */ - /* <InOut> */ - /* outline :: A pointer to the target outline descriptor. */ - /* */ - /* <Note> */ - /* This function toggles the bit flag @FT_OUTLINE_REVERSE_FILL in */ - /* the outline's `flags' field. */ - /* */ - /* It shouldn't be used by a normal client application, unless it */ - /* knows what it is doing. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Outline_Reverse + * + * @description: + * Reverse the drawing direction of an outline. This is used to ensure + * consistent fill conventions for mirrored glyphs. + * + * @inout: + * outline :: + * A pointer to the target outline descriptor. + * + * @note: + * This function toggles the bit flag @FT_OUTLINE_REVERSE_FILL in the + * outline's `flags` field. + * + * It shouldn't be used by a normal client application, unless it knows + * what it is doing. + */ FT_EXPORT( void ) FT_Outline_Reverse( FT_Outline* outline ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Get_Bitmap */ - /* */ - /* <Description> */ - /* Render an outline within a bitmap. The outline's image is simply */ - /* OR-ed to the target bitmap. */ - /* */ - /* <Input> */ - /* library :: A handle to a FreeType library object. */ - /* */ - /* outline :: A pointer to the source outline descriptor. */ - /* */ - /* <InOut> */ - /* abitmap :: A pointer to the target bitmap descriptor. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function does NOT CREATE the bitmap, it only renders an */ - /* outline image within the one you pass to it! Consequently, the */ - /* various fields in `abitmap' should be set accordingly. */ - /* */ - /* It will use the raster corresponding to the default glyph format. */ - /* */ - /* The value of the `num_grays' field in `abitmap' is ignored. If */ - /* you select the gray-level rasterizer, and you want less than 256 */ - /* gray levels, you have to use @FT_Outline_Render directly. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Outline_Get_Bitmap + * + * @description: + * Render an outline within a bitmap. The outline's image is simply + * OR-ed to the target bitmap. + * + * @input: + * library :: + * A handle to a FreeType library object. + * + * outline :: + * A pointer to the source outline descriptor. + * + * @inout: + * abitmap :: + * A pointer to the target bitmap descriptor. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function does **not create** the bitmap, it only renders an + * outline image within the one you pass to it! Consequently, the + * various fields in `abitmap` should be set accordingly. + * + * It will use the raster corresponding to the default glyph format. + * + * The value of the `num_grays` field in `abitmap` is ignored. If you + * select the gray-level rasterizer, and you want less than 256 gray + * levels, you have to use @FT_Outline_Render directly. + */ FT_EXPORT( FT_Error ) FT_Outline_Get_Bitmap( FT_Library library, FT_Outline* outline, const FT_Bitmap *abitmap ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Render */ - /* */ - /* <Description> */ - /* Render an outline within a bitmap using the current scan-convert. */ - /* This function uses an @FT_Raster_Params structure as an argument, */ - /* allowing advanced features like direct composition, translucency, */ - /* etc. */ - /* */ - /* <Input> */ - /* library :: A handle to a FreeType library object. */ - /* */ - /* outline :: A pointer to the source outline descriptor. */ - /* */ - /* <InOut> */ - /* params :: A pointer to an @FT_Raster_Params structure used to */ - /* describe the rendering operation. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You should know what you are doing and how @FT_Raster_Params works */ - /* to use this function. */ - /* */ - /* The field `params.source' will be set to `outline' before the scan */ - /* converter is called, which means that the value you give to it is */ - /* actually ignored. */ - /* */ - /* The gray-level rasterizer always uses 256 gray levels. If you */ - /* want less gray levels, you have to provide your own span callback. */ - /* See the @FT_RASTER_FLAG_DIRECT value of the `flags' field in the */ - /* @FT_Raster_Params structure for more details. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Outline_Render + * + * @description: + * Render an outline within a bitmap using the current scan-convert. + * This function uses an @FT_Raster_Params structure as an argument, + * allowing advanced features like direct composition, translucency, etc. + * + * @input: + * library :: + * A handle to a FreeType library object. + * + * outline :: + * A pointer to the source outline descriptor. + * + * @inout: + * params :: + * A pointer to an @FT_Raster_Params structure used to describe the + * rendering operation. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * You should know what you are doing and how @FT_Raster_Params works to + * use this function. + * + * The field `params.source` will be set to `outline` before the scan + * converter is called, which means that the value you give to it is + * actually ignored. + * + * The gray-level rasterizer always uses 256 gray levels. If you want + * less gray levels, you have to provide your own span callback. See the + * @FT_RASTER_FLAG_DIRECT value of the `flags` field in the + * @FT_Raster_Params structure for more details. + */ FT_EXPORT( FT_Error ) FT_Outline_Render( FT_Library library, FT_Outline* outline, FT_Raster_Params* params ); - /************************************************************************** - * - * @enum: - * FT_Orientation - * - * @description: - * A list of values used to describe an outline's contour orientation. - * - * The TrueType and PostScript specifications use different conventions - * to determine whether outline contours should be filled or unfilled. - * - * @values: - * FT_ORIENTATION_TRUETYPE :: - * According to the TrueType specification, clockwise contours must - * be filled, and counter-clockwise ones must be unfilled. - * - * FT_ORIENTATION_POSTSCRIPT :: - * According to the PostScript specification, counter-clockwise contours - * must be filled, and clockwise ones must be unfilled. - * - * FT_ORIENTATION_FILL_RIGHT :: - * This is identical to @FT_ORIENTATION_TRUETYPE, but is used to - * remember that in TrueType, everything that is to the right of - * the drawing direction of a contour must be filled. - * - * FT_ORIENTATION_FILL_LEFT :: - * This is identical to @FT_ORIENTATION_POSTSCRIPT, but is used to - * remember that in PostScript, everything that is to the left of - * the drawing direction of a contour must be filled. - * - * FT_ORIENTATION_NONE :: - * The orientation cannot be determined. That is, different parts of - * the glyph have different orientation. - * - */ + /************************************************************************** + * + * @enum: + * FT_Orientation + * + * @description: + * A list of values used to describe an outline's contour orientation. + * + * The TrueType and PostScript specifications use different conventions + * to determine whether outline contours should be filled or unfilled. + * + * @values: + * FT_ORIENTATION_TRUETYPE :: + * According to the TrueType specification, clockwise contours must be + * filled, and counter-clockwise ones must be unfilled. + * + * FT_ORIENTATION_POSTSCRIPT :: + * According to the PostScript specification, counter-clockwise + * contours must be filled, and clockwise ones must be unfilled. + * + * FT_ORIENTATION_FILL_RIGHT :: + * This is identical to @FT_ORIENTATION_TRUETYPE, but is used to + * remember that in TrueType, everything that is to the right of the + * drawing direction of a contour must be filled. + * + * FT_ORIENTATION_FILL_LEFT :: + * This is identical to @FT_ORIENTATION_POSTSCRIPT, but is used to + * remember that in PostScript, everything that is to the left of the + * drawing direction of a contour must be filled. + * + * FT_ORIENTATION_NONE :: + * The orientation cannot be determined. That is, different parts of + * the glyph have different orientation. + * + */ typedef enum FT_Orientation_ { FT_ORIENTATION_TRUETYPE = 0, @@ -531,39 +549,40 @@ FT_BEGIN_HEADER } FT_Orientation; - /************************************************************************** - * - * @function: - * FT_Outline_Get_Orientation - * - * @description: - * This function analyzes a glyph outline and tries to compute its - * fill orientation (see @FT_Orientation). This is done by integrating - * the total area covered by the outline. The positive integral - * corresponds to the clockwise orientation and @FT_ORIENTATION_POSTSCRIPT - * is returned. The negative integral corresponds to the counter-clockwise - * orientation and @FT_ORIENTATION_TRUETYPE is returned. - * - * Note that this will return @FT_ORIENTATION_TRUETYPE for empty - * outlines. - * - * @input: - * outline :: - * A handle to the source outline. - * - * @return: - * The orientation. - * - */ + /************************************************************************** + * + * @function: + * FT_Outline_Get_Orientation + * + * @description: + * This function analyzes a glyph outline and tries to compute its fill + * orientation (see @FT_Orientation). This is done by integrating the + * total area covered by the outline. The positive integral corresponds + * to the clockwise orientation and @FT_ORIENTATION_POSTSCRIPT is + * returned. The negative integral corresponds to the counter-clockwise + * orientation and @FT_ORIENTATION_TRUETYPE is returned. + * + * Note that this will return @FT_ORIENTATION_TRUETYPE for empty + * outlines. + * + * @input: + * outline :: + * A handle to the source outline. + * + * @return: + * The orientation. + * + */ FT_EXPORT( FT_Orientation ) FT_Outline_Get_Orientation( FT_Outline* outline ); + /* */ FT_END_HEADER -#endif /* __FTOUTLN_H__ */ +#endif /* FTOUTLN_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftparams.h b/android/x86_64/include/freetype/ftparams.h new file mode 100644 index 00000000..4f526f1c --- /dev/null +++ b/android/x86_64/include/freetype/ftparams.h @@ -0,0 +1,204 @@ +/**************************************************************************** + * + * ftparams.h + * + * FreeType API for possible FT_Parameter tags (specification only). + * + * Copyright (C) 2017-2019 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. + * + */ + + + /************************************************************************** + * + * @enum: + * 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 + + + /************************************************************************** + * + * @enum: + * 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 + + + /************************************************************************** + * + * @enum: + * 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' ) + + + /************************************************************************** + * + * @enum: + * 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' ) + + + /************************************************************************** + * + * @enum: + * 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' ) + + + /************************************************************************** + * + * @enum: + * 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' ) + + + /************************************************************************** + * + * @enum: + * 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 */ diff --git a/android/x86_64/include/freetype/ftpfr.h b/android/x86_64/include/freetype/ftpfr.h index 7d503539..17f8e38d 100644 --- a/android/x86_64/include/freetype/ftpfr.h +++ b/android/x86_64/include/freetype/ftpfr.h @@ -1,25 +1,25 @@ -/***************************************************************************/ -/* */ -/* ftpfr.h */ -/* */ -/* FreeType API for accessing PFR-specific data (specification only). */ -/* */ -/* Copyright 2002, 2003, 2004, 2006, 2008, 2009 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftpfr.h + * + * FreeType API for accessing PFR-specific data (specification only). + * + * Copyright (C) 2002-2019 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 __FTPFR_H__ -#define __FTPFR_H__ +#ifndef FTPFR_H_ +#define FTPFR_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -32,60 +32,61 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* pfr_fonts */ - /* */ - /* <Title> */ - /* PFR Fonts */ - /* */ - /* <Abstract> */ - /* PFR/TrueDoc specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of PFR-specific functions. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * pfr_fonts + * + * @title: + * PFR Fonts + * + * @abstract: + * PFR/TrueDoc-specific API. + * + * @description: + * This section contains the declaration of PFR-specific functions. + * + */ - /********************************************************************** - * - * @function: - * FT_Get_PFR_Metrics - * - * @description: - * Return the outline and metrics resolutions of a given PFR face. - * - * @input: - * face :: Handle to the input face. It can be a non-PFR face. - * - * @output: - * aoutline_resolution :: - * Outline resolution. This is equivalent to `face->units_per_EM' - * for non-PFR fonts. Optional (parameter can be NULL). - * - * ametrics_resolution :: - * Metrics resolution. This is equivalent to `outline_resolution' - * for non-PFR fonts. Optional (parameter can be NULL). - * - * 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 - * `face->size->x_scale', but for metrics only. Optional (parameter - * can be NULL). - * - * ametrics_y_scale :: - * Same as `ametrics_x_scale' but for the vertical direction. - * optional (parameter can be NULL). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If the input face is not a PFR, this function will return an error. - * However, in all cases, it will return valid values. - */ + /************************************************************************** + * + * @function: + * FT_Get_PFR_Metrics + * + * @description: + * Return the outline and metrics resolutions of a given PFR face. + * + * @input: + * face :: + * Handle to the input face. It can be a non-PFR face. + * + * @output: + * aoutline_resolution :: + * Outline resolution. This is equivalent to `face->units_per_EM` for + * non-PFR fonts. Optional (parameter can be `NULL`). + * + * ametrics_resolution :: + * Metrics resolution. This is equivalent to `outline_resolution` for + * non-PFR fonts. Optional (parameter can be `NULL`). + * + * ametrics_x_scale :: + * A 16.16 fixed-point number used to scale distance expressed in + * metrics units to device subpixels. This is equivalent to + * `face->size->x_scale`, but for metrics only. Optional (parameter + * can be `NULL`). + * + * ametrics_y_scale :: + * Same as `ametrics_x_scale` but for the vertical direction. + * optional (parameter can be `NULL`). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If the input face is not a PFR, this function will return an error. + * However, in all cases, it will return valid values. + */ FT_EXPORT( FT_Error ) FT_Get_PFR_Metrics( FT_Face face, FT_UInt *aoutline_resolution, @@ -94,37 +95,41 @@ FT_BEGIN_HEADER FT_Fixed *ametrics_y_scale ); - /********************************************************************** - * - * @function: - * FT_Get_PFR_Kerning - * - * @description: - * Return the kerning pair corresponding to two glyphs in a PFR face. - * The distance is expressed in metrics units, unlike the result of - * @FT_Get_Kerning. - * - * @input: - * face :: A handle to the input face. - * - * left :: Index of the left glyph. - * - * right :: Index of the right glyph. - * - * @output: - * avector :: A kerning vector. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function always return distances in original PFR metrics - * units. This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED - * 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. - */ + /************************************************************************** + * + * @function: + * FT_Get_PFR_Kerning + * + * @description: + * Return the kerning pair corresponding to two glyphs in a PFR face. + * The distance is expressed in metrics units, unlike the result of + * @FT_Get_Kerning. + * + * @input: + * face :: + * A handle to the input face. + * + * left :: + * Index of the left glyph. + * + * right :: + * Index of the right glyph. + * + * @output: + * avector :: + * A kerning vector. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function always return distances in original PFR metrics units. + * This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED 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 subpixels. + */ FT_EXPORT( FT_Error ) FT_Get_PFR_Kerning( FT_Face face, FT_UInt left, @@ -132,30 +137,33 @@ FT_BEGIN_HEADER FT_Vector *avector ); - /********************************************************************** - * - * @function: - * FT_Get_PFR_Advance - * - * @description: - * Return a given glyph advance, expressed in original metrics units, - * from a PFR font. - * - * @input: - * face :: A handle to the input face. - * - * gindex :: The glyph index. - * - * @output: - * aadvance :: The glyph advance in metrics units. - * - * @return: - * FreeType error code. 0~means success. - * - * @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). - */ + /************************************************************************** + * + * @function: + * FT_Get_PFR_Advance + * + * @description: + * Return a given glyph advance, expressed in original metrics units, + * from a PFR font. + * + * @input: + * face :: + * A handle to the input face. + * + * gindex :: + * The glyph index. + * + * @output: + * aadvance :: + * The glyph advance in metrics units. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * You can use the `x_scale` or `y_scale` results of @FT_Get_PFR_Metrics + * to convert the advance to device subpixels (i.e., 1/64th of pixels). + */ FT_EXPORT( FT_Error ) FT_Get_PFR_Advance( FT_Face face, FT_UInt gindex, @@ -166,7 +174,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTPFR_H__ */ +#endif /* FTPFR_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftrender.h b/android/x86_64/include/freetype/ftrender.h index e8d36363..eca3e220 100644 --- a/android/x86_64/include/freetype/ftrender.h +++ b/android/x86_64/include/freetype/ftrender.h @@ -1,26 +1,26 @@ -/***************************************************************************/ -/* */ -/* ftrender.h */ -/* */ -/* FreeType renderer modules public interface (specification). */ -/* */ -/* Copyright 1996-2001, 2005, 2006, 2010 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftrender.h + * + * FreeType renderer modules public interface (specification). + * + * Copyright (C) 1996-2019 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 __FTRENDER_H__ -#define __FTRENDER_H__ +#ifndef FTRENDER_H_ +#define FTRENDER_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_MODULE_H #include FT_GLYPH_H @@ -28,12 +28,12 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* module_management */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * module_management + * + */ /* create a new glyph object */ @@ -75,6 +75,7 @@ FT_BEGIN_HEADER { FT_Long glyph_size; FT_Glyph_Format glyph_format; + FT_Glyph_InitFunc glyph_init; FT_Glyph_DoneFunc glyph_done; FT_Glyph_CopyFunc glyph_copy; @@ -87,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 @@ -115,32 +116,38 @@ FT_BEGIN_HEADER #define FTRenderer_setMode FT_Renderer_SetModeFunc - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Renderer_Class */ - /* */ - /* <Description> */ - /* The renderer module class descriptor. */ - /* */ - /* <Fields> */ - /* root :: The root @FT_Module_Class fields. */ - /* */ - /* glyph_format :: The glyph image format this renderer handles. */ - /* */ - /* render_glyph :: A method used to render the image that is in a */ - /* given glyph slot into a bitmap. */ - /* */ - /* transform_glyph :: A method used to transform the image that is in */ - /* a given glyph slot. */ - /* */ - /* get_glyph_cbox :: A method used to access the glyph's cbox. */ - /* */ - /* set_mode :: A method used to pass additional parameters. */ - /* */ - /* raster_class :: For @FT_GLYPH_FORMAT_OUTLINE renderers only. */ - /* This is a pointer to its raster's class. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Renderer_Class + * + * @description: + * The renderer module class descriptor. + * + * @fields: + * root :: + * The root @FT_Module_Class fields. + * + * glyph_format :: + * The glyph image format this renderer handles. + * + * render_glyph :: + * A method used to render the image that is in a given glyph slot into + * a bitmap. + * + * transform_glyph :: + * A method used to transform the image that is in a given glyph slot. + * + * get_glyph_cbox :: + * A method used to access the glyph's cbox. + * + * set_mode :: + * A method used to pass additional parameters. + * + * raster_class :: + * For @FT_GLYPH_FORMAT_OUTLINE renderers only. This is a pointer to + * its raster's class. + */ typedef struct FT_Renderer_Class_ { FT_Module_Class root; @@ -157,69 +164,70 @@ FT_BEGIN_HEADER } FT_Renderer_Class; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Renderer */ - /* */ - /* <Description> */ - /* Retrieve the current renderer for a given glyph format. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object. */ - /* */ - /* format :: The glyph format. */ - /* */ - /* <Return> */ - /* A renderer handle. 0~if none found. */ - /* */ - /* <Note> */ - /* An error will be returned if a module already exists by that name, */ - /* or if the module requires a version of FreeType that is too great. */ - /* */ - /* To add a new renderer, simply use @FT_Add_Module. To retrieve a */ - /* renderer by its name, use @FT_Get_Module. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Renderer + * + * @description: + * Retrieve the current renderer for a given glyph format. + * + * @input: + * library :: + * A handle to the library object. + * + * format :: + * The glyph format. + * + * @return: + * A renderer handle. 0~if none found. + * + * @note: + * An error will be returned if a module already exists by that name, or + * if the module requires a version of FreeType that is too great. + * + * To add a new renderer, simply use @FT_Add_Module. To retrieve a + * renderer by its name, use @FT_Get_Module. + */ FT_EXPORT( FT_Renderer ) FT_Get_Renderer( FT_Library library, FT_Glyph_Format format ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Renderer */ - /* */ - /* <Description> */ - /* Set the current renderer to use, and set additional mode. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library object. */ - /* */ - /* <Input> */ - /* renderer :: A handle to the renderer object. */ - /* */ - /* num_params :: The number of additional parameters. */ - /* */ - /* parameters :: Additional parameters. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* In case of success, the renderer will be used to convert glyph */ - /* images in the renderer's known format into bitmaps. */ - /* */ - /* This doesn't change the current renderer for other formats. */ - /* */ - /* Currently, only the B/W renderer, if compiled with */ - /* FT_RASTER_OPTION_ANTI_ALIASING (providing a 5-levels */ - /* anti-aliasing mode; this option must be set directly in */ - /* `ftraster.c' and is undefined by default) accepts a single tag */ - /* `pal5' to set its gray palette as a character string with */ - /* 5~elements. Consequently, the third and fourth argument are zero */ - /* normally. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Set_Renderer + * + * @description: + * Set the current renderer to use, and set additional mode. + * + * @inout: + * library :: + * A handle to the library object. + * + * @input: + * renderer :: + * A handle to the renderer object. + * + * num_params :: + * The number of additional parameters. + * + * parameters :: + * Additional parameters. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * In case of success, the renderer will be used to convert glyph images + * in the renderer's known format into bitmaps. + * + * This doesn't change the current renderer for other formats. + * + * Currently, no FreeType renderer module uses `parameters`; you should + * thus always pass `NULL` as the value. + */ FT_EXPORT( FT_Error ) FT_Set_Renderer( FT_Library library, FT_Renderer renderer, @@ -231,7 +239,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTRENDER_H__ */ +#endif /* FTRENDER_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftsizes.h b/android/x86_64/include/freetype/ftsizes.h index 41670457..2d63295e 100644 --- a/android/x86_64/include/freetype/ftsizes.h +++ b/android/x86_64/include/freetype/ftsizes.h @@ -1,35 +1,35 @@ -/***************************************************************************/ -/* */ -/* ftsizes.h */ -/* */ -/* FreeType size objects management (specification). */ -/* */ -/* Copyright 1996-2001, 2003, 2004, 2006, 2009, 2013 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftsizes.h + * + * FreeType size objects management (specification). + * + * Copyright (C) 1996-2019 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. + * + */ - /*************************************************************************/ - /* */ - /* Typical application would normally not need to use these functions. */ - /* However, they have been placed in a public API for the rare cases */ - /* where they are needed. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * Typical application would normally not need to use these functions. + * However, they have been placed in a public API for the rare cases where + * they are needed. + * + */ -#ifndef __FTSIZES_H__ -#define __FTSIZES_H__ +#ifndef FTSIZES_H_ +#define FTSIZES_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -42,109 +42,110 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* sizes_management */ - /* */ - /* <Title> */ - /* Size Management */ - /* */ - /* <Abstract> */ - /* Managing multiple sizes per face. */ - /* */ - /* <Description> */ - /* When creating a new face object (e.g., with @FT_New_Face), an */ - /* @FT_Size object is automatically created and used to store all */ - /* pixel-size dependent information, available in the `face->size' */ - /* field. */ - /* */ - /* It is however possible to create more sizes for a given face, */ - /* mostly in order to manage several character pixel sizes of the */ - /* same font family and style. See @FT_New_Size and @FT_Done_Size. */ - /* */ - /* Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only */ - /* modify the contents of the current `active' size; you thus need */ - /* to use @FT_Activate_Size to change it. */ - /* */ - /* 99% of applications won't need the functions provided here, */ - /* especially if they use the caching sub-system, so be cautious */ - /* when using these. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * sizes_management + * + * @title: + * Size Management + * + * @abstract: + * Managing multiple sizes per face. + * + * @description: + * When creating a new face object (e.g., with @FT_New_Face), an @FT_Size + * object is automatically created and used to store all pixel-size + * dependent information, available in the `face->size` field. + * + * It is however possible to create more sizes for a given face, mostly + * in order to manage several character pixel sizes of the same font + * family and style. See @FT_New_Size and @FT_Done_Size. + * + * Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only modify the + * contents of the current 'active' size; you thus need to use + * @FT_Activate_Size to change it. + * + * 99% of applications won't need the functions provided here, especially + * if they use the caching sub-system, so be cautious when using these. + * + */ - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Size */ - /* */ - /* <Description> */ - /* Create a new size object from a given face object. */ - /* */ - /* <Input> */ - /* face :: A handle to a parent face object. */ - /* */ - /* <Output> */ - /* asize :: A handle to a new size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You need to call @FT_Activate_Size in order to select the new size */ - /* for upcoming calls to @FT_Set_Pixel_Sizes, @FT_Set_Char_Size, */ - /* @FT_Load_Glyph, @FT_Load_Char, etc. */ - /* */ + /************************************************************************** + * + * @function: + * FT_New_Size + * + * @description: + * Create a new size object from a given face object. + * + * @input: + * face :: + * A handle to a parent face object. + * + * @output: + * asize :: + * A handle to a new size object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * You need to call @FT_Activate_Size in order to select the new size for + * upcoming calls to @FT_Set_Pixel_Sizes, @FT_Set_Char_Size, + * @FT_Load_Glyph, @FT_Load_Char, etc. + */ FT_EXPORT( FT_Error ) FT_New_Size( FT_Face face, FT_Size* size ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Size */ - /* */ - /* <Description> */ - /* Discard a given size object. Note that @FT_Done_Face */ - /* automatically discards all size objects allocated with */ - /* @FT_New_Size. */ - /* */ - /* <Input> */ - /* size :: A handle to a target size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Done_Size + * + * @description: + * Discard a given size object. Note that @FT_Done_Face automatically + * discards all size objects allocated with @FT_New_Size. + * + * @input: + * size :: + * A handle to a target size object. + * + * @return: + * FreeType error code. 0~means success. + */ FT_EXPORT( FT_Error ) FT_Done_Size( FT_Size size ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Activate_Size */ - /* */ - /* <Description> */ - /* Even though it is possible to create several size objects for a */ - /* given face (see @FT_New_Size for details), functions like */ - /* @FT_Load_Glyph or @FT_Load_Char only use the one that has been */ - /* activated last to determine the `current character pixel size'. */ - /* */ - /* This function can be used to `activate' a previously created size */ - /* object. */ - /* */ - /* <Input> */ - /* size :: A handle to a target size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If `face' is the size's parent face object, this function changes */ - /* the value of `face->size' to the input size handle. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Activate_Size + * + * @description: + * Even though it is possible to create several size objects for a given + * face (see @FT_New_Size for details), functions like @FT_Load_Glyph or + * @FT_Load_Char only use the one that has been activated last to + * determine the 'current character pixel size'. + * + * This function can be used to 'activate' a previously created size + * object. + * + * @input: + * size :: + * A handle to a target size object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If `face` is the size's parent face object, this function changes the + * value of `face->size` to the input size handle. + */ FT_EXPORT( FT_Error ) FT_Activate_Size( FT_Size size ); @@ -153,7 +154,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTSIZES_H__ */ +#endif /* FTSIZES_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftsnames.h b/android/x86_64/include/freetype/ftsnames.h index 88af4403..fe32ec22 100644 --- a/android/x86_64/include/freetype/ftsnames.h +++ b/android/x86_64/include/freetype/ftsnames.h @@ -1,30 +1,31 @@ -/***************************************************************************/ -/* */ -/* ftsnames.h */ -/* */ -/* Simple interface to access SFNT name tables (which are used */ -/* to hold font names, copyright info, notices, etc.) (specification). */ -/* */ -/* This is _not_ used to retrieve glyph names! */ -/* */ -/* Copyright 1996-2003, 2006, 2009, 2010, 2013 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftsnames.h + * + * Simple interface to access SFNT 'name' tables (which are used + * to hold font names, copyright info, notices, etc.) (specification). + * + * This is _not_ used to retrieve glyph names! + * + * Copyright (C) 1996-2019 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 __FT_SFNT_NAMES_H__ -#define __FT_SFNT_NAMES_H__ +#ifndef FTSNAMES_H_ +#define FTSNAMES_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H +#include FT_PARAMETER_TAGS_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -36,65 +37,74 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* sfnt_names */ - /* */ - /* <Title> */ - /* SFNT Names */ - /* */ - /* <Abstract> */ - /* Access the names embedded in TrueType and OpenType files. */ - /* */ - /* <Description> */ - /* The TrueType and OpenType specifications allow the inclusion of */ - /* a special `names table' in font files. This table contains */ - /* textual (and internationalized) information regarding the font, */ - /* like family name, copyright, version, etc. */ - /* */ - /* The definitions below are used to access them if available. */ - /* */ - /* Note that this has nothing to do with glyph names! */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * sfnt_names + * + * @title: + * SFNT Names + * + * @abstract: + * Access the names embedded in TrueType and OpenType files. + * + * @description: + * The TrueType and OpenType specifications allow the inclusion of a + * special names table ('name') in font files. This table contains + * textual (and internationalized) information regarding the font, like + * family name, copyright, version, etc. + * + * The definitions below are used to access them if available. + * + * Note that this has nothing to do with glyph names! + * + */ - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_SfntName */ - /* */ - /* <Description> */ - /* A structure used to model an SFNT `name' table entry. */ - /* */ - /* <Fields> */ - /* platform_id :: The platform ID for `string'. */ - /* */ - /* encoding_id :: The encoding ID for `string'. */ - /* */ - /* language_id :: The language ID for `string'. */ - /* */ - /* name_id :: An identifier for `string'. */ - /* */ - /* string :: The `name' string. Note that its format differs */ - /* depending on the (platform,encoding) pair. It can */ - /* be a Pascal String, a UTF-16 one, etc. */ - /* */ - /* Generally speaking, the string is not */ - /* zero-terminated. Please refer to the TrueType */ - /* specification for details. */ - /* */ - /* string_len :: The length of `string' in bytes. */ - /* */ - /* <Note> */ - /* Possible values for `platform_id', `encoding_id', `language_id', */ - /* and `name_id' are given in the file `ttnameid.h'. For details */ - /* please refer to the TrueType or OpenType specification. */ - /* */ - /* See also @TT_PLATFORM_XXX, @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX, */ - /* @TT_ISO_ID_XXX, and @TT_MS_ID_XXX. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_SfntName + * + * @description: + * A structure used to model an SFNT 'name' table entry. + * + * @fields: + * platform_id :: + * The platform ID for `string`. See @TT_PLATFORM_XXX for possible + * values. + * + * encoding_id :: + * The encoding ID for `string`. See @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX, + * @TT_ISO_ID_XXX, @TT_MS_ID_XXX, and @TT_ADOBE_ID_XXX for possible + * values. + * + * language_id :: + * The language ID for `string`. See @TT_MAC_LANGID_XXX and + * @TT_MS_LANGID_XXX for possible values. + * + * Registered OpenType values for `language_id` are always smaller than + * 0x8000; values equal or larger than 0x8000 usually indicate a + * language tag string (introduced in OpenType version 1.6). Use + * function @FT_Get_Sfnt_LangTag with `language_id` as its argument to + * retrieve the associated language tag. + * + * name_id :: + * An identifier for `string`. See @TT_NAME_ID_XXX for possible + * values. + * + * string :: + * The 'name' string. Note that its format differs depending on the + * (platform,encoding) pair, being either a string of bytes (without a + * terminating `NULL` byte) or containing UTF-16BE entities. + * + * string_len :: + * The length of `string` in bytes. + * + * @note: + * Please refer to the TrueType or OpenType specification for more + * details. + */ typedef struct FT_SfntName_ { FT_UShort platform_id; @@ -103,98 +113,161 @@ FT_BEGIN_HEADER FT_UShort name_id; FT_Byte* string; /* this string is *not* null-terminated! */ - FT_UInt string_len; /* in bytes */ + FT_UInt string_len; /* in bytes */ } FT_SfntName; - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Sfnt_Name_Count */ - /* */ - /* <Description> */ - /* Retrieve the number of name strings in the SFNT `name' table. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* <Return> */ - /* The number of strings in the `name' table. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Sfnt_Name_Count + * + * @description: + * Retrieve the number of name strings in the SFNT 'name' table. + * + * @input: + * face :: + * A handle to the source face. + * + * @return: + * The number of strings in the 'name' table. + * + * @note: + * This function always returns an error if the config macro + * `TT_CONFIG_OPTION_SFNT_NAMES` is not defined in `ftoption.h`. + */ FT_EXPORT( FT_UInt ) FT_Get_Sfnt_Name_Count( FT_Face face ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Sfnt_Name */ - /* */ - /* <Description> */ - /* Retrieve a string of the SFNT `name' table for a given index. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* idx :: The index of the `name' string. */ - /* */ - /* <Output> */ - /* aname :: The indexed @FT_SfntName structure. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The `string' array returned in the `aname' structure is not */ - /* null-terminated. The application should deallocate it if it is no */ - /* longer in use. */ - /* */ - /* Use @FT_Get_Sfnt_Name_Count to get the total number of available */ - /* `name' table entries, then do a loop until you get the right */ - /* platform, encoding, and name ID. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Sfnt_Name + * + * @description: + * Retrieve a string of the SFNT 'name' table for a given index. + * + * @input: + * face :: + * A handle to the source face. + * + * idx :: + * The index of the 'name' string. + * + * @output: + * aname :: + * The indexed @FT_SfntName structure. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The `string` array returned in the `aname` structure is not + * null-terminated. Note that you don't have to deallocate `string` by + * yourself; FreeType takes care of it if you call @FT_Done_Face. + * + * Use @FT_Get_Sfnt_Name_Count to get the total number of available + * 'name' table entries, then do a loop until you get the right platform, + * encoding, and name ID. + * + * 'name' table format~1 entries can use language tags also, see + * @FT_Get_Sfnt_LangTag. + * + * This function always returns an error if the config macro + * `TT_CONFIG_OPTION_SFNT_NAMES` is not defined in `ftoption.h`. + */ FT_EXPORT( FT_Error ) FT_Get_Sfnt_Name( FT_Face face, FT_UInt idx, FT_SfntName *aname ); - /*************************************************************************** + /************************************************************************** * - * @constant: - * FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY + * @struct: + * FT_SfntLangTag * * @description: - * A constant used as the tag of @FT_Parameter structures to make - * FT_Open_Face() ignore preferred family subfamily names in `name' - * table since OpenType version 1.4. For backwards compatibility with - * legacy systems that have a 4-face-per-family restriction. + * A structure to model a language tag entry from an SFNT 'name' table. * + * @fields: + * string :: + * The language tag string, encoded in UTF-16BE (without trailing + * `NULL` bytes). + * + * string_len :: + * The length of `string` in **bytes**. + * + * @note: + * Please refer to the TrueType or OpenType specification for more + * details. + * + * @since: + * 2.8 */ -#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY FT_MAKE_TAG( 'i', 'g', 'p', 'f' ) + typedef struct FT_SfntLangTag_ + { + FT_Byte* string; /* this string is *not* null-terminated! */ + FT_UInt string_len; /* in bytes */ + + } FT_SfntLangTag; - /*************************************************************************** + /************************************************************************** * - * @constant: - * FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY + * @function: + * FT_Get_Sfnt_LangTag * * @description: - * A constant used as the tag of @FT_Parameter structures to make - * FT_Open_Face() ignore preferred subfamily names in `name' table since - * OpenType version 1.4. For backwards compatibility with legacy - * systems that have a 4-face-per-family restriction. + * Retrieve the language tag associated with a language ID of an SFNT + * 'name' table entry. * + * @input: + * face :: + * A handle to the source face. + * + * langID :: + * The language ID, as returned by @FT_Get_Sfnt_Name. This is always a + * value larger than 0x8000. + * + * @output: + * alangTag :: + * The language tag associated with the 'name' table entry's language + * ID. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The `string` array returned in the `alangTag` structure is not + * null-terminated. Note that you don't have to deallocate `string` by + * yourself; FreeType takes care of it if you call @FT_Done_Face. + * + * Only 'name' table format~1 supports language tags. For format~0 + * tables, this function always returns FT_Err_Invalid_Table. For + * invalid format~1 language ID values, FT_Err_Invalid_Argument is + * returned. + * + * This function always returns an error if the config macro + * `TT_CONFIG_OPTION_SFNT_NAMES` is not defined in `ftoption.h`. + * + * @since: + * 2.8 */ -#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY FT_MAKE_TAG( 'i', 'g', 'p', 's' ) + FT_EXPORT( FT_Error ) + FT_Get_Sfnt_LangTag( FT_Face face, + FT_UInt langID, + FT_SfntLangTag *alangTag ); + /* */ FT_END_HEADER -#endif /* __FT_SFNT_NAMES_H__ */ +#endif /* FTSNAMES_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftstroke.h b/android/x86_64/include/freetype/ftstroke.h index bd311709..53c4eee5 100644 --- a/android/x86_64/include/freetype/ftstroke.h +++ b/android/x86_64/include/freetype/ftstroke.h @@ -1,25 +1,25 @@ -/***************************************************************************/ -/* */ -/* ftstroke.h */ -/* */ -/* FreeType path stroker (specification). */ -/* */ -/* Copyright 2002-2006, 2008, 2009, 2011-2012, 2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftstroke.h + * + * FreeType path stroker (specification). + * + * Copyright (C) 2002-2019 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 __FT_STROKE_H__ -#define __FT_STROKE_H__ +#ifndef FTSTROKE_H_ +#define FTSTROKE_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_OUTLINE_H #include FT_GLYPH_H @@ -27,116 +27,113 @@ FT_BEGIN_HEADER - /************************************************************************ - * - * @section: - * glyph_stroker - * - * @title: - * Glyph Stroker - * - * @abstract: - * Generating bordered and stroked glyphs. - * - * @description: - * This component generates stroked outlines of a given vectorial - * glyph. It also allows you to retrieve the `outside' and/or the - * `inside' borders of the stroke. - * - * This can be useful to generate `bordered' glyph, i.e., glyphs - * displayed with a coloured (and anti-aliased) border around their - * shape. - * - * @order: - * FT_Stroker - * - * FT_Stroker_LineJoin - * FT_Stroker_LineCap - * FT_StrokerBorder - * - * FT_Outline_GetInsideBorder - * FT_Outline_GetOutsideBorder - * - * FT_Glyph_Stroke - * FT_Glyph_StrokeBorder - * - * FT_Stroker_New - * FT_Stroker_Set - * FT_Stroker_Rewind - * FT_Stroker_ParseOutline - * FT_Stroker_Done - * - * FT_Stroker_BeginSubPath - * FT_Stroker_EndSubPath - * - * FT_Stroker_LineTo - * FT_Stroker_ConicTo - * FT_Stroker_CubicTo - * - * FT_Stroker_GetBorderCounts - * FT_Stroker_ExportBorder - * FT_Stroker_GetCounts - * FT_Stroker_Export - * - */ + /************************************************************************** + * + * @section: + * glyph_stroker + * + * @title: + * Glyph Stroker + * + * @abstract: + * Generating bordered and stroked glyphs. + * + * @description: + * This component generates stroked outlines of a given vectorial glyph. + * It also allows you to retrieve the 'outside' and/or the 'inside' + * borders of the stroke. + * + * This can be useful to generate 'bordered' glyph, i.e., glyphs + * displayed with a coloured (and anti-aliased) border around their + * shape. + * + * @order: + * FT_Stroker + * + * FT_Stroker_LineJoin + * FT_Stroker_LineCap + * FT_StrokerBorder + * + * FT_Outline_GetInsideBorder + * FT_Outline_GetOutsideBorder + * + * FT_Glyph_Stroke + * FT_Glyph_StrokeBorder + * + * FT_Stroker_New + * FT_Stroker_Set + * FT_Stroker_Rewind + * FT_Stroker_ParseOutline + * FT_Stroker_Done + * + * FT_Stroker_BeginSubPath + * FT_Stroker_EndSubPath + * + * FT_Stroker_LineTo + * FT_Stroker_ConicTo + * FT_Stroker_CubicTo + * + * FT_Stroker_GetBorderCounts + * FT_Stroker_ExportBorder + * FT_Stroker_GetCounts + * FT_Stroker_Export + * + */ - /************************************************************** - * - * @type: - * FT_Stroker - * - * @description: - * Opaque handle to a path stroker object. - */ + /************************************************************************** + * + * @type: + * FT_Stroker + * + * @description: + * Opaque handle to a path stroker object. + */ typedef struct FT_StrokerRec_* FT_Stroker; - /************************************************************** + /************************************************************************** * * @enum: * FT_Stroker_LineJoin * * @description: - * These values determine how two joining lines are rendered - * in a stroker. + * These values determine how two joining lines are rendered in a + * stroker. * * @values: * FT_STROKER_LINEJOIN_ROUND :: - * Used to render rounded line joins. Circular arcs are used - * to join two lines smoothly. + * Used to render rounded line joins. Circular arcs are used to join + * two lines smoothly. * * FT_STROKER_LINEJOIN_BEVEL :: - * Used to render beveled line joins. The outer corner of - * the joined lines is filled by enclosing the triangular - * region of the corner with a straight line between the - * outer corners of each stroke. + * Used to render beveled line joins. The outer corner of the joined + * lines is filled by enclosing the triangular region of the corner + * with a straight line between the outer corners of each stroke. * * FT_STROKER_LINEJOIN_MITER_FIXED :: - * Used to render mitered line joins, with fixed bevels if the - * miter limit is exceeded. The outer edges of the strokes - * for the two segments are extended until they meet at an - * angle. If the segments meet at too sharp an angle (such - * that the miter would extend from the intersection of the - * segments a distance greater than the product of the miter - * limit value and the border radius), then a bevel join (see - * above) is used instead. This prevents long spikes being - * created. FT_STROKER_LINEJOIN_MITER_FIXED generates a miter - * line join as used in PostScript and PDF. + * Used to render mitered line joins, with fixed bevels if the miter + * limit is exceeded. The outer edges of the strokes for the two + * segments are extended until they meet at an angle. If the segments + * meet at too sharp an angle (such that the miter would extend from + * the intersection of the segments a distance greater than the product + * of the miter limit value and the border radius), then a bevel join + * (see above) is used instead. This prevents long spikes being + * created. `FT_STROKER_LINEJOIN_MITER_FIXED` generates a miter line + * join as used in PostScript and PDF. * * FT_STROKER_LINEJOIN_MITER_VARIABLE :: * FT_STROKER_LINEJOIN_MITER :: - * Used to render mitered line joins, with variable bevels if - * the miter limit is exceeded. The intersection of the - * strokes is clipped at a line perpendicular to the bisector - * of the angle between the strokes, at the distance from the - * intersection of the segments equal to the product of the - * miter limit value and the border radius. This prevents - * long spikes being created. - * FT_STROKER_LINEJOIN_MITER_VARIABLE generates a mitered line - * join as used in XPS. FT_STROKER_LINEJOIN_MITER is an alias - * for FT_STROKER_LINEJOIN_MITER_VARIABLE, retained for - * backwards compatibility. + * Used to render mitered line joins, with variable bevels if the miter + * limit is exceeded. The intersection of the strokes is clipped at a + * line perpendicular to the bisector of the angle between the strokes, + * at the distance from the intersection of the segments equal to the + * product of the miter limit value and the border radius. This + * prevents long spikes being created. + * `FT_STROKER_LINEJOIN_MITER_VARIABLE` generates a mitered line join + * as used in XPS. `FT_STROKER_LINEJOIN_MITER` is an alias for + * `FT_STROKER_LINEJOIN_MITER_VARIABLE`, retained for backward + * compatibility. */ typedef enum FT_Stroker_LineJoin_ { @@ -149,27 +146,25 @@ FT_BEGIN_HEADER } FT_Stroker_LineJoin; - /************************************************************** + /************************************************************************** * * @enum: * FT_Stroker_LineCap * * @description: - * These values determine how the end of opened sub-paths are - * rendered in a stroke. + * These values determine how the end of opened sub-paths are rendered in + * a stroke. * * @values: * FT_STROKER_LINECAP_BUTT :: - * The end of lines is rendered as a full stop on the last - * point itself. + * The end of lines is rendered as a full stop on the last point + * itself. * * FT_STROKER_LINECAP_ROUND :: - * The end of lines is rendered as a half-circle around the - * last point. + * The end of lines is rendered as a half-circle around the last point. * * FT_STROKER_LINECAP_SQUARE :: - * The end of lines is rendered as a square around the - * last point. + * The end of lines is rendered as a square around the last point. */ typedef enum FT_Stroker_LineCap_ { @@ -180,14 +175,14 @@ FT_BEGIN_HEADER } FT_Stroker_LineCap; - /************************************************************** + /************************************************************************** * * @enum: * FT_StrokerBorder * * @description: - * These values are used to select a given stroke border - * in @FT_Stroker_GetBorderCounts and @FT_Stroker_ExportBorder. + * These values are used to select a given stroke border in + * @FT_Stroker_GetBorderCounts and @FT_Stroker_ExportBorder. * * @values: * FT_STROKER_BORDER_LEFT :: @@ -197,9 +192,9 @@ FT_BEGIN_HEADER * Select the right border, relative to the drawing direction. * * @note: - * Applications are generally interested in the `inside' and `outside' + * Applications are generally interested in the 'inside' and 'outside' * borders. However, there is no direct mapping between these and the - * `left' and `right' ones, since this really depends on the glyph's + * 'left' and 'right' ones, since this really depends on the glyph's * drawing orientation, which varies between font formats. * * You can however use @FT_Outline_GetInsideBorder and @@ -213,14 +208,14 @@ FT_BEGIN_HEADER } FT_StrokerBorder; - /************************************************************** + /************************************************************************** * * @function: * FT_Outline_GetInsideBorder * * @description: - * Retrieve the @FT_StrokerBorder value corresponding to the - * `inside' borders of a given outline. + * Retrieve the @FT_StrokerBorder value corresponding to the 'inside' + * borders of a given outline. * * @input: * outline :: @@ -234,14 +229,14 @@ FT_BEGIN_HEADER FT_Outline_GetInsideBorder( FT_Outline* outline ); - /************************************************************** + /************************************************************************** * * @function: * FT_Outline_GetOutsideBorder * * @description: - * Retrieve the @FT_StrokerBorder value corresponding to the - * `outside' borders of a given outline. + * Retrieve the @FT_StrokerBorder value corresponding to the 'outside' + * borders of a given outline. * * @input: * outline :: @@ -255,7 +250,7 @@ FT_BEGIN_HEADER FT_Outline_GetOutsideBorder( FT_Outline* outline ); - /************************************************************** + /************************************************************************** * * @function: * FT_Stroker_New @@ -269,7 +264,7 @@ FT_BEGIN_HEADER * * @output: * astroker :: - * A new stroker object handle. NULL in case of error. + * A new stroker object handle. `NULL` in case of error. * * @return: * FreeType error code. 0~means success. @@ -279,7 +274,7 @@ FT_BEGIN_HEADER FT_Stroker *astroker ); - /************************************************************** + /************************************************************************** * * @function: * FT_Stroker_Set @@ -301,13 +296,12 @@ FT_BEGIN_HEADER * The line join style. * * miter_limit :: - * The miter limit for the FT_STROKER_LINEJOIN_MITER_FIXED and - * FT_STROKER_LINEJOIN_MITER_VARIABLE line join styles, - * expressed as 16.16 fixed-point value. + * The miter limit for the `FT_STROKER_LINEJOIN_MITER_FIXED` and + * `FT_STROKER_LINEJOIN_MITER_VARIABLE` line join styles, expressed as + * 16.16 fixed-point value. * * @note: - * The radius is expressed in the same units as the outline - * coordinates. + * The radius is expressed in the same units as the outline coordinates. * * This function calls @FT_Stroker_Rewind automatically. */ @@ -319,16 +313,15 @@ FT_BEGIN_HEADER FT_Fixed miter_limit ); - /************************************************************** + /************************************************************************** * * @function: * FT_Stroker_Rewind * * @description: - * Reset a stroker object without changing its attributes. - * You should call this function before beginning a new - * series of calls to @FT_Stroker_BeginSubPath or - * @FT_Stroker_EndSubPath. + * Reset a stroker object without changing its attributes. You should + * call this function before beginning a new series of calls to + * @FT_Stroker_BeginSubPath or @FT_Stroker_EndSubPath. * * @input: * stroker :: @@ -338,15 +331,15 @@ FT_BEGIN_HEADER FT_Stroker_Rewind( FT_Stroker stroker ); - /************************************************************** + /************************************************************************** * * @function: * FT_Stroker_ParseOutline * * @description: - * A convenience function used to parse a whole outline with - * the stroker. The resulting outline(s) can be retrieved - * later by functions like @FT_Stroker_GetCounts and @FT_Stroker_Export. + * A convenience function used to parse a whole outline with the stroker. + * The resulting outline(s) can be retrieved later by functions like + * @FT_Stroker_GetCounts and @FT_Stroker_Export. * * @input: * stroker :: @@ -356,18 +349,18 @@ FT_BEGIN_HEADER * The source outline. * * opened :: - * A boolean. If~1, the outline is treated as an open path instead - * of a closed one. + * A boolean. If~1, the outline is treated as an open path instead of + * a closed one. * * @return: * FreeType error code. 0~means success. * * @note: - * If `opened' is~0 (the default), the outline is treated as a closed - * path, and the stroker generates two distinct `border' outlines. + * If `opened` is~0 (the default), the outline is treated as a closed + * path, and the stroker generates two distinct 'border' outlines. * - * If `opened' is~1, the outline is processed as an open path, and the - * stroker generates a single `stroke' outline. + * If `opened` is~1, the outline is processed as an open path, and the + * stroker generates a single 'stroke' outline. * * This function calls @FT_Stroker_Rewind automatically. */ @@ -377,7 +370,7 @@ FT_BEGIN_HEADER FT_Bool opened ); - /************************************************************** + /************************************************************************** * * @function: * FT_Stroker_BeginSubPath @@ -399,8 +392,8 @@ FT_BEGIN_HEADER * FreeType error code. 0~means success. * * @note: - * This function is useful when you need to stroke a path that is - * not stored as an @FT_Outline object. + * This function is useful when you need to stroke a path that is not + * stored as an @FT_Outline object. */ FT_EXPORT( FT_Error ) FT_Stroker_BeginSubPath( FT_Stroker stroker, @@ -408,7 +401,7 @@ FT_BEGIN_HEADER FT_Bool open ); - /************************************************************** + /************************************************************************** * * @function: * FT_Stroker_EndSubPath @@ -424,22 +417,22 @@ FT_BEGIN_HEADER * FreeType error code. 0~means success. * * @note: - * You should call this function after @FT_Stroker_BeginSubPath. - * If the subpath was not `opened', this function `draws' a - * single line segment to the start position when needed. + * You should call this function after @FT_Stroker_BeginSubPath. If the + * subpath was not 'opened', this function 'draws' a single line segment + * to the start position when needed. */ FT_EXPORT( FT_Error ) FT_Stroker_EndSubPath( FT_Stroker stroker ); - /************************************************************** + /************************************************************************** * * @function: * FT_Stroker_LineTo * * @description: - * `Draw' a single line segment in the stroker's current sub-path, - * from the last position. + * 'Draw' a single line segment in the stroker's current sub-path, from + * the last position. * * @input: * stroker :: @@ -460,13 +453,13 @@ FT_BEGIN_HEADER FT_Vector* to ); - /************************************************************** + /************************************************************************** * * @function: * 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 +467,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. @@ -492,24 +485,24 @@ FT_BEGIN_HEADER FT_Vector* to ); - /************************************************************** + /************************************************************************** * * @function: * FT_Stroker_CubicTo * * @description: - * `Draw' a single cubic Bézier in the stroker's current sub-path, - * from the last position. + * 'Draw' a single cubic Bezier in the stroker's current sub-path, from + * the last position. * * @input: * stroker :: * 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. @@ -528,16 +521,16 @@ FT_BEGIN_HEADER FT_Vector* to ); - /************************************************************** + /************************************************************************** * * @function: * FT_Stroker_GetBorderCounts * * @description: - * Call this function once you have finished parsing your paths - * with the stroker. It returns the number of points and - * contours necessary to export one of the `border' or `stroke' - * outlines generated by the stroker. + * Call this function once you have finished parsing your paths with the + * stroker. It returns the number of points and contours necessary to + * export one of the 'border' or 'stroke' outlines generated by the + * stroker. * * @input: * stroker :: @@ -557,15 +550,15 @@ FT_BEGIN_HEADER * FreeType error code. 0~means success. * * @note: - * When an outline, or a sub-path, is `closed', the stroker generates - * two independent `border' outlines, named `left' and `right'. + * When an outline, or a sub-path, is 'closed', the stroker generates two + * independent 'border' outlines, named 'left' and 'right'. * - * When the outline, or a sub-path, is `opened', the stroker merges - * the `border' outlines with caps. The `left' border receives all - * points, while the `right' border becomes empty. + * When the outline, or a sub-path, is 'opened', the stroker merges the + * 'border' outlines with caps. The 'left' border receives all points, + * while the 'right' border becomes empty. * - * Use the function @FT_Stroker_GetCounts instead if you want to - * retrieve the counts associated to both borders. + * Use the function @FT_Stroker_GetCounts instead if you want to retrieve + * the counts associated to both borders. */ FT_EXPORT( FT_Error ) FT_Stroker_GetBorderCounts( FT_Stroker stroker, @@ -574,19 +567,17 @@ FT_BEGIN_HEADER FT_UInt *anum_contours ); - /************************************************************** + /************************************************************************** * * @function: * FT_Stroker_ExportBorder * * @description: - * Call this function after @FT_Stroker_GetBorderCounts to - * export the corresponding border to your own @FT_Outline - * structure. + * Call this function after @FT_Stroker_GetBorderCounts to export the + * corresponding border to your own @FT_Outline structure. * - * Note that this function appends the border points and - * contours to your outline, but does not try to resize its - * arrays. + * Note that this function appends the border points and contours to your + * outline, but does not try to resize its arrays. * * @input: * stroker :: @@ -599,19 +590,19 @@ FT_BEGIN_HEADER * The target outline handle. * * @note: - * Always call this function after @FT_Stroker_GetBorderCounts to - * get sure that there is enough room in your @FT_Outline object to - * receive all new data. + * Always call this function after @FT_Stroker_GetBorderCounts to get + * sure that there is enough room in your @FT_Outline object to receive + * all new data. * - * When an outline, or a sub-path, is `closed', the stroker generates - * two independent `border' outlines, named `left' and `right'. + * When an outline, or a sub-path, is 'closed', the stroker generates two + * independent 'border' outlines, named 'left' and 'right'. * - * When the outline, or a sub-path, is `opened', the stroker merges - * the `border' outlines with caps. The `left' border receives all - * points, while the `right' border becomes empty. + * When the outline, or a sub-path, is 'opened', the stroker merges the + * 'border' outlines with caps. The 'left' border receives all points, + * while the 'right' border becomes empty. * - * Use the function @FT_Stroker_Export instead if you want to - * retrieve all borders at once. + * Use the function @FT_Stroker_Export instead if you want to retrieve + * all borders at once. */ FT_EXPORT( void ) FT_Stroker_ExportBorder( FT_Stroker stroker, @@ -619,16 +610,15 @@ FT_BEGIN_HEADER FT_Outline* outline ); - /************************************************************** + /************************************************************************** * * @function: * FT_Stroker_GetCounts * * @description: - * Call this function once you have finished parsing your paths - * with the stroker. It returns the number of points and - * contours necessary to export all points/borders from the stroked - * outline/path. + * Call this function once you have finished parsing your paths with the + * stroker. It returns the number of points and contours necessary to + * export all points/borders from the stroked outline/path. * * @input: * stroker :: @@ -650,18 +640,17 @@ FT_BEGIN_HEADER FT_UInt *anum_contours ); - /************************************************************** + /************************************************************************** * * @function: * FT_Stroker_Export * * @description: - * Call this function after @FT_Stroker_GetBorderCounts to - * export all borders to your own @FT_Outline structure. + * Call this function after @FT_Stroker_GetBorderCounts to export all + * borders to your own @FT_Outline structure. * - * Note that this function appends the border points and - * contours to your outline, but does not try to resize its - * arrays. + * Note that this function appends the border points and contours to your + * outline, but does not try to resize its arrays. * * @input: * stroker :: @@ -675,7 +664,7 @@ FT_BEGIN_HEADER FT_Outline* outline ); - /************************************************************** + /************************************************************************** * * @function: * FT_Stroker_Done @@ -685,13 +674,13 @@ FT_BEGIN_HEADER * * @input: * stroker :: - * A stroker handle. Can be NULL. + * A stroker handle. Can be `NULL`. */ FT_EXPORT( void ) FT_Stroker_Done( FT_Stroker stroker ); - /************************************************************** + /************************************************************************** * * @function: * FT_Glyph_Stroke @@ -708,8 +697,7 @@ FT_BEGIN_HEADER * A stroker handle. * * destroy :: - * A Boolean. If~1, the source glyph object is destroyed - * on success. + * A Boolean. If~1, the source glyph object is destroyed on success. * * @return: * FreeType error code. 0~means success. @@ -719,8 +707,8 @@ FT_BEGIN_HEADER * * Adding stroke may yield a significantly wider and taller glyph * depending on how large of a radius was used to stroke the glyph. You - * may need to manually adjust horizontal and vertical advance amounts - * to account for this added size. + * may need to manually adjust horizontal and vertical advance amounts to + * account for this added size. */ FT_EXPORT( FT_Error ) FT_Glyph_Stroke( FT_Glyph *pglyph, @@ -728,14 +716,14 @@ FT_BEGIN_HEADER FT_Bool destroy ); - /************************************************************** + /************************************************************************** * * @function: * FT_Glyph_StrokeBorder * * @description: - * Stroke a given outline glyph object with a given stroker, but - * only return either its inside or outside border. + * Stroke a given outline glyph object with a given stroker, but only + * return either its inside or outside border. * * @inout: * pglyph :: @@ -746,12 +734,11 @@ FT_BEGIN_HEADER * A stroker handle. * * inside :: - * A Boolean. If~1, return the inside border, otherwise - * the outside border. + * A Boolean. If~1, return the inside border, otherwise the outside + * border. * * destroy :: - * A Boolean. If~1, the source glyph object is destroyed - * on success. + * A Boolean. If~1, the source glyph object is destroyed on success. * * @return: * FreeType error code. 0~means success. @@ -761,8 +748,8 @@ FT_BEGIN_HEADER * * Adding stroke may yield a significantly wider and taller glyph * depending on how large of a radius was used to stroke the glyph. You - * may need to manually adjust horizontal and vertical advance amounts - * to account for this added size. + * may need to manually adjust horizontal and vertical advance amounts to + * account for this added size. */ FT_EXPORT( FT_Error ) FT_Glyph_StrokeBorder( FT_Glyph *pglyph, @@ -774,7 +761,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FT_STROKE_H__ */ +#endif /* FTSTROKE_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftsynth.h b/android/x86_64/include/freetype/ftsynth.h index d0ea7308..98f54c80 100644 --- a/android/x86_64/include/freetype/ftsynth.h +++ b/android/x86_64/include/freetype/ftsynth.h @@ -1,20 +1,20 @@ -/***************************************************************************/ -/* */ -/* ftsynth.h */ -/* */ -/* FreeType synthesizing code for emboldening and slanting */ -/* (specification). */ -/* */ -/* Copyright 2000-2001, 2003, 2006, 2008, 2012, 2013 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftsynth.h + * + * FreeType synthesizing code for emboldening and slanting + * (specification). + * + * Copyright (C) 2000-2019 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. + * + */ /*************************************************************************/ @@ -35,17 +35,17 @@ /* Main reason for not lifting the functions in this module to a */ - /* `standard' API is that the used parameters for emboldening and */ + /* 'standard' API is that the used parameters for emboldening and */ /* slanting are not configurable. Consider the functions as a */ /* code resource that should be copied into the application and */ /* adapted to the particular needs. */ -#ifndef __FTSYNTH_H__ -#define __FTSYNTH_H__ +#ifndef FTSYNTH_H_ +#define FTSYNTH_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -57,13 +57,15 @@ FT_BEGIN_HEADER - /* Embolden a glyph by a `reasonable' value (which is highly a matter of */ + /* Embolden a glyph by a 'reasonable' value (which is highly a matter of */ /* taste). This function is actually a convenience function, providing */ /* a wrapper for @FT_Outline_Embolden and @FT_Bitmap_Embolden. */ /* */ /* For emboldened outlines the height, width, and advance metrics are */ - /* increased by the strength of the emboldening. You can also call */ - /* @FT_Outline_Get_CBox to get precise values. */ + /* increased by the strength of the emboldening -- this even affects */ + /* mono-width fonts! */ + /* */ + /* You can also call @FT_Outline_Get_CBox to get precise values. */ FT_EXPORT( void ) FT_GlyphSlot_Embolden( FT_GlyphSlot slot ); @@ -76,7 +78,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTSYNTH_H__ */ +#endif /* FTSYNTH_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftsystem.h b/android/x86_64/include/freetype/ftsystem.h index 7436ed26..f22bf540 100644 --- a/android/x86_64/include/freetype/ftsystem.h +++ b/android/x86_64/include/freetype/ftsystem.h @@ -1,59 +1,58 @@ -/***************************************************************************/ -/* */ -/* ftsystem.h */ -/* */ -/* FreeType low-level system interface definition (specification). */ -/* */ -/* Copyright 1996-2001, 2002, 2005, 2010, 2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftsystem.h + * + * FreeType low-level system interface definition (specification). + * + * Copyright (C) 1996-2019 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 __FTSYSTEM_H__ -#define __FTSYSTEM_H__ +#ifndef FTSYSTEM_H_ +#define FTSYSTEM_H_ -#include <ft2build.h> +#include "ft2build.h" FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* system_interface */ - /* */ - /* <Title> */ - /* System Interface */ - /* */ - /* <Abstract> */ - /* How FreeType manages memory and i/o. */ - /* */ - /* <Description> */ - /* This section contains various definitions related to memory */ - /* management and i/o access. You need to understand this */ - /* information if you want to use a custom memory manager or you own */ - /* i/o streams. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * system_interface + * + * @title: + * System Interface + * + * @abstract: + * How FreeType manages memory and i/o. + * + * @description: + * This section contains various definitions related to memory management + * and i/o access. You need to understand this information if you want to + * use a custom memory manager or you own i/o streams. + * + */ - /*************************************************************************/ - /* */ - /* M E M O R Y M A N A G E M E N T */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * M E M O R Y M A N A G E M E N T + * + */ - /************************************************************************* + /************************************************************************** * * @type: * FT_Memory @@ -66,13 +65,13 @@ FT_BEGIN_HEADER typedef struct FT_MemoryRec_* FT_Memory; - /************************************************************************* + /************************************************************************** * * @functype: * FT_Alloc_Func * * @description: - * A function used to allocate `size' bytes from `memory'. + * A function used to allocate `size` bytes from `memory`. * * @input: * memory :: @@ -90,7 +89,7 @@ FT_BEGIN_HEADER long size ); - /************************************************************************* + /************************************************************************** * * @functype: * FT_Free_Func @@ -111,7 +110,7 @@ FT_BEGIN_HEADER void* block ); - /************************************************************************* + /************************************************************************** * * @functype: * FT_Realloc_Func @@ -146,7 +145,7 @@ FT_BEGIN_HEADER void* block ); - /************************************************************************* + /************************************************************************** * * @struct: * FT_MemoryRec @@ -177,14 +176,14 @@ FT_BEGIN_HEADER }; - /*************************************************************************/ - /* */ - /* I / O M A N A G E M E N T */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * I / O M A N A G E M E N T + * + */ - /************************************************************************* + /************************************************************************** * * @type: * FT_Stream @@ -193,21 +192,21 @@ FT_BEGIN_HEADER * A handle to an input stream. * * @also: - * See @FT_StreamRec for the publicly accessible fields of a given - * stream object. + * See @FT_StreamRec for the publicly accessible fields of a given stream + * object. * */ typedef struct FT_StreamRec_* FT_Stream; - /************************************************************************* + /************************************************************************** * * @struct: * FT_StreamDesc * * @description: * A union type used to store either a long or a pointer. This is used - * to store a file descriptor or a `FILE*' in an input stream. + * to store a file descriptor or a `FILE*` in an input stream. * */ typedef union FT_StreamDesc_ @@ -218,7 +217,7 @@ FT_BEGIN_HEADER } FT_StreamDesc; - /************************************************************************* + /************************************************************************** * * @functype: * FT_Stream_IoFunc @@ -243,9 +242,8 @@ FT_BEGIN_HEADER * The number of bytes effectively read by the stream. * * @note: - * This function might be called to perform a seek or skip operation - * with a `count' of~0. A non-zero return value then indicates an - * error. + * This function might be called to perform a seek or skip operation with + * a `count` of~0. A non-zero return value then indicates an error. * */ typedef unsigned long @@ -255,7 +253,7 @@ FT_BEGIN_HEADER unsigned long count ); - /************************************************************************* + /************************************************************************** * * @functype: * FT_Stream_CloseFunc @@ -265,14 +263,14 @@ FT_BEGIN_HEADER * * @input: * stream :: - * A handle to the target stream. + * A handle to the target stream. * */ typedef void (*FT_Stream_CloseFunc)( FT_Stream stream ); - /************************************************************************* + /************************************************************************** * * @struct: * FT_StreamRec @@ -283,14 +281,14 @@ FT_BEGIN_HEADER * @input: * base :: * For memory-based streams, this is the address of the first stream - * byte in memory. This field should always be set to NULL for + * byte in memory. This field should always be set to `NULL` for * disk-based streams. * * size :: * The stream size in bytes. * * In case of compressed streams where the size is unknown before - * actually doing the decompression, the value is set to 0x7FFFFFFF. + * actually doing the decompression, the value is set to 0x7FFFFFFF. * (Note that this size value can occur for normal streams also; it is * thus just a hint.) * @@ -299,7 +297,7 @@ FT_BEGIN_HEADER * * descriptor :: * This field is a union that can hold an integer or a pointer. It is - * used by stream implementations to store file descriptors or `FILE*' + * used by stream implementations to store file descriptors or `FILE*` * pointers. * * pathname :: @@ -314,13 +312,13 @@ FT_BEGIN_HEADER * The stream's close function. * * memory :: - * The memory manager to use to preload frames. This is set - * internally by FreeType and shouldn't be touched by stream - * implementations. + * The memory manager to use to preload frames. This is set internally + * by FreeType and shouldn't be touched by stream implementations. * * cursor :: * This field is set and used internally by FreeType when parsing - * frames. + * frames. In particular, the `FT_GET_XXX` macros use this instead of + * the `pos` field. * * limit :: * This field is set and used internally by FreeType when parsing @@ -349,7 +347,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTSYSTEM_H__ */ +#endif /* FTSYSTEM_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/fttrigon.h b/android/x86_64/include/freetype/fttrigon.h index 9c7b5432..37e1412f 100644 --- a/android/x86_64/include/freetype/fttrigon.h +++ b/android/x86_64/include/freetype/fttrigon.h @@ -1,23 +1,23 @@ -/***************************************************************************/ -/* */ -/* fttrigon.h */ -/* */ -/* FreeType trigonometric functions (specification). */ -/* */ -/* Copyright 2001, 2003, 2005, 2007, 2013 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * fttrigon.h + * + * FreeType trigonometric functions (specification). + * + * Copyright (C) 2001-2019 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 __FTTRIGON_H__ -#define __FTTRIGON_H__ +#ifndef FTTRIGON_H_ +#define FTTRIGON_H_ #include FT_FREETYPE_H @@ -31,15 +31,15 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* computations */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * computations + * + */ - /************************************************************************* + /************************************************************************** * * @type: * FT_Angle @@ -52,7 +52,7 @@ FT_BEGIN_HEADER typedef FT_Fixed FT_Angle; - /************************************************************************* + /************************************************************************** * * @macro: * FT_ANGLE_PI @@ -64,7 +64,7 @@ FT_BEGIN_HEADER #define FT_ANGLE_PI ( 180L << 16 ) - /************************************************************************* + /************************************************************************** * * @macro: * FT_ANGLE_2PI @@ -76,7 +76,7 @@ FT_BEGIN_HEADER #define FT_ANGLE_2PI ( FT_ANGLE_PI * 2 ) - /************************************************************************* + /************************************************************************** * * @macro: * FT_ANGLE_PI2 @@ -88,7 +88,7 @@ FT_BEGIN_HEADER #define FT_ANGLE_PI2 ( FT_ANGLE_PI / 2 ) - /************************************************************************* + /************************************************************************** * * @macro: * FT_ANGLE_PI4 @@ -100,7 +100,7 @@ FT_BEGIN_HEADER #define FT_ANGLE_PI4 ( FT_ANGLE_PI / 4 ) - /************************************************************************* + /************************************************************************** * * @function: * FT_Sin @@ -124,7 +124,7 @@ FT_BEGIN_HEADER FT_Sin( FT_Angle angle ); - /************************************************************************* + /************************************************************************** * * @function: * FT_Cos @@ -148,7 +148,7 @@ FT_BEGIN_HEADER FT_Cos( FT_Angle angle ); - /************************************************************************* + /************************************************************************** * * @function: * FT_Tan @@ -168,14 +168,14 @@ FT_BEGIN_HEADER FT_Tan( FT_Angle angle ); - /************************************************************************* + /************************************************************************** * * @function: * FT_Atan2 * * @description: - * Return the arc-tangent corresponding to a given vector (x,y) in - * the 2d plane. + * Return the arc-tangent corresponding to a given vector (x,y) in the 2d + * plane. * * @input: * x :: @@ -193,7 +193,7 @@ FT_BEGIN_HEADER FT_Fixed y ); - /************************************************************************* + /************************************************************************** * * @function: * FT_Angle_Diff @@ -210,7 +210,7 @@ FT_BEGIN_HEADER * Second angle. * * @return: - * Constrained value of `value2-value1'. + * Constrained value of `angle2-angle1`. * */ FT_EXPORT( FT_Angle ) @@ -218,15 +218,15 @@ FT_BEGIN_HEADER FT_Angle angle2 ); - /************************************************************************* + /************************************************************************** * * @function: * FT_Vector_Unit * * @description: * Return the unit vector corresponding to a given angle. After the - * call, the value of `vec.x' will be `sin(angle)', and the value of - * `vec.y' will be `cos(angle)'. + * call, the value of `vec.x` will be `cos(angle)`, and the value of + * `vec.y` will be `sin(angle)`. * * This function is useful to retrieve both the sinus and cosinus of a * given angle quickly. @@ -245,7 +245,7 @@ FT_BEGIN_HEADER FT_Angle angle ); - /************************************************************************* + /************************************************************************** * * @function: * FT_Vector_Rotate @@ -267,7 +267,7 @@ FT_BEGIN_HEADER FT_Angle angle ); - /************************************************************************* + /************************************************************************** * * @function: * FT_Vector_Length @@ -288,7 +288,7 @@ FT_BEGIN_HEADER FT_Vector_Length( FT_Vector* vec ); - /************************************************************************* + /************************************************************************** * * @function: * FT_Vector_Polarize @@ -314,7 +314,7 @@ FT_BEGIN_HEADER FT_Angle *angle ); - /************************************************************************* + /************************************************************************** * * @function: * FT_Vector_From_Polar @@ -344,7 +344,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTTRIGON_H__ */ +#endif /* FTTRIGON_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftttdrv.h b/android/x86_64/include/freetype/ftttdrv.h deleted file mode 100644 index 35884139..00000000 --- a/android/x86_64/include/freetype/ftttdrv.h +++ /dev/null @@ -1,170 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftttdrv.h */ -/* */ -/* FreeType API for controlling the TrueType driver */ -/* (specification only). */ -/* */ -/* Copyright 2013 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 __FTTTDRV_H__ -#define __FTTTDRV_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: - * tt_driver - * - * @title: - * The TrueType driver - * - * @abstract: - * Controlling the TrueType driver module. - * - * @description: - * While FreeType's TrueType driver doesn't expose API functions by - * itself, it is possible to control its behaviour with @FT_Property_Set - * and @FT_Property_Get. The following lists the available properties - * together with the necessary macros and structures. - * - * The TrueType driver's module name is `truetype'. - * - */ - - - /************************************************************************** - * - * @property: - * interpreter-version - * - * @description: - * Currently, two versions are available, representing the bytecode - * interpreter with and without subpixel hinting support, - * respectively. The default is subpixel support if - * TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel - * support otherwise (since it isn't available then). - * - * If subpixel hinting is on, many TrueType bytecode instructions - * behave differently compared to B/W or grayscale rendering. The - * main idea is to render at a much increased horizontal resolution, - * then sampling down the created output to subpixel precision. - * However, many older fonts are not suited to this and must be - * specially taken care of by applying (hardcoded) font-specific - * tweaks. - * - * Details on subpixel hinting and some of the necessary tweaks can be - * found in Greg Hitchcock's whitepaper at - * `http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'. - * - * The following example code demonstrates how to activate subpixel - * hinting (omitting the error handling). - * - * { - * FT_Library library; - * FT_Face face; - * FT_UInt interpreter_version = TT_INTERPRETER_VERSION_38; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "truetype", - * "interpreter-version", - * &interpreter_version ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - - /************************************************************************** - * - * @enum: - * TT_INTERPRETER_VERSION_XXX - * - * @description: - * A list of constants used for the @interpreter-version property to - * select the hinting engine for Truetype fonts. - * - * The numeric value in the constant names represents the version - * number as returned by the `GETINFO' bytecode instruction. - * - * @values: - * TT_INTERPRETER_VERSION_35 :: - * Version~35 corresponds to MS rasterizer v.1.7 as used e.g. in - * Windows~98; only grayscale and B/W rasterizing is supported. - * - * TT_INTERPRETER_VERSION_38 :: - * Version~38 corresponds to MS rasterizer v.1.9; it is roughly - * equivalent to the hinting provided by DirectWrite ClearType (as - * can be found, for example, in the Internet Explorer~9 running on - * Windows~7). - * - * @note: - * This property controls the behaviour of the bytecode interpreter - * and thus how outlines get hinted. It does *not* control how glyph - * get rasterized! In particular, it does not control subpixel color - * filtering. - * - * If FreeType has not been compiled with configuration option - * FT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version~38 causes an - * `FT_Err_Unimplemented_Feature' error. - * - * Depending on the graphics framework, Microsoft uses different - * bytecode engines. As a consequence, the version numbers returned by - * a call to the `GETINFO[1]' bytecode instruction are more convoluted - * than desired. - * - * { - * framework Windows version result of GETINFO[1] - * ---------------------------------------------------- - * GDI before XP 35 - * GDI XP and later 37 - * GDI+ old before Vista 37 - * GDI+ old Vista, 7 38 - * GDI+ after 7 40 - * DWrite before 8 39 - * DWrite 8 and later 40 - * } - * - * Since FreeType doesn't provide all capabilities of DWrite ClearType, - * using version~38 seems justified. - * - */ -#define TT_INTERPRETER_VERSION_35 35 -#define TT_INTERPRETER_VERSION_38 38 - - /* */ - - -FT_END_HEADER - - -#endif /* __FTTTDRV_H__ */ - - -/* END */ diff --git a/android/x86_64/include/freetype/fttypes.h b/android/x86_64/include/freetype/fttypes.h index 2c01e873..2a1bdd06 100644 --- a/android/x86_64/include/freetype/fttypes.h +++ b/android/x86_64/include/freetype/fttypes.h @@ -1,26 +1,26 @@ -/***************************************************************************/ -/* */ -/* fttypes.h */ -/* */ -/* FreeType simple types definitions (specification only). */ -/* */ -/* Copyright 1996-2002, 2004, 2006-2009, 2012-2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * fttypes.h + * + * FreeType simple types definitions (specification only). + * + * Copyright (C) 1996-2019 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 __FTTYPES_H__ -#define __FTTYPES_H__ +#ifndef FTTYPES_H_ +#define FTTYPES_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_CONFIG_CONFIG_H #include FT_SYSTEM_H #include FT_IMAGE_H @@ -31,326 +31,327 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /* <Title> */ - /* Basic Data Types */ - /* */ - /* <Abstract> */ - /* The basic data types defined by the library. */ - /* */ - /* <Description> */ - /* This section contains the basic data types defined by FreeType~2, */ - /* ranging from simple scalar types to bitmap descriptors. More */ - /* font-specific structures are defined in a different section. */ - /* */ - /* <Order> */ - /* FT_Byte */ - /* FT_Bytes */ - /* FT_Char */ - /* FT_Int */ - /* FT_UInt */ - /* FT_Int16 */ - /* FT_UInt16 */ - /* FT_Int32 */ - /* FT_UInt32 */ - /* FT_Int64 */ - /* FT_UInt64 */ - /* FT_Short */ - /* FT_UShort */ - /* FT_Long */ - /* FT_ULong */ - /* FT_Bool */ - /* FT_Offset */ - /* FT_PtrDist */ - /* FT_String */ - /* FT_Tag */ - /* FT_Error */ - /* FT_Fixed */ - /* FT_Pointer */ - /* FT_Pos */ - /* FT_Vector */ - /* FT_BBox */ - /* FT_Matrix */ - /* FT_FWord */ - /* FT_UFWord */ - /* FT_F2Dot14 */ - /* FT_UnitVector */ - /* FT_F26Dot6 */ - /* FT_Data */ - /* */ - /* FT_MAKE_TAG */ - /* */ - /* FT_Generic */ - /* FT_Generic_Finalizer */ - /* */ - /* FT_Bitmap */ - /* FT_Pixel_Mode */ - /* FT_Palette_Mode */ - /* FT_Glyph_Format */ - /* FT_IMAGE_TAG */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * basic_types + * + * @title: + * Basic Data Types + * + * @abstract: + * The basic data types defined by the library. + * + * @description: + * This section contains the basic data types defined by FreeType~2, + * ranging from simple scalar types to bitmap descriptors. More + * font-specific structures are defined in a different section. + * + * @order: + * FT_Byte + * FT_Bytes + * FT_Char + * FT_Int + * FT_UInt + * FT_Int16 + * FT_UInt16 + * FT_Int32 + * FT_UInt32 + * FT_Int64 + * FT_UInt64 + * FT_Short + * FT_UShort + * FT_Long + * FT_ULong + * FT_Bool + * FT_Offset + * FT_PtrDist + * FT_String + * FT_Tag + * FT_Error + * FT_Fixed + * FT_Pointer + * FT_Pos + * FT_Vector + * FT_BBox + * FT_Matrix + * FT_FWord + * FT_UFWord + * FT_F2Dot14 + * FT_UnitVector + * FT_F26Dot6 + * FT_Data + * + * FT_MAKE_TAG + * + * FT_Generic + * FT_Generic_Finalizer + * + * FT_Bitmap + * FT_Pixel_Mode + * FT_Palette_Mode + * FT_Glyph_Format + * FT_IMAGE_TAG + * + */ - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Bool */ - /* */ - /* <Description> */ - /* A typedef of unsigned char, used for simple booleans. As usual, */ - /* values 1 and~0 represent true and false, respectively. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Bool + * + * @description: + * A typedef of unsigned char, used for simple booleans. As usual, + * values 1 and~0 represent true and false, respectively. + */ typedef unsigned char FT_Bool; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_FWord */ - /* */ - /* <Description> */ - /* A signed 16-bit integer used to store a distance in original font */ - /* units. */ - /* */ + /************************************************************************** + * + * @type: + * FT_FWord + * + * @description: + * A signed 16-bit integer used to store a distance in original font + * units. + */ typedef signed short FT_FWord; /* distance in FUnits */ - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UFWord */ - /* */ - /* <Description> */ - /* An unsigned 16-bit integer used to store a distance in original */ - /* font units. */ - /* */ + /************************************************************************** + * + * @type: + * FT_UFWord + * + * @description: + * An unsigned 16-bit integer used to store a distance in original font + * units. + */ typedef unsigned short FT_UFWord; /* unsigned distance */ - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Char */ - /* */ - /* <Description> */ - /* A simple typedef for the _signed_ char type. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Char + * + * @description: + * A simple typedef for the _signed_ char type. + */ typedef signed char FT_Char; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Byte */ - /* */ - /* <Description> */ - /* A simple typedef for the _unsigned_ char type. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Byte + * + * @description: + * A simple typedef for the _unsigned_ char type. + */ typedef unsigned char FT_Byte; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Bytes */ - /* */ - /* <Description> */ - /* A typedef for constant memory areas. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Bytes + * + * @description: + * A typedef for constant memory areas. + */ typedef const FT_Byte* FT_Bytes; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Tag */ - /* */ - /* <Description> */ - /* A typedef for 32-bit tags (as used in the SFNT format). */ - /* */ + /************************************************************************** + * + * @type: + * FT_Tag + * + * @description: + * A typedef for 32-bit tags (as used in the SFNT format). + */ typedef FT_UInt32 FT_Tag; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_String */ - /* */ - /* <Description> */ - /* A simple typedef for the char type, usually used for strings. */ - /* */ + /************************************************************************** + * + * @type: + * FT_String + * + * @description: + * A simple typedef for the char type, usually used for strings. + */ typedef char FT_String; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Short */ - /* */ - /* <Description> */ - /* A typedef for signed short. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Short + * + * @description: + * A typedef for signed short. + */ typedef signed short FT_Short; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UShort */ - /* */ - /* <Description> */ - /* A typedef for unsigned short. */ - /* */ + /************************************************************************** + * + * @type: + * FT_UShort + * + * @description: + * A typedef for unsigned short. + */ typedef unsigned short FT_UShort; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Int */ - /* */ - /* <Description> */ - /* A typedef for the int type. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Int + * + * @description: + * A typedef for the int type. + */ typedef signed int FT_Int; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UInt */ - /* */ - /* <Description> */ - /* A typedef for the unsigned int type. */ - /* */ + /************************************************************************** + * + * @type: + * FT_UInt + * + * @description: + * A typedef for the unsigned int type. + */ typedef unsigned int FT_UInt; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Long */ - /* */ - /* <Description> */ - /* A typedef for signed long. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Long + * + * @description: + * A typedef for signed long. + */ typedef signed long FT_Long; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_ULong */ - /* */ - /* <Description> */ - /* A typedef for unsigned long. */ - /* */ + /************************************************************************** + * + * @type: + * FT_ULong + * + * @description: + * A typedef for unsigned long. + */ typedef unsigned long FT_ULong; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_F2Dot14 */ - /* */ - /* <Description> */ - /* A signed 2.14 fixed-point type used for unit vectors. */ - /* */ + /************************************************************************** + * + * @type: + * FT_F2Dot14 + * + * @description: + * A signed 2.14 fixed-point type used for unit vectors. + */ typedef signed short FT_F2Dot14; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_F26Dot6 */ - /* */ - /* <Description> */ - /* A signed 26.6 fixed-point type used for vectorial pixel */ - /* coordinates. */ - /* */ + /************************************************************************** + * + * @type: + * FT_F26Dot6 + * + * @description: + * A signed 26.6 fixed-point type used for vectorial pixel coordinates. + */ typedef signed long FT_F26Dot6; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Fixed */ - /* */ - /* <Description> */ - /* This type is used to store 16.16 fixed-point values, like scaling */ - /* values or matrix coefficients. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Fixed + * + * @description: + * This type is used to store 16.16 fixed-point values, like scaling + * values or matrix coefficients. + */ typedef signed long FT_Fixed; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Error */ - /* */ - /* <Description> */ - /* The FreeType error code type. A value of~0 is always interpreted */ - /* as a successful operation. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Error + * + * @description: + * The FreeType error code type. A value of~0 is always interpreted as a + * successful operation. + */ typedef int FT_Error; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Pointer */ - /* */ - /* <Description> */ - /* A simple typedef for a typeless pointer. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Pointer + * + * @description: + * A simple typedef for a typeless pointer. + */ typedef void* FT_Pointer; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Offset */ - /* */ - /* <Description> */ - /* This is equivalent to the ANSI~C `size_t' type, i.e., the largest */ - /* _unsigned_ integer type used to express a file size or position, */ - /* or a memory block size. */ - /* */ + /************************************************************************** + * + * @type: + * FT_Offset + * + * @description: + * This is equivalent to the ANSI~C `size_t` type, i.e., the largest + * _unsigned_ integer type used to express a file size or position, or a + * memory block size. + */ typedef size_t FT_Offset; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_PtrDist */ - /* */ - /* <Description> */ - /* This is equivalent to the ANSI~C `ptrdiff_t' type, i.e., the */ - /* largest _signed_ integer type used to express the distance */ - /* between two pointers. */ - /* */ + /************************************************************************** + * + * @type: + * FT_PtrDist + * + * @description: + * This is equivalent to the ANSI~C `ptrdiff_t` type, i.e., the largest + * _signed_ integer type used to express the distance between two + * pointers. + */ typedef ft_ptrdiff_t FT_PtrDist; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_UnitVector */ - /* */ - /* <Description> */ - /* A simple structure used to store a 2D vector unit vector. Uses */ - /* FT_F2Dot14 types. */ - /* */ - /* <Fields> */ - /* x :: Horizontal coordinate. */ - /* */ - /* y :: Vertical coordinate. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_UnitVector + * + * @description: + * A simple structure used to store a 2D vector unit vector. Uses + * FT_F2Dot14 types. + * + * @fields: + * x :: + * Horizontal coordinate. + * + * y :: + * Vertical coordinate. + */ typedef struct FT_UnitVector_ { FT_F2Dot14 x; @@ -359,29 +360,33 @@ FT_BEGIN_HEADER } FT_UnitVector; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Matrix */ - /* */ - /* <Description> */ - /* A simple structure used to store a 2x2 matrix. Coefficients are */ - /* in 16.16 fixed-point format. The computation performed is: */ - /* */ - /* { */ - /* x' = x*xx + y*xy */ - /* y' = x*yx + y*yy */ - /* } */ - /* */ - /* <Fields> */ - /* xx :: Matrix coefficient. */ - /* */ - /* xy :: Matrix coefficient. */ - /* */ - /* yx :: Matrix coefficient. */ - /* */ - /* yy :: Matrix coefficient. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Matrix + * + * @description: + * A simple structure used to store a 2x2 matrix. Coefficients are in + * 16.16 fixed-point format. The computation performed is: + * + * ``` + * x' = x*xx + y*xy + * y' = x*yx + y*yy + * ``` + * + * @fields: + * xx :: + * Matrix coefficient. + * + * xy :: + * Matrix coefficient. + * + * yx :: + * Matrix coefficient. + * + * yy :: + * Matrix coefficient. + */ typedef struct FT_Matrix_ { FT_Fixed xx, xy; @@ -390,19 +395,21 @@ FT_BEGIN_HEADER } FT_Matrix; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Data */ - /* */ - /* <Description> */ - /* Read-only binary data represented as a pointer and a length. */ - /* */ - /* <Fields> */ - /* pointer :: The data. */ - /* */ - /* length :: The length of the data in bytes. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Data + * + * @description: + * Read-only binary data represented as a pointer and a length. + * + * @fields: + * pointer :: + * The data. + * + * length :: + * The length of the data in bytes. + */ typedef struct FT_Data_ { const FT_Byte* pointer; @@ -411,51 +418,52 @@ FT_BEGIN_HEADER } FT_Data; - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Generic_Finalizer */ - /* */ - /* <Description> */ - /* Describe a function used to destroy the `client' data of any */ - /* FreeType object. See the description of the @FT_Generic type for */ - /* details of usage. */ - /* */ - /* <Input> */ - /* 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); + /************************************************************************** + * + * @functype: + * FT_Generic_Finalizer + * + * @description: + * Describe a function used to destroy the 'client' data of any FreeType + * object. See the description of the @FT_Generic type for details of + * usage. + * + * @input: + * 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 ); - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Generic */ - /* */ - /* <Description> */ - /* Client applications often need to associate their own data to a */ - /* variety of FreeType core objects. For example, a text layout API */ - /* might want to associate a glyph cache to a given size object. */ - /* */ - /* Some FreeType object contains a `generic' field, of type */ - /* FT_Generic, which usage is left to client applications and font */ - /* servers. */ - /* */ - /* It can be used to store a pointer to client-specific data, as well */ - /* as the address of a `finalizer' function, which will be called by */ - /* FreeType when the object is destroyed (for example, the previous */ - /* client example would put the address of the glyph cache destructor */ - /* in the `finalizer' field). */ - /* */ - /* <Fields> */ - /* data :: A typeless pointer to any client-specified data. This */ - /* field is completely ignored by the FreeType library. */ - /* */ - /* finalizer :: A pointer to a `generic finalizer' function, which */ - /* will be called when the object is destroyed. If this */ - /* field is set to NULL, no code will be called. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_Generic + * + * @description: + * Client applications often need to associate their own data to a + * variety of FreeType core objects. For example, a text layout API + * might want to associate a glyph cache to a given size object. + * + * Some FreeType object contains a `generic` field, of type `FT_Generic`, + * which usage is left to client applications and font servers. + * + * It can be used to store a pointer to client-specific data, as well as + * the address of a 'finalizer' function, which will be called by + * FreeType when the object is destroyed (for example, the previous + * client example would put the address of the glyph cache destructor in + * the `finalizer` field). + * + * @fields: + * data :: + * A typeless pointer to any client-specified data. This field is + * completely ignored by the FreeType library. + * + * finalizer :: + * A pointer to a 'generic finalizer' function, which will be called + * when the object is destroyed. If this field is set to `NULL`, no + * code will be called. + */ typedef struct FT_Generic_ { void* data; @@ -464,19 +472,19 @@ FT_BEGIN_HEADER } FT_Generic; - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_MAKE_TAG */ - /* */ - /* <Description> */ - /* This macro converts four-letter tags that are used to label */ - /* TrueType tables into an unsigned long, to be used within FreeType. */ - /* */ - /* <Note> */ - /* The produced values *must* be 32-bit integers. Don't redefine */ - /* this macro. */ - /* */ + /************************************************************************** + * + * @macro: + * FT_MAKE_TAG + * + * @description: + * This macro converts four-letter tags that are used to label TrueType + * tables into an unsigned long, to be used within FreeType. + * + * @note: + * The produced values **must** be 32-bit integers. Don't redefine this + * macro. + */ #define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \ (FT_Tag) \ ( ( (FT_ULong)_x1 << 24 ) | \ @@ -494,53 +502,56 @@ FT_BEGIN_HEADER /*************************************************************************/ - /*************************************************************************/ - /* */ - /* <Section> */ - /* list_processing */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * list_processing + * + */ - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_ListNode */ - /* */ - /* <Description> */ - /* Many elements and objects in FreeType are listed through an */ - /* @FT_List record (see @FT_ListRec). As its name suggests, an */ - /* FT_ListNode is a handle to a single list element. */ - /* */ + /************************************************************************** + * + * @type: + * FT_ListNode + * + * @description: + * Many elements and objects in FreeType are listed through an @FT_List + * record (see @FT_ListRec). As its name suggests, an FT_ListNode is a + * handle to a single list element. + */ typedef struct FT_ListNodeRec_* FT_ListNode; - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_List */ - /* */ - /* <Description> */ - /* A handle to a list record (see @FT_ListRec). */ - /* */ + /************************************************************************** + * + * @type: + * FT_List + * + * @description: + * A handle to a list record (see @FT_ListRec). + */ typedef struct FT_ListRec_* FT_List; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_ListNodeRec */ - /* */ - /* <Description> */ - /* A structure used to hold a single list element. */ - /* */ - /* <Fields> */ - /* prev :: The previous element in the list. NULL if first. */ - /* */ - /* next :: The next element in the list. NULL if last. */ - /* */ - /* data :: A typeless pointer to the listed object. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_ListNodeRec + * + * @description: + * A structure used to hold a single list element. + * + * @fields: + * prev :: + * The previous element in the list. `NULL` if first. + * + * next :: + * The next element in the list. `NULL` if last. + * + * data :: + * A typeless pointer to the listed object. + */ typedef struct FT_ListNodeRec_ { FT_ListNode prev; @@ -550,20 +561,22 @@ FT_BEGIN_HEADER } FT_ListNodeRec; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_ListRec */ - /* */ - /* <Description> */ - /* A structure used to hold a simple doubly-linked list. These are */ - /* used in many parts of FreeType. */ - /* */ - /* <Fields> */ - /* head :: The head (first element) of doubly-linked list. */ - /* */ - /* tail :: The tail (last element) of doubly-linked list. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_ListRec + * + * @description: + * A structure used to hold a simple doubly-linked list. These are used + * in many parts of FreeType. + * + * @fields: + * head :: + * The head (first element) of doubly-linked list. + * + * tail :: + * The tail (last element) of doubly-linked list. + */ typedef struct FT_ListRec_ { FT_ListNode head; @@ -575,13 +588,13 @@ FT_BEGIN_HEADER #define FT_IS_EMPTY( list ) ( (list).head == 0 ) -#define FT_BOOL( x ) ( (FT_Bool)( x ) ) +#define FT_BOOL( x ) ( (FT_Bool)( (x) != 0 ) ) /* concatenate C tokens */ #define FT_ERR_XCAT( x, y ) x ## y #define FT_ERR_CAT( x, y ) FT_ERR_XCAT( x, y ) - /* see `ftmoderr.h' for descriptions of the following macros */ + /* see `ftmoderr.h` for descriptions of the following macros */ #define FT_ERR( e ) FT_ERR_CAT( FT_ERR_PREFIX, e ) @@ -596,7 +609,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTTYPES_H__ */ +#endif /* FTTYPES_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftwinfnt.h b/android/x86_64/include/freetype/ftwinfnt.h index 50261581..7ef0a972 100644 --- a/android/x86_64/include/freetype/ftwinfnt.h +++ b/android/x86_64/include/freetype/ftwinfnt.h @@ -1,25 +1,25 @@ -/***************************************************************************/ -/* */ -/* ftwinfnt.h */ -/* */ -/* FreeType API for accessing Windows fnt-specific data. */ -/* */ -/* Copyright 2003, 2004, 2008 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ftwinfnt.h + * + * FreeType API for accessing Windows fnt-specific data. + * + * Copyright (C) 2003-2019 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 __FTWINFNT_H__ -#define __FTWINFNT_H__ +#ifndef FTWINFNT_H_ +#define FTWINFNT_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -32,44 +32,43 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* winfnt_fonts */ - /* */ - /* <Title> */ - /* Window FNT Files */ - /* */ - /* <Abstract> */ - /* Windows FNT specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of Windows FNT specific */ - /* functions. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * winfnt_fonts + * + * @title: + * Window FNT Files + * + * @abstract: + * Windows FNT-specific API. + * + * @description: + * This section contains the declaration of Windows FNT-specific + * functions. + * + */ - /************************************************************************* + /************************************************************************** * * @enum: * FT_WinFNT_ID_XXX * * @description: - * A list of valid values for the `charset' byte in - * @FT_WinFNT_HeaderRec. Exact mapping tables for the various cpXXXX - * encodings (except for cp1361) can be found at - * ftp://ftp.unicode.org/public in the MAPPINGS/VENDORS/MICSFT/WINDOWS - * subdirectory. cp1361 is roughly a superset of - * MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT. + * A list of valid values for the `charset` byte in @FT_WinFNT_HeaderRec. + * Exact mapping tables for the various 'cpXXXX' encodings (except for + * 'cp1361') can be found at 'ftp://ftp.unicode.org/Public' in the + * `MAPPINGS/VENDORS/MICSFT/WINDOWS` subdirectory. 'cp1361' is roughly a + * superset of `MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT`. * * @values: * FT_WinFNT_ID_DEFAULT :: - * This is used for font enumeration and font creation as a - * `don't care' value. Valid font files don't contain this value. - * When querying for information about the character set of the font - * that is currently selected into a specified device context, this - * return value (of the related Windows API) simply denotes failure. + * This is used for font enumeration and font creation as a 'don't + * care' value. Valid font files don't contain this value. When + * querying for information about the character set of the font that is + * currently selected into a specified device context, this return + * value (of the related Windows API) simply denotes failure. * * FT_WinFNT_ID_SYMBOL :: * There is no known mapping table available. @@ -78,28 +77,29 @@ 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', - * `roman.fon', and `script.fon' on Windows. + * The 'Windows Font Mapping' article says that `FT_WinFNT_ID_OEM` is + * used for the charset of vector fonts, like `modern.fon`, + * `roman.fon`, and `script.fon` on Windows. * - * The `CreateFont' documentation says: The FT_WinFNT_ID_OEM value - * specifies a character set that is operating-system dependent. + * The 'CreateFont' documentation says: The `FT_WinFNT_ID_OEM` value + * specifies a character set that is operating-system dependent. * - * The `IFIMETRICS' documentation from the `Windows Driver - * Development Kit' says: This font supports an OEM-specific - * character set. The OEM character set is system dependent. + * The 'IFIMETRICS' documentation from the 'Windows Driver Development + * Kit' says: This font supports an OEM-specific character set. The + * OEM character set is system dependent. * - * In general OEM, as opposed to ANSI (i.e., cp1252), denotes the - * second default codepage that most international versions of - * Windows have. It is one of the OEM codepages from + * In general OEM, as opposed to ANSI (i.e., 'cp1252'), denotes the + * second default codepage that most international versions of Windows + * have. It is one of the OEM codepages from * - * http://www.microsoft.com/globaldev/reference/cphome.mspx, + * https://docs.microsoft.com/en-us/windows/desktop/intl/code-page-identifiers + * , * - * and is used for the `DOS boxes', to support legacy applications. - * A German Windows version for example usually uses ANSI codepage - * 1252 and OEM codepage 850. + * and is used for the 'DOS boxes', to support legacy applications. A + * German Windows version for example usually uses ANSI codepage 1252 + * and OEM codepage 850. * * FT_WinFNT_ID_CP874 :: * A superset of Thai TIS 620 and ISO 8859-11. @@ -112,8 +112,8 @@ FT_BEGIN_HEADER * ordering and minor deviations). * * FT_WinFNT_ID_CP949 :: - * A superset of Korean Hangul KS~C 5601-1987 (with different - * ordering and minor deviations). + * A superset of Korean Hangul KS~C 5601-1987 (with different ordering + * and minor deviations). * * FT_WinFNT_ID_CP950 :: * A superset of traditional Chinese Big~5 ETen (with different @@ -173,14 +173,14 @@ FT_BEGIN_HEADER #define FT_WinFNT_ID_OEM 255 - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_WinFNT_HeaderRec */ - /* */ - /* <Description> */ - /* Windows FNT Header info. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_WinFNT_HeaderRec + * + * @description: + * Windows FNT Header info. + */ typedef struct FT_WinFNT_HeaderRec_ { FT_UShort version; @@ -223,18 +223,18 @@ FT_BEGIN_HEADER } FT_WinFNT_HeaderRec; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_WinFNT_Header */ - /* */ - /* <Description> */ - /* A handle to an @FT_WinFNT_HeaderRec structure. */ - /* */ + /************************************************************************** + * + * @struct: + * FT_WinFNT_Header + * + * @description: + * A handle to an @FT_WinFNT_HeaderRec structure. + */ typedef struct FT_WinFNT_HeaderRec_* FT_WinFNT_Header; - /********************************************************************** + /************************************************************************** * * @function: * FT_Get_WinFNT_Header @@ -243,10 +243,12 @@ FT_BEGIN_HEADER * Retrieve a Windows FNT font info header. * * @input: - * face :: A handle to the input face. + * face :: + * A handle to the input face. * * @output: - * aheader :: The WinFNT header. + * aheader :: + * The WinFNT header. * * @return: * FreeType error code. 0~means success. @@ -264,7 +266,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTWINFNT_H__ */ +#endif /* FTWINFNT_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ftxf86.h b/android/x86_64/include/freetype/ftxf86.h deleted file mode 100644 index 89d1993e..00000000 --- a/android/x86_64/include/freetype/ftxf86.h +++ /dev/null @@ -1,84 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftxf86.h */ -/* */ -/* Support functions for X11. */ -/* */ -/* Copyright 2002-2004, 2006, 2007, 2013 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 __FTXF86_H__ -#define __FTXF86_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> */ - /* font_formats */ - /* */ - /* <Title> */ - /* Font Formats */ - /* */ - /* <Abstract> */ - /* Getting the font format. */ - /* */ - /* <Description> */ - /* The single function in this section can be used to get the font */ - /* format. Note that this information is not needed normally; */ - /* however, there are special cases (like in PDF devices) where it is */ - /* important to differentiate, in spite of FreeType's uniform API. */ - /* */ - /* This function is in the X11/xf86 namespace for historical reasons */ - /* and in no way depends on that windowing system. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_X11_Font_Format */ - /* */ - /* <Description> */ - /* Return a string describing the format of a given face, using values */ - /* that can be used as an X11 FONT_PROPERTY. Possible values are */ - /* `TrueType', `Type~1', `BDF', `PCF', `Type~42', `CID~Type~1', `CFF', */ - /* `PFR', and `Windows~FNT'. */ - /* */ - /* <Input> */ - /* face :: */ - /* Input face handle. */ - /* */ - /* <Return> */ - /* Font format string. NULL in case of error. */ - /* */ - FT_EXPORT( const char* ) - FT_Get_X11_Font_Format( FT_Face face ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTXF86_H__ */ diff --git a/android/x86_64/include/freetype/t1tables.h b/android/x86_64/include/freetype/t1tables.h index 61aefdd5..926bd5a7 100644 --- a/android/x86_64/include/freetype/t1tables.h +++ b/android/x86_64/include/freetype/t1tables.h @@ -1,27 +1,27 @@ -/***************************************************************************/ -/* */ -/* t1tables.h */ -/* */ -/* Basic Type 1/Type 2 tables definitions and interface (specification */ -/* only). */ -/* */ -/* Copyright 1996-2004, 2006, 2008, 2009, 2011, 2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * t1tables.h + * + * Basic Type 1/Type 2 tables definitions and interface (specification + * only). + * + * Copyright (C) 1996-2019 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 __T1TABLES_H__ -#define __T1TABLES_H__ +#ifndef T1TABLES_H_ +#define T1TABLES_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -34,58 +34,58 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* type1_tables */ - /* */ - /* <Title> */ - /* Type 1 Tables */ - /* */ - /* <Abstract> */ - /* Type~1 (PostScript) specific font tables. */ - /* */ - /* <Description> */ - /* This section contains the definition of Type 1-specific tables, */ - /* including structures related to other PostScript font formats. */ - /* */ - /* <Order> */ - /* PS_FontInfoRec */ - /* PS_FontInfo */ - /* PS_PrivateRec */ - /* PS_Private */ - /* */ - /* CID_FaceDictRec */ - /* CID_FaceDict */ - /* CID_FaceInfoRec */ - /* CID_FaceInfo */ - /* */ - /* FT_Has_PS_Glyph_Names */ - /* FT_Get_PS_Font_Info */ - /* FT_Get_PS_Font_Private */ - /* FT_Get_PS_Font_Value */ - /* */ - /* T1_Blend_Flags */ - /* T1_EncodingType */ - /* PS_Dict_Keys */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * type1_tables + * + * @title: + * Type 1 Tables + * + * @abstract: + * Type~1-specific font tables. + * + * @description: + * This section contains the definition of Type~1-specific tables, + * including structures related to other PostScript font formats. + * + * @order: + * PS_FontInfoRec + * PS_FontInfo + * PS_PrivateRec + * PS_Private + * + * CID_FaceDictRec + * CID_FaceDict + * CID_FaceInfoRec + * CID_FaceInfo + * + * FT_Has_PS_Glyph_Names + * FT_Get_PS_Font_Info + * FT_Get_PS_Font_Private + * FT_Get_PS_Font_Value + * + * T1_Blend_Flags + * T1_EncodingType + * PS_Dict_Keys + * + */ /* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */ /* structures in order to support Multiple Master fonts. */ - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_FontInfoRec */ - /* */ - /* <Description> */ - /* A structure used to model a Type~1 or Type~2 FontInfo dictionary. */ - /* Note that for Multiple Master fonts, each instance has its own */ - /* FontInfo dictionary. */ - /* */ + /************************************************************************** + * + * @struct: + * PS_FontInfoRec + * + * @description: + * A structure used to model a Type~1 or Type~2 FontInfo dictionary. + * Note that for Multiple Master fonts, each instance has its own + * FontInfo dictionary. + */ typedef struct PS_FontInfoRec_ { FT_String* version; @@ -101,40 +101,39 @@ FT_BEGIN_HEADER } PS_FontInfoRec; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_FontInfo */ - /* */ - /* <Description> */ - /* A handle to a @PS_FontInfoRec structure. */ - /* */ + /************************************************************************** + * + * @struct: + * PS_FontInfo + * + * @description: + * A handle to a @PS_FontInfoRec structure. + */ typedef struct PS_FontInfoRec_* PS_FontInfo; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* T1_FontInfo */ - /* */ - /* <Description> */ - /* This type is equivalent to @PS_FontInfoRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ + /************************************************************************** + * + * @struct: + * T1_FontInfo + * + * @description: + * This type is equivalent to @PS_FontInfoRec. It is deprecated but kept + * to maintain source compatibility between various versions of FreeType. + */ typedef PS_FontInfoRec T1_FontInfo; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_PrivateRec */ - /* */ - /* <Description> */ - /* A structure used to model a Type~1 or Type~2 private dictionary. */ - /* Note that for Multiple Master fonts, each instance has its own */ - /* Private dictionary. */ - /* */ + /************************************************************************** + * + * @struct: + * PS_PrivateRec + * + * @description: + * A structure used to model a Type~1 or Type~2 private dictionary. Note + * that for Multiple Master fonts, each instance has its own Private + * dictionary. + */ typedef struct PS_PrivateRec_ { FT_Int unique_id; @@ -176,56 +175,55 @@ FT_BEGIN_HEADER } PS_PrivateRec; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_Private */ - /* */ - /* <Description> */ - /* A handle to a @PS_PrivateRec structure. */ - /* */ + /************************************************************************** + * + * @struct: + * PS_Private + * + * @description: + * A handle to a @PS_PrivateRec structure. + */ typedef struct PS_PrivateRec_* PS_Private; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* T1_Private */ - /* */ - /* <Description> */ - /* This type is equivalent to @PS_PrivateRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ + /************************************************************************** + * + * @struct: + * T1_Private + * + * @description: + * This type is equivalent to @PS_PrivateRec. It is deprecated but kept + * to maintain source compatibility between various versions of FreeType. + */ typedef PS_PrivateRec T1_Private; - /*************************************************************************/ - /* */ - /* <Enum> */ - /* T1_Blend_Flags */ - /* */ - /* <Description> */ - /* A set of flags used to indicate which fields are present in a */ - /* given blend dictionary (font info or private). Used to support */ - /* Multiple Masters fonts. */ - /* */ - /* <Values> */ - /* T1_BLEND_UNDERLINE_POSITION :: */ - /* T1_BLEND_UNDERLINE_THICKNESS :: */ - /* T1_BLEND_ITALIC_ANGLE :: */ - /* T1_BLEND_BLUE_VALUES :: */ - /* T1_BLEND_OTHER_BLUES :: */ - /* T1_BLEND_STANDARD_WIDTH :: */ - /* T1_BLEND_STANDARD_HEIGHT :: */ - /* T1_BLEND_STEM_SNAP_WIDTHS :: */ - /* T1_BLEND_STEM_SNAP_HEIGHTS :: */ - /* T1_BLEND_BLUE_SCALE :: */ - /* T1_BLEND_BLUE_SHIFT :: */ - /* T1_BLEND_FAMILY_BLUES :: */ - /* T1_BLEND_FAMILY_OTHER_BLUES :: */ - /* T1_BLEND_FORCE_BOLD :: */ - /* */ + /************************************************************************** + * + * @enum: + * T1_Blend_Flags + * + * @description: + * A set of flags used to indicate which fields are present in a given + * blend dictionary (font info or private). Used to support Multiple + * Masters fonts. + * + * @values: + * T1_BLEND_UNDERLINE_POSITION :: + * T1_BLEND_UNDERLINE_THICKNESS :: + * T1_BLEND_ITALIC_ANGLE :: + * T1_BLEND_BLUE_VALUES :: + * T1_BLEND_OTHER_BLUES :: + * T1_BLEND_STANDARD_WIDTH :: + * T1_BLEND_STANDARD_HEIGHT :: + * T1_BLEND_STEM_SNAP_WIDTHS :: + * T1_BLEND_STEM_SNAP_HEIGHTS :: + * T1_BLEND_BLUE_SCALE :: + * T1_BLEND_BLUE_SHIFT :: + * T1_BLEND_FAMILY_BLUES :: + * T1_BLEND_FAMILY_OTHER_BLUES :: + * T1_BLEND_FORCE_BOLD :: + */ typedef enum T1_Blend_Flags_ { /* required fields in a FontInfo blend dictionary */ @@ -252,7 +250,7 @@ FT_BEGIN_HEADER /* these constants are deprecated; use the corresponding */ - /* `T1_Blend_Flags' values instead */ + /* `T1_Blend_Flags` values instead */ #define t1_blend_underline_position T1_BLEND_UNDERLINE_POSITION #define t1_blend_underline_thickness T1_BLEND_UNDERLINE_THICKNESS #define t1_blend_italic_angle T1_BLEND_ITALIC_ANGLE @@ -291,7 +289,7 @@ FT_BEGIN_HEADER } PS_DesignMapRec, *PS_DesignMap; - /* backwards-compatible definition */ + /* backward compatible definition */ typedef PS_DesignMapRec T1_DesignMap; @@ -326,18 +324,27 @@ FT_BEGIN_HEADER } PS_BlendRec, *PS_Blend; - /* backwards-compatible definition */ + /* backward compatible definition */ typedef PS_BlendRec T1_Blend; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceDictRec */ - /* */ - /* <Description> */ - /* A structure used to represent data in a CID top-level dictionary. */ - /* */ + /************************************************************************** + * + * @struct: + * CID_FaceDictRec + * + * @description: + * A structure used to represent data in a CID top-level dictionary. In + * most cases, they are part of the font's '/FDArray' array. Within a + * CID font file, such (internal) subfont dictionaries are enclosed by + * '%ADOBeginFontDict' and '%ADOEndFontDict' comments. + * + * Note that `CID_FaceDictRec` misses a field for the '/FontName' + * keyword, specifying the subfont's name (the top-level font name is + * given by the '/CIDFontName' keyword). This is an oversight, but it + * doesn't limit the 'cid' font module's functionality because FreeType + * neither needs this entry nor gives access to CID subfonts. + */ typedef struct CID_FaceDictRec_ { PS_PrivateRec private_dict; @@ -345,8 +352,8 @@ FT_BEGIN_HEADER FT_UInt len_buildchar; FT_Fixed forcebold_threshold; FT_Pos stroke_width; - FT_Fixed expansion_factor; - + FT_Fixed expansion_factor; /* this is a duplicate of */ + /* `private_dict->expansion_factor' */ FT_Byte paint_type; FT_Byte font_type; FT_Matrix font_matrix; @@ -359,38 +366,38 @@ FT_BEGIN_HEADER } CID_FaceDictRec; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceDict */ - /* */ - /* <Description> */ - /* A handle to a @CID_FaceDictRec structure. */ - /* */ + /************************************************************************** + * + * @struct: + * CID_FaceDict + * + * @description: + * A handle to a @CID_FaceDictRec structure. + */ typedef struct CID_FaceDictRec_* CID_FaceDict; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FontDict */ - /* */ - /* <Description> */ - /* This type is equivalent to @CID_FaceDictRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ + /************************************************************************** + * + * @struct: + * CID_FontDict + * + * @description: + * This type is equivalent to @CID_FaceDictRec. It is deprecated but + * kept to maintain source compatibility between various versions of + * FreeType. + */ typedef CID_FaceDictRec CID_FontDict; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceInfoRec */ - /* */ - /* <Description> */ - /* A structure used to represent CID Face information. */ - /* */ + /************************************************************************** + * + * @struct: + * CID_FaceInfoRec + * + * @description: + * A structure used to represent CID Face information. + */ typedef struct CID_FaceInfoRec_ { FT_String* cid_font_name; @@ -421,47 +428,45 @@ FT_BEGIN_HEADER } CID_FaceInfoRec; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceInfo */ - /* */ - /* <Description> */ - /* A handle to a @CID_FaceInfoRec structure. */ - /* */ + /************************************************************************** + * + * @struct: + * CID_FaceInfo + * + * @description: + * A handle to a @CID_FaceInfoRec structure. + */ typedef struct CID_FaceInfoRec_* CID_FaceInfo; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_Info */ - /* */ - /* <Description> */ - /* This type is equivalent to @CID_FaceInfoRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ + /************************************************************************** + * + * @struct: + * CID_Info + * + * @description: + * This type is equivalent to @CID_FaceInfoRec. It is deprecated but kept + * to maintain source compatibility between various versions of FreeType. + */ typedef CID_FaceInfoRec CID_Info; - /************************************************************************ + /************************************************************************** * * @function: * FT_Has_PS_Glyph_Names * * @description: - * Return true if a given face provides reliable PostScript glyph - * names. This is similar to using the @FT_HAS_GLYPH_NAMES macro, - * except that certain fonts (mostly TrueType) contain incorrect - * glyph name tables. + * Return true if a given face provides reliable PostScript glyph names. + * This is similar to using the @FT_HAS_GLYPH_NAMES macro, except that + * certain fonts (mostly TrueType) contain incorrect glyph name tables. * * When this function returns true, the caller is sure that the glyph * names returned by @FT_Get_Glyph_Name are reliable. * * @input: * face :: - * face handle + * face handle * * @return: * Boolean. True if glyph names are reliable. @@ -471,7 +476,7 @@ FT_BEGIN_HEADER FT_Has_PS_Glyph_Names( FT_Face face ); - /************************************************************************ + /************************************************************************** * * @function: * FT_Get_PS_Font_Info @@ -482,21 +487,22 @@ FT_BEGIN_HEADER * * @input: * face :: - * PostScript face handle. + * PostScript face handle. * * @output: * afont_info :: - * Output font info structure pointer. + * Output font info structure pointer. * * @return: * FreeType error code. 0~means success. * * @note: - * The string pointers within the font info structure are owned by - * the face and don't need to be freed by the caller. + * String pointers within the @PS_FontInfoRec structure are owned by the + * face and don't need to be freed by the caller. Missing entries in + * the font's FontInfo dictionary are represented by `NULL` pointers. * * If the font's format is not PostScript-based, this function will - * return the `FT_Err_Invalid_Argument' error code. + * return the `FT_Err_Invalid_Argument` error code. * */ FT_EXPORT( FT_Error ) @@ -504,7 +510,7 @@ FT_BEGIN_HEADER PS_FontInfo afont_info ); - /************************************************************************ + /************************************************************************** * * @function: * FT_Get_PS_Font_Private @@ -515,11 +521,11 @@ FT_BEGIN_HEADER * * @input: * face :: - * PostScript face handle. + * PostScript face handle. * * @output: * afont_private :: - * Output private dictionary structure pointer. + * Output private dictionary structure pointer. * * @return: * FreeType error code. 0~means success. @@ -529,7 +535,7 @@ FT_BEGIN_HEADER * the face and don't need to be freed by the caller. * * If the font's format is not PostScript-based, this function returns - * the `FT_Err_Invalid_Argument' error code. + * the `FT_Err_Invalid_Argument` error code. * */ FT_EXPORT( FT_Error ) @@ -537,22 +543,24 @@ FT_BEGIN_HEADER PS_Private afont_private ); - /*************************************************************************/ - /* */ - /* <Enum> */ - /* T1_EncodingType */ - /* */ - /* <Description> */ - /* An enumeration describing the `Encoding' entry in a Type 1 */ - /* dictionary. */ - /* */ - /* <Values> */ - /* T1_ENCODING_TYPE_NONE :: */ - /* T1_ENCODING_TYPE_ARRAY :: */ - /* T1_ENCODING_TYPE_STANDARD :: */ - /* T1_ENCODING_TYPE_ISOLATIN1 :: */ - /* T1_ENCODING_TYPE_EXPERT :: */ - /* */ + /************************************************************************** + * + * @enum: + * T1_EncodingType + * + * @description: + * An enumeration describing the 'Encoding' entry in a Type 1 dictionary. + * + * @values: + * T1_ENCODING_TYPE_NONE :: + * T1_ENCODING_TYPE_ARRAY :: + * T1_ENCODING_TYPE_STANDARD :: + * T1_ENCODING_TYPE_ISOLATIN1 :: + * T1_ENCODING_TYPE_EXPERT :: + * + * @since: + * 2.4.8 + */ typedef enum T1_EncodingType_ { T1_ENCODING_TYPE_NONE = 0, @@ -564,63 +572,66 @@ FT_BEGIN_HEADER } T1_EncodingType; - /*************************************************************************/ - /* */ - /* <Enum> */ - /* PS_Dict_Keys */ - /* */ - /* <Description> */ - /* An enumeration used in calls to @FT_Get_PS_Font_Value to identify */ - /* the Type~1 dictionary entry to retrieve. */ - /* */ - /* <Values> */ - /* PS_DICT_FONT_TYPE :: */ - /* PS_DICT_FONT_MATRIX :: */ - /* PS_DICT_FONT_BBOX :: */ - /* PS_DICT_PAINT_TYPE :: */ - /* PS_DICT_FONT_NAME :: */ - /* PS_DICT_UNIQUE_ID :: */ - /* PS_DICT_NUM_CHAR_STRINGS :: */ - /* PS_DICT_CHAR_STRING_KEY :: */ - /* PS_DICT_CHAR_STRING :: */ - /* PS_DICT_ENCODING_TYPE :: */ - /* PS_DICT_ENCODING_ENTRY :: */ - /* PS_DICT_NUM_SUBRS :: */ - /* PS_DICT_SUBR :: */ - /* PS_DICT_STD_HW :: */ - /* PS_DICT_STD_VW :: */ - /* PS_DICT_NUM_BLUE_VALUES :: */ - /* PS_DICT_BLUE_VALUE :: */ - /* PS_DICT_BLUE_FUZZ :: */ - /* PS_DICT_NUM_OTHER_BLUES :: */ - /* PS_DICT_OTHER_BLUE :: */ - /* PS_DICT_NUM_FAMILY_BLUES :: */ - /* PS_DICT_FAMILY_BLUE :: */ - /* PS_DICT_NUM_FAMILY_OTHER_BLUES :: */ - /* PS_DICT_FAMILY_OTHER_BLUE :: */ - /* PS_DICT_BLUE_SCALE :: */ - /* PS_DICT_BLUE_SHIFT :: */ - /* PS_DICT_NUM_STEM_SNAP_H :: */ - /* PS_DICT_STEM_SNAP_H :: */ - /* PS_DICT_NUM_STEM_SNAP_V :: */ - /* PS_DICT_STEM_SNAP_V :: */ - /* PS_DICT_FORCE_BOLD :: */ - /* PS_DICT_RND_STEM_UP :: */ - /* PS_DICT_MIN_FEATURE :: */ - /* PS_DICT_LEN_IV :: */ - /* PS_DICT_PASSWORD :: */ - /* PS_DICT_LANGUAGE_GROUP :: */ - /* PS_DICT_VERSION :: */ - /* PS_DICT_NOTICE :: */ - /* PS_DICT_FULL_NAME :: */ - /* PS_DICT_FAMILY_NAME :: */ - /* PS_DICT_WEIGHT :: */ - /* PS_DICT_IS_FIXED_PITCH :: */ - /* PS_DICT_UNDERLINE_POSITION :: */ - /* PS_DICT_UNDERLINE_THICKNESS :: */ - /* PS_DICT_FS_TYPE :: */ - /* PS_DICT_ITALIC_ANGLE :: */ - /* */ + /************************************************************************** + * + * @enum: + * PS_Dict_Keys + * + * @description: + * An enumeration used in calls to @FT_Get_PS_Font_Value to identify the + * Type~1 dictionary entry to retrieve. + * + * @values: + * PS_DICT_FONT_TYPE :: + * PS_DICT_FONT_MATRIX :: + * PS_DICT_FONT_BBOX :: + * PS_DICT_PAINT_TYPE :: + * PS_DICT_FONT_NAME :: + * PS_DICT_UNIQUE_ID :: + * PS_DICT_NUM_CHAR_STRINGS :: + * PS_DICT_CHAR_STRING_KEY :: + * PS_DICT_CHAR_STRING :: + * PS_DICT_ENCODING_TYPE :: + * PS_DICT_ENCODING_ENTRY :: + * PS_DICT_NUM_SUBRS :: + * PS_DICT_SUBR :: + * PS_DICT_STD_HW :: + * PS_DICT_STD_VW :: + * PS_DICT_NUM_BLUE_VALUES :: + * PS_DICT_BLUE_VALUE :: + * PS_DICT_BLUE_FUZZ :: + * PS_DICT_NUM_OTHER_BLUES :: + * PS_DICT_OTHER_BLUE :: + * PS_DICT_NUM_FAMILY_BLUES :: + * PS_DICT_FAMILY_BLUE :: + * PS_DICT_NUM_FAMILY_OTHER_BLUES :: + * PS_DICT_FAMILY_OTHER_BLUE :: + * PS_DICT_BLUE_SCALE :: + * PS_DICT_BLUE_SHIFT :: + * PS_DICT_NUM_STEM_SNAP_H :: + * PS_DICT_STEM_SNAP_H :: + * PS_DICT_NUM_STEM_SNAP_V :: + * PS_DICT_STEM_SNAP_V :: + * PS_DICT_FORCE_BOLD :: + * PS_DICT_RND_STEM_UP :: + * PS_DICT_MIN_FEATURE :: + * PS_DICT_LEN_IV :: + * PS_DICT_PASSWORD :: + * PS_DICT_LANGUAGE_GROUP :: + * PS_DICT_VERSION :: + * PS_DICT_NOTICE :: + * PS_DICT_FULL_NAME :: + * PS_DICT_FAMILY_NAME :: + * PS_DICT_WEIGHT :: + * PS_DICT_IS_FIXED_PITCH :: + * PS_DICT_UNDERLINE_POSITION :: + * PS_DICT_UNDERLINE_THICKNESS :: + * PS_DICT_FS_TYPE :: + * PS_DICT_ITALIC_ANGLE :: + * + * @since: + * 2.4.8 + */ typedef enum PS_Dict_Keys_ { /* conventionally in the font dictionary */ @@ -680,7 +691,7 @@ FT_BEGIN_HEADER } PS_Dict_Keys; - /************************************************************************ + /************************************************************************** * * @function: * FT_Get_PS_Font_Value @@ -690,57 +701,60 @@ FT_BEGIN_HEADER * * @input: * face :: - * PostScript face handle. + * PostScript face handle. * * key :: - * An enumeration value representing the dictionary key to retrieve. + * An enumeration value representing the dictionary key to retrieve. * * idx :: - * For array values, this specifies the index to be returned. + * For array values, this specifies the index to be returned. * * value :: - * A pointer to memory into which to write the value. + * A pointer to memory into which to write the value. * * valen_len :: - * The size, in bytes, of the memory supplied for the value. + * The size, in bytes, of the memory supplied for the value. * * @output: * value :: - * The value matching the above key, if it exists. + * The value matching the above key, if it exists. * * @return: - * The amount of memory (in bytes) required to hold the requested - * value (if it exists, -1 otherwise). + * The amount of memory (in bytes) required to hold the requested value + * (if it exists, -1 otherwise). * * @note: * The values returned are not pointers into the internal structures of - * the face, but are `fresh' copies, so that the memory containing them + * the face, but are 'fresh' copies, so that the memory containing them * belongs to the calling application. This also enforces the - * `read-only' nature of these values, i.e., this function cannot be + * 'read-only' nature of these values, i.e., this function cannot be * used to manipulate the face. * - * `value' is a void pointer because the values returned can be of + * `value` is a void pointer because the values returned can be of * various types. * - * If either `value' is NULL or `value_len' is too small, just the + * If either `value` is `NULL` or `value_len` is too small, just the * required memory size for the requested entry is returned. * - * The `idx' parameter is used, not only to retrieve elements of, for + * The `idx` parameter is used, not only to retrieve elements of, for * example, the FontMatrix or FontBBox, but also to retrieve name keys * from the CharStrings dictionary, and the charstrings themselves. It * is ignored for atomic values. * - * PS_DICT_BLUE_SCALE returns a value that is scaled up by 1000. To - * get the value as in the font stream, you need to divide by - * 65536000.0 (to remove the FT_Fixed scale, and the x1000 scale). + * `PS_DICT_BLUE_SCALE` returns a value that is scaled up by 1000. To + * get the value as in the font stream, you need to divide by 65536000.0 + * (to remove the FT_Fixed scale, and the x1000 scale). * * IMPORTANT: Only key/value pairs read by the FreeType interpreter can - * be retrieved. So, for example, PostScript procedures such as NP, - * ND, and RD are not available. Arbitrary keys are, obviously, not be + * be retrieved. So, for example, PostScript procedures such as NP, ND, + * and RD are not available. Arbitrary keys are, obviously, not be * available either. * * If the font's format is not PostScript-based, this function returns - * the `FT_Err_Invalid_Argument' error code. + * the `FT_Err_Invalid_Argument` error code. + * + * @since: + * 2.4.8 * */ FT_EXPORT( FT_Long ) @@ -754,7 +768,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T1TABLES_H__ */ +#endif /* T1TABLES_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ttnameid.h b/android/x86_64/include/freetype/ttnameid.h index e65b5581..669dc4ad 100644 --- a/android/x86_64/include/freetype/ttnameid.h +++ b/android/x86_64/include/freetype/ttnameid.h @@ -1,78 +1,79 @@ -/***************************************************************************/ -/* */ -/* ttnameid.h */ -/* */ -/* TrueType name ID definitions (specification only). */ -/* */ -/* Copyright 1996-2004, 2006-2008, 2012-2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * ttnameid.h + * + * TrueType name ID definitions (specification only). + * + * Copyright (C) 1996-2019 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 __TTNAMEID_H__ -#define __TTNAMEID_H__ +#ifndef TTNAMEID_H_ +#define TTNAMEID_H_ -#include <ft2build.h> +#include "ft2build.h" FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* truetype_tables */ - /* */ + /************************************************************************** + * + * @section: + * truetype_tables + */ - /*************************************************************************/ - /* */ - /* Possible values for the `platform' identifier code in the name */ - /* records of the TTF `name' table. */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * Possible values for the 'platform' identifier code in the name records + * of an SFNT 'name' table. + * + */ - /*********************************************************************** + /************************************************************************** * * @enum: * TT_PLATFORM_XXX * * @description: - * A list of valid values for the `platform_id' identifier code in + * A list of valid values for the `platform_id` identifier code in * @FT_CharMapRec and @FT_SfntName structures. * * @values: * TT_PLATFORM_APPLE_UNICODE :: * Used by Apple to indicate a Unicode character map and/or name entry. - * See @TT_APPLE_ID_XXX for corresponding `encoding_id' values. Note + * See @TT_APPLE_ID_XXX for corresponding `encoding_id` values. Note * that name entries in this format are coded as big-endian UCS-2 * character codes _only_. * * TT_PLATFORM_MACINTOSH :: - * Used by Apple to indicate a MacOS-specific charmap and/or name entry. - * See @TT_MAC_ID_XXX for corresponding `encoding_id' values. Note that - * most TrueType fonts contain an Apple roman charmap to be usable on - * MacOS systems (even if they contain a Microsoft charmap as well). + * Used by Apple to indicate a MacOS-specific charmap and/or name + * entry. See @TT_MAC_ID_XXX for corresponding `encoding_id` values. + * Note that most TrueType fonts contain an Apple roman charmap to be + * usable on MacOS systems (even if they contain a Microsoft charmap as + * well). * * TT_PLATFORM_ISO :: - * This value was used to specify ISO/IEC 10646 charmaps. It is however - * now deprecated. See @TT_ISO_ID_XXX for a list of corresponding - * `encoding_id' values. + * This value was used to specify ISO/IEC 10646 charmaps. It is + * however now deprecated. See @TT_ISO_ID_XXX for a list of + * corresponding `encoding_id` values. * * TT_PLATFORM_MICROSOFT :: * Used by Microsoft to indicate Windows-specific charmaps. See - * @TT_MS_ID_XXX for a list of corresponding `encoding_id' values. + * @TT_MS_ID_XXX for a list of corresponding `encoding_id` values. * Note that most fonts contain a Unicode charmap using - * (TT_PLATFORM_MICROSOFT, @TT_MS_ID_UNICODE_CS). + * (`TT_PLATFORM_MICROSOFT`, @TT_MS_ID_UNICODE_CS). * * TT_PLATFORM_CUSTOM :: * Used to indicate application-specific charmaps. @@ -91,13 +92,13 @@ FT_BEGIN_HEADER #define TT_PLATFORM_ADOBE 7 /* artificial */ - /*********************************************************************** + /************************************************************************** * * @enum: * TT_APPLE_ID_XXX * * @description: - * A list of valid values for the `encoding_id' for + * A list of valid values for the `encoding_id` for * @TT_PLATFORM_APPLE_UNICODE charmaps and name entries. * * @values: @@ -117,62 +118,31 @@ FT_BEGIN_HEADER * Unicode 3.1 and beyond, using UTF-32. * * TT_APPLE_ID_VARIANT_SELECTOR :: - * From Adobe, not Apple. Not a normal cmap. Specifies variations - * on a real cmap. + * From Adobe, not Apple. Not a normal cmap. Specifies variations on + * a real cmap. + * + * TT_APPLE_ID_FULL_UNICODE :: + * Used for fallback fonts that provide complete Unicode coverage with + * a type~13 cmap. */ -#define TT_APPLE_ID_DEFAULT 0 /* Unicode 1.0 */ -#define TT_APPLE_ID_UNICODE_1_1 1 /* specify Hangul at U+34xx */ -#define TT_APPLE_ID_ISO_10646 2 /* deprecated */ -#define TT_APPLE_ID_UNICODE_2_0 3 /* or later */ +#define TT_APPLE_ID_DEFAULT 0 /* Unicode 1.0 */ +#define TT_APPLE_ID_UNICODE_1_1 1 /* specify Hangul at U+34xx */ +#define TT_APPLE_ID_ISO_10646 2 /* deprecated */ +#define TT_APPLE_ID_UNICODE_2_0 3 /* or later */ #define TT_APPLE_ID_UNICODE_32 4 /* 2.0 or later, full repertoire */ -#define TT_APPLE_ID_VARIANT_SELECTOR 5 /* variation selector data */ +#define TT_APPLE_ID_VARIANT_SELECTOR 5 /* variation selector data */ +#define TT_APPLE_ID_FULL_UNICODE 6 /* used with type 13 cmaps */ - /*********************************************************************** + /************************************************************************** * * @enum: * TT_MAC_ID_XXX * * @description: - * A list of valid values for the `encoding_id' for + * A list of valid values for the `encoding_id` for * @TT_PLATFORM_MACINTOSH charmaps and name entries. - * - * @values: - * TT_MAC_ID_ROMAN :: - * TT_MAC_ID_JAPANESE :: - * TT_MAC_ID_TRADITIONAL_CHINESE :: - * TT_MAC_ID_KOREAN :: - * TT_MAC_ID_ARABIC :: - * TT_MAC_ID_HEBREW :: - * TT_MAC_ID_GREEK :: - * TT_MAC_ID_RUSSIAN :: - * TT_MAC_ID_RSYMBOL :: - * TT_MAC_ID_DEVANAGARI :: - * TT_MAC_ID_GURMUKHI :: - * TT_MAC_ID_GUJARATI :: - * TT_MAC_ID_ORIYA :: - * TT_MAC_ID_BENGALI :: - * TT_MAC_ID_TAMIL :: - * TT_MAC_ID_TELUGU :: - * TT_MAC_ID_KANNADA :: - * TT_MAC_ID_MALAYALAM :: - * TT_MAC_ID_SINHALESE :: - * TT_MAC_ID_BURMESE :: - * TT_MAC_ID_KHMER :: - * TT_MAC_ID_THAI :: - * TT_MAC_ID_LAOTIAN :: - * TT_MAC_ID_GEORGIAN :: - * TT_MAC_ID_ARMENIAN :: - * TT_MAC_ID_MALDIVIAN :: - * TT_MAC_ID_SIMPLIFIED_CHINESE :: - * TT_MAC_ID_TIBETAN :: - * TT_MAC_ID_MONGOLIAN :: - * TT_MAC_ID_GEEZ :: - * TT_MAC_ID_SLAVIC :: - * TT_MAC_ID_VIETNAMESE :: - * TT_MAC_ID_SINDHI :: - * TT_MAC_ID_UNINTERP :: */ #define TT_MAC_ID_ROMAN 0 @@ -211,14 +181,14 @@ FT_BEGIN_HEADER #define TT_MAC_ID_UNINTERP 32 - /*********************************************************************** + /************************************************************************** * * @enum: * TT_ISO_ID_XXX * * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_ISO charmaps and name entries. + * A list of valid values for the `encoding_id` for @TT_PLATFORM_ISO + * charmaps and name entries. * * Their use is now deprecated. * @@ -236,64 +206,66 @@ FT_BEGIN_HEADER #define TT_ISO_ID_8859_1 2 - /*********************************************************************** + /************************************************************************** * * @enum: * TT_MS_ID_XXX * * @description: - * A list of valid values for the `encoding_id' for + * A list of valid values for the `encoding_id` for * @TT_PLATFORM_MICROSOFT charmaps and name entries. * * @values: * TT_MS_ID_SYMBOL_CS :: - * Corresponds to Microsoft symbol encoding. See - * @FT_ENCODING_MS_SYMBOL. + * Microsoft symbol encoding. See @FT_ENCODING_MS_SYMBOL. * * TT_MS_ID_UNICODE_CS :: - * Corresponds to a Microsoft WGL4 charmap, matching Unicode. See - * @FT_ENCODING_UNICODE. + * Microsoft WGL4 charmap, matching Unicode. See @FT_ENCODING_UNICODE. * * TT_MS_ID_SJIS :: - * Corresponds to SJIS Japanese encoding. See @FT_ENCODING_SJIS. + * Shift JIS Japanese encoding. See @FT_ENCODING_SJIS. * - * TT_MS_ID_GB2312 :: - * Corresponds to Simplified Chinese as used in Mainland China. See - * @FT_ENCODING_GB2312. + * TT_MS_ID_PRC :: + * Chinese encodings as used in the People's Republic of China (PRC). + * This means the encodings GB~2312 and its supersets GBK and GB~18030. + * See @FT_ENCODING_PRC. * * TT_MS_ID_BIG_5 :: - * Corresponds to Traditional Chinese as used in Taiwan and Hong Kong. - * See @FT_ENCODING_BIG5. + * Traditional Chinese as used in Taiwan and Hong Kong. See + * @FT_ENCODING_BIG5. * * TT_MS_ID_WANSUNG :: - * Corresponds to Korean Wansung encoding. See @FT_ENCODING_WANSUNG. + * Korean Extended Wansung encoding. See @FT_ENCODING_WANSUNG. * * TT_MS_ID_JOHAB :: - * Corresponds to Johab encoding. See @FT_ENCODING_JOHAB. + * Korean Johab encoding. See @FT_ENCODING_JOHAB. * * TT_MS_ID_UCS_4 :: - * Corresponds to UCS-4 or UTF-32 charmaps. This has been added to - * the OpenType specification version 1.4 (mid-2001.) + * UCS-4 or UTF-32 charmaps. This has been added to the OpenType + * specification version 1.4 (mid-2001). */ #define TT_MS_ID_SYMBOL_CS 0 #define TT_MS_ID_UNICODE_CS 1 #define TT_MS_ID_SJIS 2 -#define TT_MS_ID_GB2312 3 +#define TT_MS_ID_PRC 3 #define TT_MS_ID_BIG_5 4 #define TT_MS_ID_WANSUNG 5 #define TT_MS_ID_JOHAB 6 #define TT_MS_ID_UCS_4 10 + /* this value is deprecated */ +#define TT_MS_ID_GB2312 TT_MS_ID_PRC - /*********************************************************************** + + /************************************************************************** * * @enum: * TT_ADOBE_ID_XXX * * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_ADOBE charmaps. This is a FreeType-specific extension! + * A list of valid values for the `encoding_id` for @TT_PLATFORM_ADOBE + * charmaps. This is a FreeType-specific extension! * * @values: * TT_ADOBE_ID_STANDARD :: @@ -312,17 +284,22 @@ FT_BEGIN_HEADER #define TT_ADOBE_ID_LATIN_1 3 - /*************************************************************************/ - /* */ - /* Possible values of the language identifier field in the name records */ - /* of the TTF `name' table if the `platform' identifier code is */ - /* TT_PLATFORM_MACINTOSH. These values are also used as return values */ - /* for function @FT_Get_CMap_Language_ID. */ - /* */ - /* The canonical source for the Apple assigned Language ID's is at */ - /* */ - /* https://developer.apple.com/fonts/TTRefMan/RM06/Chap6name.html */ - /* */ + /************************************************************************** + * + * @enum: + * TT_MAC_LANGID_XXX + * + * @description: + * Possible values of the language identifier field in the name records + * of the SFNT 'name' table if the 'platform' identifier code is + * @TT_PLATFORM_MACINTOSH. These values are also used as return values + * for function @FT_Get_CMap_Language_ID. + * + * The canonical source for Apple's IDs is + * + * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html + */ + #define TT_MAC_LANGID_ENGLISH 0 #define TT_MAC_LANGID_FRENCH 1 #define TT_MAC_LANGID_GERMAN 2 @@ -433,15 +410,6 @@ FT_BEGIN_HEADER #define TT_MAC_LANGID_JAVANESE 138 #define TT_MAC_LANGID_SUNDANESE 139 - -#if 0 /* these seem to be errors that have been dropped */ - -#define TT_MAC_LANGID_SCOTTISH_GAELIC 140 -#define TT_MAC_LANGID_IRISH_GAELIC 141 - -#endif - - /* The following codes are new as of 2000-03-10 */ #define TT_MAC_LANGID_GALICIAN 140 #define TT_MAC_LANGID_AFRIKAANS 141 @@ -456,18 +424,30 @@ FT_BEGIN_HEADER #define TT_MAC_LANGID_AZERBAIJANI_ROMAN_SCRIPT 150 - /*************************************************************************/ - /* */ - /* Possible values of the language identifier field in the name records */ - /* of the TTF `name' table if the `platform' identifier code is */ - /* TT_PLATFORM_MICROSOFT. */ - /* */ - /* The canonical source for the MS assigned LCIDs is */ - /* */ - /* http://www.microsoft.com/globaldev/reference/lcid-all.mspx */ - /* */ + /************************************************************************** + * + * @enum: + * TT_MS_LANGID_XXX + * + * @description: + * Possible values of the language identifier field in the name records + * of the SFNT 'name' table if the 'platform' identifier code is + * @TT_PLATFORM_MICROSOFT. These values are also used as return values + * for function @FT_Get_CMap_Language_ID. + * + * The canonical source for Microsoft's IDs is + * + * https://docs.microsoft.com/en-us/windows/desktop/Intl/language-identifier-constants-and-strings , + * + * however, we only provide macros for language identifiers present in + * the OpenType specification: Microsoft has abandoned the concept of + * LCIDs (language code identifiers), and format~1 of the 'name' table + * provides a better mechanism for languages not covered here. + * + * More legacy values not listed in the reference can be found in the + * @FT_TRUETYPE_IDS_H header file. + */ -#define TT_MS_LANGID_ARABIC_GENERAL 0x0001 #define TT_MS_LANGID_ARABIC_SAUDI_ARABIA 0x0401 #define TT_MS_LANGID_ARABIC_IRAQ 0x0801 #define TT_MS_LANGID_ARABIC_EGYPT 0x0C01 @@ -485,39 +465,20 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_ARABIC_BAHRAIN 0x3C01 #define TT_MS_LANGID_ARABIC_QATAR 0x4001 #define TT_MS_LANGID_BULGARIAN_BULGARIA 0x0402 -#define TT_MS_LANGID_CATALAN_SPAIN 0x0403 -#define TT_MS_LANGID_CHINESE_GENERAL 0x0004 +#define TT_MS_LANGID_CATALAN_CATALAN 0x0403 #define TT_MS_LANGID_CHINESE_TAIWAN 0x0404 #define TT_MS_LANGID_CHINESE_PRC 0x0804 #define TT_MS_LANGID_CHINESE_HONG_KONG 0x0C04 #define TT_MS_LANGID_CHINESE_SINGAPORE 0x1004 - -#if 1 /* this looks like the correct value */ -#define TT_MS_LANGID_CHINESE_MACAU 0x1404 -#else /* but beware, Microsoft may change its mind... - the most recent Word reference has the following: */ -#define TT_MS_LANGID_CHINESE_MACAU TT_MS_LANGID_CHINESE_HONG_KONG -#endif - -#if 0 /* used only with .NET `cultures'; commented out */ -#define TT_MS_LANGID_CHINESE_TRADITIONAL 0x7C04 -#endif - +#define TT_MS_LANGID_CHINESE_MACAO 0x1404 #define TT_MS_LANGID_CZECH_CZECH_REPUBLIC 0x0405 #define TT_MS_LANGID_DANISH_DENMARK 0x0406 #define TT_MS_LANGID_GERMAN_GERMANY 0x0407 #define TT_MS_LANGID_GERMAN_SWITZERLAND 0x0807 #define TT_MS_LANGID_GERMAN_AUSTRIA 0x0C07 #define TT_MS_LANGID_GERMAN_LUXEMBOURG 0x1007 -#define TT_MS_LANGID_GERMAN_LIECHTENSTEI 0x1407 +#define TT_MS_LANGID_GERMAN_LIECHTENSTEIN 0x1407 #define TT_MS_LANGID_GREEK_GREECE 0x0408 - - /* don't ask what this one means... It is commented out currently. */ -#if 0 -#define TT_MS_LANGID_GREEK_GREECE2 0x2008 -#endif - -#define TT_MS_LANGID_ENGLISH_GENERAL 0x0009 #define TT_MS_LANGID_ENGLISH_UNITED_STATES 0x0409 #define TT_MS_LANGID_ENGLISH_UNITED_KINGDOM 0x0809 #define TT_MS_LANGID_ENGLISH_AUSTRALIA 0x0C09 @@ -531,14 +492,12 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_ENGLISH_TRINIDAD 0x2C09 #define TT_MS_LANGID_ENGLISH_ZIMBABWE 0x3009 #define TT_MS_LANGID_ENGLISH_PHILIPPINES 0x3409 -#define TT_MS_LANGID_ENGLISH_INDONESIA 0x3809 -#define TT_MS_LANGID_ENGLISH_HONG_KONG 0x3C09 #define TT_MS_LANGID_ENGLISH_INDIA 0x4009 #define TT_MS_LANGID_ENGLISH_MALAYSIA 0x4409 #define TT_MS_LANGID_ENGLISH_SINGAPORE 0x4809 #define TT_MS_LANGID_SPANISH_SPAIN_TRADITIONAL_SORT 0x040A #define TT_MS_LANGID_SPANISH_MEXICO 0x080A -#define TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT 0x0C0A +#define TT_MS_LANGID_SPANISH_SPAIN_MODERN_SORT 0x0C0A #define TT_MS_LANGID_SPANISH_GUATEMALA 0x100A #define TT_MS_LANGID_SPANISH_COSTA_RICA 0x140A #define TT_MS_LANGID_SPANISH_PANAMA 0x180A @@ -557,9 +516,6 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_SPANISH_NICARAGUA 0x4C0A #define TT_MS_LANGID_SPANISH_PUERTO_RICO 0x500A #define TT_MS_LANGID_SPANISH_UNITED_STATES 0x540A - /* The following ID blatantly violate MS specs by using a */ - /* sublanguage > 0x1F. */ -#define TT_MS_LANGID_SPANISH_LATIN_AMERICA 0xE40AU #define TT_MS_LANGID_FINNISH_FINLAND 0x040B #define TT_MS_LANGID_FRENCH_FRANCE 0x040C #define TT_MS_LANGID_FRENCH_BELGIUM 0x080C @@ -567,27 +523,13 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_FRENCH_SWITZERLAND 0x100C #define TT_MS_LANGID_FRENCH_LUXEMBOURG 0x140C #define TT_MS_LANGID_FRENCH_MONACO 0x180C -#define TT_MS_LANGID_FRENCH_WEST_INDIES 0x1C0C -#define TT_MS_LANGID_FRENCH_REUNION 0x200C -#define TT_MS_LANGID_FRENCH_CONGO 0x240C - /* which was formerly: */ -#define TT_MS_LANGID_FRENCH_ZAIRE TT_MS_LANGID_FRENCH_CONGO -#define TT_MS_LANGID_FRENCH_SENEGAL 0x280C -#define TT_MS_LANGID_FRENCH_CAMEROON 0x2C0C -#define TT_MS_LANGID_FRENCH_COTE_D_IVOIRE 0x300C -#define TT_MS_LANGID_FRENCH_MALI 0x340C -#define TT_MS_LANGID_FRENCH_MOROCCO 0x380C -#define TT_MS_LANGID_FRENCH_HAITI 0x3C0C - /* and another violation of the spec (see 0xE40AU) */ -#define TT_MS_LANGID_FRENCH_NORTH_AFRICA 0xE40CU #define TT_MS_LANGID_HEBREW_ISRAEL 0x040D #define TT_MS_LANGID_HUNGARIAN_HUNGARY 0x040E #define TT_MS_LANGID_ICELANDIC_ICELAND 0x040F #define TT_MS_LANGID_ITALIAN_ITALY 0x0410 #define TT_MS_LANGID_ITALIAN_SWITZERLAND 0x0810 #define TT_MS_LANGID_JAPANESE_JAPAN 0x0411 -#define TT_MS_LANGID_KOREAN_EXTENDED_WANSUNG_KOREA 0x0412 -#define TT_MS_LANGID_KOREAN_JOHAB_KOREA 0x0812 +#define TT_MS_LANGID_KOREAN_KOREA 0x0412 #define TT_MS_LANGID_DUTCH_NETHERLANDS 0x0413 #define TT_MS_LANGID_DUTCH_BELGIUM 0x0813 #define TT_MS_LANGID_NORWEGIAN_NORWAY_BOKMAL 0x0414 @@ -595,26 +537,17 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_POLISH_POLAND 0x0415 #define TT_MS_LANGID_PORTUGUESE_BRAZIL 0x0416 #define TT_MS_LANGID_PORTUGUESE_PORTUGAL 0x0816 -#define TT_MS_LANGID_RHAETO_ROMANIC_SWITZERLAND 0x0417 +#define TT_MS_LANGID_ROMANSH_SWITZERLAND 0x0417 #define TT_MS_LANGID_ROMANIAN_ROMANIA 0x0418 -#define TT_MS_LANGID_MOLDAVIAN_MOLDAVIA 0x0818 #define TT_MS_LANGID_RUSSIAN_RUSSIA 0x0419 -#define TT_MS_LANGID_RUSSIAN_MOLDAVIA 0x0819 #define TT_MS_LANGID_CROATIAN_CROATIA 0x041A #define TT_MS_LANGID_SERBIAN_SERBIA_LATIN 0x081A #define TT_MS_LANGID_SERBIAN_SERBIA_CYRILLIC 0x0C1A - -#if 0 /* this used to be this value, but it looks like we were wrong */ -#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA 0x101A -#else /* current sources say */ #define TT_MS_LANGID_CROATIAN_BOSNIA_HERZEGOVINA 0x101A #define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA 0x141A - /* and XPsp2 Platform SDK added (2004-07-26) */ - /* Names are shortened to be significant within 40 chars. */ #define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_LATIN 0x181A -#define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC 0x181A -#endif - +#define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC 0x1C1A +#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZ_CYRILLIC 0x201A #define TT_MS_LANGID_SLOVAK_SLOVAKIA 0x041B #define TT_MS_LANGID_ALBANIAN_ALBANIA 0x041C #define TT_MS_LANGID_SWEDISH_SWEDEN 0x041D @@ -622,36 +555,30 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_THAI_THAILAND 0x041E #define TT_MS_LANGID_TURKISH_TURKEY 0x041F #define TT_MS_LANGID_URDU_PAKISTAN 0x0420 -#define TT_MS_LANGID_URDU_INDIA 0x0820 #define TT_MS_LANGID_INDONESIAN_INDONESIA 0x0421 #define TT_MS_LANGID_UKRAINIAN_UKRAINE 0x0422 #define TT_MS_LANGID_BELARUSIAN_BELARUS 0x0423 -#define TT_MS_LANGID_SLOVENE_SLOVENIA 0x0424 +#define TT_MS_LANGID_SLOVENIAN_SLOVENIA 0x0424 #define TT_MS_LANGID_ESTONIAN_ESTONIA 0x0425 #define TT_MS_LANGID_LATVIAN_LATVIA 0x0426 #define TT_MS_LANGID_LITHUANIAN_LITHUANIA 0x0427 -#define TT_MS_LANGID_CLASSIC_LITHUANIAN_LITHUANIA 0x0827 #define TT_MS_LANGID_TAJIK_TAJIKISTAN 0x0428 -#define TT_MS_LANGID_FARSI_IRAN 0x0429 #define TT_MS_LANGID_VIETNAMESE_VIET_NAM 0x042A #define TT_MS_LANGID_ARMENIAN_ARMENIA 0x042B #define TT_MS_LANGID_AZERI_AZERBAIJAN_LATIN 0x042C #define TT_MS_LANGID_AZERI_AZERBAIJAN_CYRILLIC 0x082C -#define TT_MS_LANGID_BASQUE_SPAIN 0x042D -#define TT_MS_LANGID_SORBIAN_GERMANY 0x042E +#define TT_MS_LANGID_BASQUE_BASQUE 0x042D +#define TT_MS_LANGID_UPPER_SORBIAN_GERMANY 0x042E +#define TT_MS_LANGID_LOWER_SORBIAN_GERMANY 0x082E #define TT_MS_LANGID_MACEDONIAN_MACEDONIA 0x042F -#define TT_MS_LANGID_SUTU_SOUTH_AFRICA 0x0430 -#define TT_MS_LANGID_TSONGA_SOUTH_AFRICA 0x0431 -#define TT_MS_LANGID_TSWANA_SOUTH_AFRICA 0x0432 -#define TT_MS_LANGID_VENDA_SOUTH_AFRICA 0x0433 -#define TT_MS_LANGID_XHOSA_SOUTH_AFRICA 0x0434 -#define TT_MS_LANGID_ZULU_SOUTH_AFRICA 0x0435 +#define TT_MS_LANGID_SETSWANA_SOUTH_AFRICA 0x0432 +#define TT_MS_LANGID_ISIXHOSA_SOUTH_AFRICA 0x0434 +#define TT_MS_LANGID_ISIZULU_SOUTH_AFRICA 0x0435 #define TT_MS_LANGID_AFRIKAANS_SOUTH_AFRICA 0x0436 #define TT_MS_LANGID_GEORGIAN_GEORGIA 0x0437 #define TT_MS_LANGID_FAEROESE_FAEROE_ISLANDS 0x0438 #define TT_MS_LANGID_HINDI_INDIA 0x0439 #define TT_MS_LANGID_MALTESE_MALTA 0x043A - /* Added by XPsp2 Platform SDK (2004-07-26) */ #define TT_MS_LANGID_SAMI_NORTHERN_NORWAY 0x043B #define TT_MS_LANGID_SAMI_NORTHERN_SWEDEN 0x083B #define TT_MS_LANGID_SAMI_NORTHERN_FINLAND 0x0C3B @@ -661,37 +588,21 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_SAMI_SOUTHERN_SWEDEN 0x1C3B #define TT_MS_LANGID_SAMI_SKOLT_FINLAND 0x203B #define TT_MS_LANGID_SAMI_INARI_FINLAND 0x243B - /* ... and we also keep our old identifier... */ -#define TT_MS_LANGID_SAAMI_LAPONIA 0x043B - -#if 0 /* this seems to be a previous inversion */ -#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043C -#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083C -#else -#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083C -#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043C -#endif - -#define TT_MS_LANGID_YIDDISH_GERMANY 0x043D +#define TT_MS_LANGID_IRISH_IRELAND 0x083C #define TT_MS_LANGID_MALAY_MALAYSIA 0x043E #define TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM 0x083E -#define TT_MS_LANGID_KAZAK_KAZAKSTAN 0x043F -#define TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN /* Cyrillic*/ 0x0440 - /* alias declared in Windows 2000 */ -#define TT_MS_LANGID_KIRGHIZ_KIRGHIZ_REPUBLIC \ - TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN - -#define TT_MS_LANGID_SWAHILI_KENYA 0x0441 +#define TT_MS_LANGID_KAZAKH_KAZAKHSTAN 0x043F +#define TT_MS_LANGID_KYRGYZ_KYRGYZSTAN /* Cyrillic*/ 0x0440 +#define TT_MS_LANGID_KISWAHILI_KENYA 0x0441 #define TT_MS_LANGID_TURKMEN_TURKMENISTAN 0x0442 #define TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN 0x0443 #define TT_MS_LANGID_UZBEK_UZBEKISTAN_CYRILLIC 0x0843 -#define TT_MS_LANGID_TATAR_TATARSTAN 0x0444 +#define TT_MS_LANGID_TATAR_RUSSIA 0x0444 #define TT_MS_LANGID_BENGALI_INDIA 0x0445 #define TT_MS_LANGID_BENGALI_BANGLADESH 0x0845 #define TT_MS_LANGID_PUNJABI_INDIA 0x0446 -#define TT_MS_LANGID_PUNJABI_ARABIC_PAKISTAN 0x0846 #define TT_MS_LANGID_GUJARATI_INDIA 0x0447 -#define TT_MS_LANGID_ORIYA_INDIA 0x0448 +#define TT_MS_LANGID_ODIA_INDIA 0x0448 #define TT_MS_LANGID_TAMIL_INDIA 0x0449 #define TT_MS_LANGID_TELUGU_INDIA 0x044A #define TT_MS_LANGID_KANNADA_INDIA 0x044B @@ -700,142 +611,241 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_MARATHI_INDIA 0x044E #define TT_MS_LANGID_SANSKRIT_INDIA 0x044F #define TT_MS_LANGID_MONGOLIAN_MONGOLIA /* Cyrillic */ 0x0450 -#define TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN 0x0850 -#define TT_MS_LANGID_TIBETAN_CHINA 0x0451 - /* Don't use the next constant! It has */ - /* (1) the wrong spelling (Dzonghka) */ - /* (2) Microsoft doesn't officially define it -- */ - /* at least it is not in the List of Local */ - /* ID Values. */ - /* (3) Dzongkha is not the same language as */ - /* Tibetan, so merging it is wrong anyway. */ - /* */ - /* TT_MS_LANGID_TIBETAN_BHUTAN is correct, BTW. */ -#define TT_MS_LANGID_DZONGHKA_BHUTAN 0x0851 - -#if 0 - /* the following used to be defined */ -#define TT_MS_LANGID_TIBETAN_BHUTAN 0x0451 - /* ... but it was changed; */ -#else - /* So we will continue to #define it, but with the correct value */ -#define TT_MS_LANGID_TIBETAN_BHUTAN TT_MS_LANGID_DZONGHKA_BHUTAN -#endif - -#define TT_MS_LANGID_WELSH_WALES 0x0452 +#define TT_MS_LANGID_MONGOLIAN_PRC 0x0850 +#define TT_MS_LANGID_TIBETAN_PRC 0x0451 +#define TT_MS_LANGID_WELSH_UNITED_KINGDOM 0x0452 #define TT_MS_LANGID_KHMER_CAMBODIA 0x0453 #define TT_MS_LANGID_LAO_LAOS 0x0454 -#define TT_MS_LANGID_BURMESE_MYANMAR 0x0455 -#define TT_MS_LANGID_GALICIAN_SPAIN 0x0456 +#define TT_MS_LANGID_GALICIAN_GALICIAN 0x0456 #define TT_MS_LANGID_KONKANI_INDIA 0x0457 -#define TT_MS_LANGID_MANIPURI_INDIA /* Bengali */ 0x0458 -#define TT_MS_LANGID_SINDHI_INDIA /* Arabic */ 0x0459 -#define TT_MS_LANGID_SINDHI_PAKISTAN 0x0859 - /* Missing a LCID for Sindhi in Devanagari script */ #define TT_MS_LANGID_SYRIAC_SYRIA 0x045A -#define TT_MS_LANGID_SINHALESE_SRI_LANKA 0x045B -#define TT_MS_LANGID_CHEROKEE_UNITED_STATES 0x045C +#define TT_MS_LANGID_SINHALA_SRI_LANKA 0x045B #define TT_MS_LANGID_INUKTITUT_CANADA 0x045D +#define TT_MS_LANGID_INUKTITUT_CANADA_LATIN 0x085D #define TT_MS_LANGID_AMHARIC_ETHIOPIA 0x045E -#define TT_MS_LANGID_TAMAZIGHT_MOROCCO /* Arabic */ 0x045F -#define TT_MS_LANGID_TAMAZIGHT_MOROCCO_LATIN 0x085F - /* Missing a LCID for Tifinagh script */ -#define TT_MS_LANGID_KASHMIRI_PAKISTAN /* Arabic */ 0x0460 - /* Spelled this way by XPsp2 Platform SDK (2004-07-26) */ - /* script is yet unclear... might be Arabic, Nagari or Sharada */ -#define TT_MS_LANGID_KASHMIRI_SASIA 0x0860 - /* ... and aliased (by MS) for compatibility reasons. */ -#define TT_MS_LANGID_KASHMIRI_INDIA TT_MS_LANGID_KASHMIRI_SASIA +#define TT_MS_LANGID_TAMAZIGHT_ALGERIA 0x085F #define TT_MS_LANGID_NEPALI_NEPAL 0x0461 -#define TT_MS_LANGID_NEPALI_INDIA 0x0861 #define TT_MS_LANGID_FRISIAN_NETHERLANDS 0x0462 #define TT_MS_LANGID_PASHTO_AFGHANISTAN 0x0463 #define TT_MS_LANGID_FILIPINO_PHILIPPINES 0x0464 #define TT_MS_LANGID_DHIVEHI_MALDIVES 0x0465 - /* alias declared in Windows 2000 */ -#define TT_MS_LANGID_DIVEHI_MALDIVES TT_MS_LANGID_DHIVEHI_MALDIVES -#define TT_MS_LANGID_EDO_NIGERIA 0x0466 -#define TT_MS_LANGID_FULFULDE_NIGERIA 0x0467 #define TT_MS_LANGID_HAUSA_NIGERIA 0x0468 -#define TT_MS_LANGID_IBIBIO_NIGERIA 0x0469 #define TT_MS_LANGID_YORUBA_NIGERIA 0x046A #define TT_MS_LANGID_QUECHUA_BOLIVIA 0x046B #define TT_MS_LANGID_QUECHUA_ECUADOR 0x086B #define TT_MS_LANGID_QUECHUA_PERU 0x0C6B -#define TT_MS_LANGID_SEPEDI_SOUTH_AFRICA 0x046C - /* Also spelled by XPsp2 Platform SDK (2004-07-26) */ -#define TT_MS_LANGID_SOTHO_SOUTHERN_SOUTH_AFRICA \ - TT_MS_LANGID_SEPEDI_SOUTH_AFRICA - /* language codes 0x046D, 0x046E and 0x046F are (still) unknown. */ +#define TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA 0x046C +#define TT_MS_LANGID_BASHKIR_RUSSIA 0x046D +#define TT_MS_LANGID_LUXEMBOURGISH_LUXEMBOURG 0x046E +#define TT_MS_LANGID_GREENLANDIC_GREENLAND 0x046F #define TT_MS_LANGID_IGBO_NIGERIA 0x0470 +#define TT_MS_LANGID_YI_PRC 0x0478 +#define TT_MS_LANGID_MAPUDUNGUN_CHILE 0x047A +#define TT_MS_LANGID_MOHAWK_MOHAWK 0x047C +#define TT_MS_LANGID_BRETON_FRANCE 0x047E +#define TT_MS_LANGID_UIGHUR_PRC 0x0480 +#define TT_MS_LANGID_MAORI_NEW_ZEALAND 0x0481 +#define TT_MS_LANGID_OCCITAN_FRANCE 0x0482 +#define TT_MS_LANGID_CORSICAN_FRANCE 0x0483 +#define TT_MS_LANGID_ALSATIAN_FRANCE 0x0484 +#define TT_MS_LANGID_YAKUT_RUSSIA 0x0485 +#define TT_MS_LANGID_KICHE_GUATEMALA 0x0486 +#define TT_MS_LANGID_KINYARWANDA_RWANDA 0x0487 +#define TT_MS_LANGID_WOLOF_SENEGAL 0x0488 +#define TT_MS_LANGID_DARI_AFGHANISTAN 0x048C + + /* */ + + + /* legacy macro definitions not present in OpenType 1.8.1 */ +#define TT_MS_LANGID_ARABIC_GENERAL 0x0001 +#define TT_MS_LANGID_CATALAN_SPAIN \ + TT_MS_LANGID_CATALAN_CATALAN +#define TT_MS_LANGID_CHINESE_GENERAL 0x0004 +#define TT_MS_LANGID_CHINESE_MACAU \ + TT_MS_LANGID_CHINESE_MACAO +#define TT_MS_LANGID_GERMAN_LIECHTENSTEI \ + TT_MS_LANGID_GERMAN_LIECHTENSTEIN +#define TT_MS_LANGID_ENGLISH_GENERAL 0x0009 +#define TT_MS_LANGID_ENGLISH_INDONESIA 0x3809 +#define TT_MS_LANGID_ENGLISH_HONG_KONG 0x3C09 +#define TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT \ + TT_MS_LANGID_SPANISH_SPAIN_MODERN_SORT +#define TT_MS_LANGID_SPANISH_LATIN_AMERICA 0xE40AU +#define TT_MS_LANGID_FRENCH_WEST_INDIES 0x1C0C +#define TT_MS_LANGID_FRENCH_REUNION 0x200C +#define TT_MS_LANGID_FRENCH_CONGO 0x240C + /* which was formerly: */ +#define TT_MS_LANGID_FRENCH_ZAIRE \ + TT_MS_LANGID_FRENCH_CONGO +#define TT_MS_LANGID_FRENCH_SENEGAL 0x280C +#define TT_MS_LANGID_FRENCH_CAMEROON 0x2C0C +#define TT_MS_LANGID_FRENCH_COTE_D_IVOIRE 0x300C +#define TT_MS_LANGID_FRENCH_MALI 0x340C +#define TT_MS_LANGID_FRENCH_MOROCCO 0x380C +#define TT_MS_LANGID_FRENCH_HAITI 0x3C0C +#define TT_MS_LANGID_FRENCH_NORTH_AFRICA 0xE40CU +#define TT_MS_LANGID_KOREAN_EXTENDED_WANSUNG_KOREA \ + TT_MS_LANGID_KOREAN_KOREA +#define TT_MS_LANGID_KOREAN_JOHAB_KOREA 0x0812 +#define TT_MS_LANGID_RHAETO_ROMANIC_SWITZERLAND \ + TT_MS_LANGID_ROMANSH_SWITZERLAND +#define TT_MS_LANGID_MOLDAVIAN_MOLDAVIA 0x0818 +#define TT_MS_LANGID_RUSSIAN_MOLDAVIA 0x0819 +#define TT_MS_LANGID_URDU_INDIA 0x0820 +#define TT_MS_LANGID_CLASSIC_LITHUANIAN_LITHUANIA 0x0827 +#define TT_MS_LANGID_SLOVENE_SLOVENIA \ + TT_MS_LANGID_SLOVENIAN_SLOVENIA +#define TT_MS_LANGID_FARSI_IRAN 0x0429 +#define TT_MS_LANGID_BASQUE_SPAIN \ + TT_MS_LANGID_BASQUE_BASQUE +#define TT_MS_LANGID_SORBIAN_GERMANY \ + TT_MS_LANGID_UPPER_SORBIAN_GERMANY +#define TT_MS_LANGID_SUTU_SOUTH_AFRICA 0x0430 +#define TT_MS_LANGID_TSONGA_SOUTH_AFRICA 0x0431 +#define TT_MS_LANGID_TSWANA_SOUTH_AFRICA \ + TT_MS_LANGID_SETSWANA_SOUTH_AFRICA +#define TT_MS_LANGID_VENDA_SOUTH_AFRICA 0x0433 +#define TT_MS_LANGID_XHOSA_SOUTH_AFRICA \ + TT_MS_LANGID_ISIXHOSA_SOUTH_AFRICA +#define TT_MS_LANGID_ZULU_SOUTH_AFRICA \ + TT_MS_LANGID_ISIZULU_SOUTH_AFRICA +#define TT_MS_LANGID_SAAMI_LAPONIA 0x043B + /* the next two values are incorrectly inverted */ +#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043C +#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083C +#define TT_MS_LANGID_YIDDISH_GERMANY 0x043D +#define TT_MS_LANGID_KAZAK_KAZAKSTAN \ + TT_MS_LANGID_KAZAKH_KAZAKHSTAN +#define TT_MS_LANGID_KIRGHIZ_KIRGHIZ_REPUBLIC \ + TT_MS_LANGID_KYRGYZ_KYRGYZSTAN +#define TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN \ + TT_MS_LANGID_KYRGYZ_KYRGYZSTAN +#define TT_MS_LANGID_SWAHILI_KENYA \ + TT_MS_LANGID_KISWAHILI_KENYA +#define TT_MS_LANGID_TATAR_TATARSTAN \ + TT_MS_LANGID_TATAR_RUSSIA +#define TT_MS_LANGID_PUNJABI_ARABIC_PAKISTAN 0x0846 +#define TT_MS_LANGID_ORIYA_INDIA \ + TT_MS_LANGID_ODIA_INDIA +#define TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN \ + TT_MS_LANGID_MONGOLIAN_PRC +#define TT_MS_LANGID_TIBETAN_CHINA \ + TT_MS_LANGID_TIBETAN_PRC +#define TT_MS_LANGID_DZONGHKA_BHUTAN 0x0851 +#define TT_MS_LANGID_TIBETAN_BHUTAN \ + TT_MS_LANGID_DZONGHKA_BHUTAN +#define TT_MS_LANGID_WELSH_WALES \ + TT_MS_LANGID_WELSH_UNITED_KINGDOM +#define TT_MS_LANGID_BURMESE_MYANMAR 0x0455 +#define TT_MS_LANGID_GALICIAN_SPAIN \ + TT_MS_LANGID_GALICIAN_GALICIAN +#define TT_MS_LANGID_MANIPURI_INDIA /* Bengali */ 0x0458 +#define TT_MS_LANGID_SINDHI_INDIA /* Arabic */ 0x0459 +#define TT_MS_LANGID_SINDHI_PAKISTAN 0x0859 +#define TT_MS_LANGID_SINHALESE_SRI_LANKA \ + TT_MS_LANGID_SINHALA_SRI_LANKA +#define TT_MS_LANGID_CHEROKEE_UNITED_STATES 0x045C +#define TT_MS_LANGID_TAMAZIGHT_MOROCCO /* Arabic */ 0x045F +#define TT_MS_LANGID_TAMAZIGHT_MOROCCO_LATIN \ + TT_MS_LANGID_TAMAZIGHT_ALGERIA +#define TT_MS_LANGID_KASHMIRI_PAKISTAN /* Arabic */ 0x0460 +#define TT_MS_LANGID_KASHMIRI_SASIA 0x0860 +#define TT_MS_LANGID_KASHMIRI_INDIA \ + TT_MS_LANGID_KASHMIRI_SASIA +#define TT_MS_LANGID_NEPALI_INDIA 0x0861 +#define TT_MS_LANGID_DIVEHI_MALDIVES \ + TT_MS_LANGID_DHIVEHI_MALDIVES +#define TT_MS_LANGID_EDO_NIGERIA 0x0466 +#define TT_MS_LANGID_FULFULDE_NIGERIA 0x0467 +#define TT_MS_LANGID_IBIBIO_NIGERIA 0x0469 +#define TT_MS_LANGID_SEPEDI_SOUTH_AFRICA \ + TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA +#define TT_MS_LANGID_SOTHO_SOUTHERN_SOUTH_AFRICA \ + TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA #define TT_MS_LANGID_KANURI_NIGERIA 0x0471 #define TT_MS_LANGID_OROMO_ETHIOPIA 0x0472 #define TT_MS_LANGID_TIGRIGNA_ETHIOPIA 0x0473 #define TT_MS_LANGID_TIGRIGNA_ERYTHREA 0x0873 - /* also spelled in the `Passport SDK' list as: */ -#define TT_MS_LANGID_TIGRIGNA_ERYTREA TT_MS_LANGID_TIGRIGNA_ERYTHREA +#define TT_MS_LANGID_TIGRIGNA_ERYTREA \ + TT_MS_LANGID_TIGRIGNA_ERYTHREA #define TT_MS_LANGID_GUARANI_PARAGUAY 0x0474 #define TT_MS_LANGID_HAWAIIAN_UNITED_STATES 0x0475 #define TT_MS_LANGID_LATIN 0x0476 #define TT_MS_LANGID_SOMALI_SOMALIA 0x0477 - /* Note: Yi does not have a (proper) ISO 639-2 code, since it is mostly */ - /* not written (but OTOH the peculiar writing system is worth */ - /* studying). */ -#define TT_MS_LANGID_YI_CHINA 0x0478 +#define TT_MS_LANGID_YI_CHINA \ + TT_MS_LANGID_YI_PRC #define TT_MS_LANGID_PAPIAMENTU_NETHERLANDS_ANTILLES 0x0479 - /* language codes from 0x047A to 0x047F are (still) unknown. */ -#define TT_MS_LANGID_UIGHUR_CHINA 0x0480 -#define TT_MS_LANGID_MAORI_NEW_ZEALAND 0x0481 - -#if 0 /* not deemed useful for fonts */ -#define TT_MS_LANGID_HUMAN_INTERFACE_DEVICE 0x04FF -#endif +#define TT_MS_LANGID_UIGHUR_CHINA \ + TT_MS_LANGID_UIGHUR_PRC - /*************************************************************************/ - /* */ - /* Possible values of the `name' identifier field in the name records of */ - /* the TTF `name' table. These values are platform independent. */ - /* */ -#define TT_NAME_ID_COPYRIGHT 0 -#define TT_NAME_ID_FONT_FAMILY 1 -#define TT_NAME_ID_FONT_SUBFAMILY 2 -#define TT_NAME_ID_UNIQUE_ID 3 -#define TT_NAME_ID_FULL_NAME 4 -#define TT_NAME_ID_VERSION_STRING 5 -#define TT_NAME_ID_PS_NAME 6 -#define TT_NAME_ID_TRADEMARK 7 + /************************************************************************** + * + * @enum: + * TT_NAME_ID_XXX + * + * @description: + * Possible values of the 'name' identifier field in the name records of + * an SFNT 'name' table. These values are platform independent. + */ + +#define TT_NAME_ID_COPYRIGHT 0 +#define TT_NAME_ID_FONT_FAMILY 1 +#define TT_NAME_ID_FONT_SUBFAMILY 2 +#define TT_NAME_ID_UNIQUE_ID 3 +#define TT_NAME_ID_FULL_NAME 4 +#define TT_NAME_ID_VERSION_STRING 5 +#define TT_NAME_ID_PS_NAME 6 +#define TT_NAME_ID_TRADEMARK 7 /* the following values are from the OpenType spec */ -#define TT_NAME_ID_MANUFACTURER 8 -#define TT_NAME_ID_DESIGNER 9 -#define TT_NAME_ID_DESCRIPTION 10 -#define TT_NAME_ID_VENDOR_URL 11 -#define TT_NAME_ID_DESIGNER_URL 12 -#define TT_NAME_ID_LICENSE 13 -#define TT_NAME_ID_LICENSE_URL 14 +#define TT_NAME_ID_MANUFACTURER 8 +#define TT_NAME_ID_DESIGNER 9 +#define TT_NAME_ID_DESCRIPTION 10 +#define TT_NAME_ID_VENDOR_URL 11 +#define TT_NAME_ID_DESIGNER_URL 12 +#define TT_NAME_ID_LICENSE 13 +#define TT_NAME_ID_LICENSE_URL 14 /* number 15 is reserved */ -#define TT_NAME_ID_PREFERRED_FAMILY 16 -#define TT_NAME_ID_PREFERRED_SUBFAMILY 17 -#define TT_NAME_ID_MAC_FULL_NAME 18 +#define TT_NAME_ID_TYPOGRAPHIC_FAMILY 16 +#define TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY 17 +#define TT_NAME_ID_MAC_FULL_NAME 18 /* The following code is new as of 2000-01-21 */ -#define TT_NAME_ID_SAMPLE_TEXT 19 +#define TT_NAME_ID_SAMPLE_TEXT 19 /* This is new in OpenType 1.3 */ -#define TT_NAME_ID_CID_FINDFONT_NAME 20 +#define TT_NAME_ID_CID_FINDFONT_NAME 20 /* This is new in OpenType 1.5 */ -#define TT_NAME_ID_WWS_FAMILY 21 -#define TT_NAME_ID_WWS_SUBFAMILY 22 +#define TT_NAME_ID_WWS_FAMILY 21 +#define TT_NAME_ID_WWS_SUBFAMILY 22 + + /* This is new in OpenType 1.7 */ +#define TT_NAME_ID_LIGHT_BACKGROUND 23 +#define TT_NAME_ID_DARK_BACKGROUND 24 + + /* This is new in OpenType 1.8 */ +#define TT_NAME_ID_VARIATIONS_PREFIX 25 + + /* these two values are deprecated */ +#define TT_NAME_ID_PREFERRED_FAMILY TT_NAME_ID_TYPOGRAPHIC_FAMILY +#define TT_NAME_ID_PREFERRED_SUBFAMILY TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY - /*************************************************************************/ - /* */ - /* Bit mask values for the Unicode Ranges from the TTF `OS2 ' table. */ - /* */ - /* Updated 08-Nov-2008. */ - /* */ + /************************************************************************** + * + * @enum: + * TT_UCR_XXX + * + * @description: + * Possible bit mask values for the `ulUnicodeRangeX` fields in an SFNT + * 'OS/2' table. + */ + + /* ulUnicodeRange1 */ + /* --------------- */ /* Bit 0 Basic Latin */ #define TT_UCR_BASIC_LATIN (1L << 0) /* U+0020-U+007E */ @@ -857,7 +867,7 @@ FT_BEGIN_HEADER /* U+A700-U+A71F */ /* Bit 6 Combining Diacritical Marks */ /* Combining Diacritical Marks Supplement */ -#define TT_UCR_COMBINING_DIACRITICS (1L << 6) /* U+0300-U+036F */ +#define TT_UCR_COMBINING_DIACRITICAL_MARKS (1L << 6) /* U+0300-U+036F */ /* U+1DC0-U+1DFF */ /* Bit 7 Greek and Coptic */ #define TT_UCR_GREEK (1L << 7) /* U+0370-U+03FF */ @@ -925,12 +935,17 @@ FT_BEGIN_HEADER /* Supplemental Punctuation */ #define TT_UCR_GENERAL_PUNCTUATION (1L << 31) /* U+2000-U+206F */ /* U+2E00-U+2E7F */ + + /* ulUnicodeRange2 */ + /* --------------- */ + /* Bit 32 Superscripts And Subscripts */ #define TT_UCR_SUPERSCRIPTS_SUBSCRIPTS (1L << 0) /* U+2070-U+209F */ /* Bit 33 Currency Symbols */ #define TT_UCR_CURRENCY_SYMBOLS (1L << 1) /* U+20A0-U+20CF */ /* Bit 34 Combining Diacritical Marks For Symbols */ -#define TT_UCR_COMBINING_DIACRITICS_SYMB (1L << 2) /* U+20D0-U+20FF */ +#define TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB \ + (1L << 2) /* U+20D0-U+20FF */ /* Bit 35 Letterlike Symbols */ #define TT_UCR_LETTERLIKE_SYMBOLS (1L << 3) /* U+2100-U+214F */ /* Bit 36 Number Forms */ @@ -996,13 +1011,13 @@ FT_BEGIN_HEADER /* Bit 57 High Surrogates */ /* High Private Use Surrogates */ /* Low Surrogates */ - /* */ + /* According to OpenType specs v.1.3+, */ /* setting bit 57 implies that there is */ /* at least one codepoint beyond the */ /* Basic Multilingual Plane that is */ /* supported by this font. So it really */ - /* means >= U+10000 */ + /* means >= U+10000. */ #define TT_UCR_SURROGATES (1L << 25) /* U+D800-U+DB7F */ /* U+DB80-U+DBFF */ /* U+DC00-U+DFFF */ @@ -1034,7 +1049,11 @@ FT_BEGIN_HEADER /* Bit 62 Alphabetic Presentation Forms */ #define TT_UCR_ALPHABETIC_PRESENTATION_FORMS (1L << 30) /* U+FB00-U+FB4F */ /* Bit 63 Arabic Presentation Forms-A */ -#define TT_UCR_ARABIC_PRESENTATIONS_A (1L << 31) /* U+FB50-U+FDFF */ +#define TT_UCR_ARABIC_PRESENTATION_FORMS_A (1L << 31) /* U+FB50-U+FDFF */ + + /* ulUnicodeRange3 */ + /* --------------- */ + /* Bit 64 Combining Half Marks */ #define TT_UCR_COMBINING_HALF_MARKS (1L << 0) /* U+FE20-U+FE2F */ /* Bit 65 Vertical forms */ @@ -1044,7 +1063,7 @@ FT_BEGIN_HEADER /* Bit 66 Small Form Variants */ #define TT_UCR_SMALL_FORM_VARIANTS (1L << 2) /* U+FE50-U+FE6F */ /* Bit 67 Arabic Presentation Forms-B */ -#define TT_UCR_ARABIC_PRESENTATIONS_B (1L << 3) /* U+FE70-U+FEFE */ +#define TT_UCR_ARABIC_PRESENTATION_FORMS_B (1L << 3) /* U+FE70-U+FEFE */ /* Bit 68 Halfwidth and Fullwidth Forms */ #define TT_UCR_HALFWIDTH_FULLWIDTH_FORMS (1L << 4) /* U+FF00-U+FFEF */ /* Bit 69 Specials */ @@ -1123,6 +1142,10 @@ FT_BEGIN_HEADER #define TT_UCR_TAI_LE (1L << 30) /* U+1950-U+197F */ /* Bit 95 New Tai Lue */ #define TT_UCR_NEW_TAI_LUE (1L << 31) /* U+1980-U+19DF */ + + /* ulUnicodeRange4 */ + /* --------------- */ + /* Bit 96 Buginese */ #define TT_UCR_BUGINESE (1L << 0) /* U+1A00-U+1A1F */ /* Bit 97 Glagolitic */ @@ -1191,47 +1214,23 @@ FT_BEGIN_HEADER /*U+1F000-U+1F02F*/ /* Bit 123-127 Reserved for process-internal usage */ + /* */ - /*************************************************************************/ - /* */ - /* Some compilers have a very limited length of identifiers. */ - /* */ -#if defined( __TURBOC__ ) && __TURBOC__ < 0x0410 || defined( __PACIFIC__ ) -#define HAVE_LIMIT_ON_IDENTS -#endif + /* for backward compatibility with older FreeType versions */ +#define TT_UCR_ARABIC_PRESENTATION_A \ + TT_UCR_ARABIC_PRESENTATION_FORMS_A +#define TT_UCR_ARABIC_PRESENTATION_B \ + TT_UCR_ARABIC_PRESENTATION_FORMS_B - -#ifndef HAVE_LIMIT_ON_IDENTS - - - /*************************************************************************/ - /* */ - /* Here some alias #defines in order to be clearer. */ - /* */ - /* These are not always #defined to stay within the 31~character limit, */ - /* which some compilers have. */ - /* */ - /* Credits go to Dave Hoo <dhoo@flash.net> for pointing out that modern */ - /* Borland compilers (read: from BC++ 3.1 on) can increase this limit. */ - /* If you get a warning with such a compiler, use the -i40 switch. */ - /* */ -#define TT_UCR_ARABIC_PRESENTATION_FORMS_A \ - TT_UCR_ARABIC_PRESENTATIONS_A -#define TT_UCR_ARABIC_PRESENTATION_FORMS_B \ - TT_UCR_ARABIC_PRESENTATIONS_B - -#define TT_UCR_COMBINING_DIACRITICAL_MARKS \ - TT_UCR_COMBINING_DIACRITICS -#define TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB \ - TT_UCR_COMBINING_DIACRITICS_SYMB - - -#endif /* !HAVE_LIMIT_ON_IDENTS */ +#define TT_UCR_COMBINING_DIACRITICS \ + TT_UCR_COMBINING_DIACRITICAL_MARKS +#define TT_UCR_COMBINING_DIACRITICS_SYMB \ + TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB FT_END_HEADER -#endif /* __TTNAMEID_H__ */ +#endif /* TTNAMEID_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/tttables.h b/android/x86_64/include/freetype/tttables.h index e1d8b05e..01821589 100644 --- a/android/x86_64/include/freetype/tttables.h +++ b/android/x86_64/include/freetype/tttables.h @@ -1,27 +1,27 @@ -/***************************************************************************/ -/* */ -/* tttables.h */ -/* */ -/* Basic SFNT/TrueType tables definitions and interface */ -/* (specification only). */ -/* */ -/* Copyright 1996-2005, 2008-2014 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * tttables.h + * + * Basic SFNT/TrueType tables definitions and interface + * (specification only). + * + * Copyright (C) 1996-2019 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 __TTTABLES_H__ -#define __TTTABLES_H__ +#ifndef TTTABLES_H_ +#define TTTABLES_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -33,52 +33,55 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* truetype_tables */ - /* */ - /* <Title> */ - /* TrueType Tables */ - /* */ - /* <Abstract> */ - /* TrueType specific table types and functions. */ - /* */ - /* <Description> */ - /* This section contains the definition of TrueType-specific tables */ - /* as well as some routines used to access and process them. */ - /* */ - /* <Order> */ - /* TT_Header */ - /* TT_HoriHeader */ - /* TT_VertHeader */ - /* TT_OS2 */ - /* TT_Postscript */ - /* TT_PCLT */ - /* TT_MaxProfile */ - /* */ - /* FT_Sfnt_Tag */ - /* FT_Get_Sfnt_Table */ - /* FT_Load_Sfnt_Table */ - /* FT_Sfnt_Table_Info */ - /* */ - /* FT_Get_CMap_Language_ID */ - /* FT_Get_CMap_Format */ - /* */ - /* FT_PARAM_TAG_UNPATENTED_HINTING */ - /* */ - /*************************************************************************/ + /************************************************************************** + * + * @section: + * truetype_tables + * + * @title: + * TrueType Tables + * + * @abstract: + * TrueType-specific table types and functions. + * + * @description: + * This section contains definitions of some basic tables specific to + * TrueType and OpenType as well as some routines used to access and + * process them. + * + * @order: + * TT_Header + * TT_HoriHeader + * TT_VertHeader + * TT_OS2 + * TT_Postscript + * TT_PCLT + * TT_MaxProfile + * + * FT_Sfnt_Tag + * FT_Get_Sfnt_Table + * FT_Load_Sfnt_Table + * FT_Sfnt_Table_Info + * + * FT_Get_CMap_Language_ID + * FT_Get_CMap_Format + * + * FT_PARAM_TAG_UNPATENTED_HINTING + * + */ - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Header */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType font header table. All */ - /* fields follow the TrueType specification. */ - /* */ + /************************************************************************** + * + * @struct: + * TT_Header + * + * @description: + * A structure to model a TrueType font header table. All fields follow + * the OpenType specification. The 64-bit timestamps are stored in + * two-element arrays `Created` and `Modified`, first the upper then + * the lower 32~bits. + */ typedef struct TT_Header_ { FT_Fixed Table_Version; @@ -90,8 +93,8 @@ FT_BEGIN_HEADER FT_UShort Flags; FT_UShort Units_Per_EM; - FT_Long Created [2]; - FT_Long Modified[2]; + FT_ULong Created [2]; + FT_ULong Modified[2]; FT_Short xMin; FT_Short yMin; @@ -108,94 +111,93 @@ FT_BEGIN_HEADER } TT_Header; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_HoriHeader */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType horizontal header, the `hhea' */ - /* table, as well as the corresponding horizontal metrics table, */ - /* i.e., the `hmtx' table. */ - /* */ - /* <Fields> */ - /* Version :: The table version. */ - /* */ - /* Ascender :: The font's ascender, i.e., the distance */ - /* from the baseline to the top-most of all */ - /* glyph points found in the font. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of the */ - /* glyphs found in the font (maybe ASCII). */ - /* */ - /* You should use the `sTypoAscender' field */ - /* of the OS/2 table instead if you want */ - /* the correct one. */ - /* */ - /* Descender :: The font's descender, i.e., the distance */ - /* from the baseline to the bottom-most of */ - /* all glyph points found in the font. It */ - /* is negative. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of the */ - /* glyphs found in the font (maybe ASCII). */ - /* */ - /* You should use the `sTypoDescender' */ - /* field of the OS/2 table instead if you */ - /* want the correct one. */ - /* */ - /* Line_Gap :: The font's line gap, i.e., the distance */ - /* to add to the ascender and descender to */ - /* get the BTB, i.e., the */ - /* baseline-to-baseline distance for the */ - /* font. */ - /* */ - /* advance_Width_Max :: This field is the maximum of all advance */ - /* widths found in the font. It can be */ - /* used to compute the maximum width of an */ - /* arbitrary string of text. */ - /* */ - /* min_Left_Side_Bearing :: The minimum left side bearing of all */ - /* glyphs within the font. */ - /* */ - /* min_Right_Side_Bearing :: The minimum right side bearing of all */ - /* glyphs within the font. */ - /* */ - /* xMax_Extent :: The maximum horizontal extent (i.e., the */ - /* `width' of a glyph's bounding box) for */ - /* all glyphs in the font. */ - /* */ - /* caret_Slope_Rise :: The rise coefficient of the cursor's */ - /* slope of the cursor (slope=rise/run). */ - /* */ - /* caret_Slope_Run :: The run coefficient of the cursor's */ - /* slope. */ - /* */ - /* Reserved :: 8~reserved bytes. */ - /* */ - /* metric_Data_Format :: Always~0. */ - /* */ - /* number_Of_HMetrics :: Number of HMetrics entries in the `hmtx' */ - /* table -- this value can be smaller than */ - /* the total number of glyphs in the font. */ - /* */ - /* long_metrics :: A pointer into the `hmtx' table. */ - /* */ - /* short_metrics :: A pointer into the `hmtx' table. */ - /* */ - /* <Note> */ - /* IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should */ - /* be identical except for the names of their fields, */ - /* which are different. */ - /* */ - /* This ensures that a single function in the `ttload' */ - /* module is able to read both the horizontal and vertical */ - /* headers. */ - /* */ + /************************************************************************** + * + * @struct: + * TT_HoriHeader + * + * @description: + * A structure to model a TrueType horizontal header, the 'hhea' table, + * as well as the corresponding horizontal metrics table, 'hmtx'. + * + * @fields: + * Version :: + * The table version. + * + * Ascender :: + * The font's ascender, i.e., the distance from the baseline to the + * top-most of all glyph points found in the font. + * + * This value is invalid in many fonts, as it is usually set by the + * font designer, and often reflects only a portion of the glyphs found + * in the font (maybe ASCII). + * + * You should use the `sTypoAscender` field of the 'OS/2' table instead + * if you want the correct one. + * + * Descender :: + * The font's descender, i.e., the distance from the baseline to the + * bottom-most of all glyph points found in the font. It is negative. + * + * This value is invalid in many fonts, as it is usually set by the + * font designer, and often reflects only a portion of the glyphs found + * in the font (maybe ASCII). + * + * You should use the `sTypoDescender` field of the 'OS/2' table + * instead if you want the correct one. + * + * Line_Gap :: + * The font's line gap, i.e., the distance to add to the ascender and + * descender to get the BTB, i.e., the baseline-to-baseline distance + * for the font. + * + * advance_Width_Max :: + * This field is the maximum of all advance widths found in the font. + * It can be used to compute the maximum width of an arbitrary string + * of text. + * + * min_Left_Side_Bearing :: + * The minimum left side bearing of all glyphs within the font. + * + * min_Right_Side_Bearing :: + * The minimum right side bearing of all glyphs within the font. + * + * xMax_Extent :: + * The maximum horizontal extent (i.e., the 'width' of a glyph's + * bounding box) for all glyphs in the font. + * + * caret_Slope_Rise :: + * The rise coefficient of the cursor's slope of the cursor + * (slope=rise/run). + * + * caret_Slope_Run :: + * The run coefficient of the cursor's slope. + * + * caret_Offset :: + * The cursor's offset for slanted fonts. + * + * Reserved :: + * 8~reserved bytes. + * + * metric_Data_Format :: + * Always~0. + * + * number_Of_HMetrics :: + * Number of HMetrics entries in the 'hmtx' table -- this value can be + * smaller than the total number of glyphs in the font. + * + * long_metrics :: + * A pointer into the 'hmtx' table. + * + * short_metrics :: + * A pointer into the 'hmtx' table. + * + * @note: + * For an OpenType variation font, the values of the following fields can + * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if + * the font contains an 'MVAR' table: `caret_Slope_Rise`, + * `caret_Slope_Run`, and `caret_Offset`. + */ typedef struct TT_HoriHeader_ { FT_Fixed Version; @@ -217,9 +219,9 @@ FT_BEGIN_HEADER FT_Short metric_Data_Format; FT_UShort number_Of_HMetrics; - /* The following fields are not defined by the TrueType specification */ + /* The following fields are not defined by the OpenType specification */ /* but they are used to connect the metrics header to the relevant */ - /* `HMTX' table. */ + /* 'hmtx' table. */ void* long_metrics; void* short_metrics; @@ -227,101 +229,93 @@ FT_BEGIN_HEADER } TT_HoriHeader; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_VertHeader */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType vertical header, the `vhea' */ - /* table, as well as the corresponding vertical metrics table, i.e., */ - /* the `vmtx' table. */ - /* */ - /* <Fields> */ - /* Version :: The table version. */ - /* */ - /* Ascender :: The font's ascender, i.e., the distance */ - /* from the baseline to the top-most of */ - /* all glyph points found in the font. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of */ - /* the glyphs found in the font (maybe */ - /* ASCII). */ - /* */ - /* You should use the `sTypoAscender' */ - /* field of the OS/2 table instead if you */ - /* want the correct one. */ - /* */ - /* Descender :: The font's descender, i.e., the */ - /* distance from the baseline to the */ - /* bottom-most of all glyph points found */ - /* in the font. It is negative. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of */ - /* the glyphs found in the font (maybe */ - /* ASCII). */ - /* */ - /* You should use the `sTypoDescender' */ - /* field of the OS/2 table instead if you */ - /* want the correct one. */ - /* */ - /* Line_Gap :: The font's line gap, i.e., the distance */ - /* to add to the ascender and descender to */ - /* get the BTB, i.e., the */ - /* baseline-to-baseline distance for the */ - /* font. */ - /* */ - /* advance_Height_Max :: This field is the maximum of all */ - /* advance heights found in the font. It */ - /* can be used to compute the maximum */ - /* height of an arbitrary string of text. */ - /* */ - /* min_Top_Side_Bearing :: The minimum top side bearing of all */ - /* glyphs within the font. */ - /* */ - /* min_Bottom_Side_Bearing :: The minimum bottom side bearing of all */ - /* glyphs within the font. */ - /* */ - /* yMax_Extent :: The maximum vertical extent (i.e., the */ - /* `height' of a glyph's bounding box) for */ - /* all glyphs in the font. */ - /* */ - /* caret_Slope_Rise :: The rise coefficient of the cursor's */ - /* slope of the cursor (slope=rise/run). */ - /* */ - /* caret_Slope_Run :: The run coefficient of the cursor's */ - /* slope. */ - /* */ - /* caret_Offset :: The cursor's offset for slanted fonts. */ - /* This value is `reserved' in vmtx */ - /* version 1.0. */ - /* */ - /* Reserved :: 8~reserved bytes. */ - /* */ - /* metric_Data_Format :: Always~0. */ - /* */ - /* number_Of_HMetrics :: Number of VMetrics entries in the */ - /* `vmtx' table -- this value can be */ - /* smaller than the total number of glyphs */ - /* in the font. */ - /* */ - /* long_metrics :: A pointer into the `vmtx' table. */ - /* */ - /* short_metrics :: A pointer into the `vmtx' table. */ - /* */ - /* <Note> */ - /* IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should */ - /* be identical except for the names of their fields, */ - /* which are different. */ - /* */ - /* This ensures that a single function in the `ttload' */ - /* module is able to read both the horizontal and vertical */ - /* headers. */ - /* */ + /************************************************************************** + * + * @struct: + * TT_VertHeader + * + * @description: + * A structure used to model a TrueType vertical header, the 'vhea' + * table, as well as the corresponding vertical metrics table, 'vmtx'. + * + * @fields: + * Version :: + * The table version. + * + * Ascender :: + * The font's ascender, i.e., the distance from the baseline to the + * top-most of all glyph points found in the font. + * + * This value is invalid in many fonts, as it is usually set by the + * font designer, and often reflects only a portion of the glyphs found + * in the font (maybe ASCII). + * + * You should use the `sTypoAscender` field of the 'OS/2' table instead + * if you want the correct one. + * + * Descender :: + * The font's descender, i.e., the distance from the baseline to the + * bottom-most of all glyph points found in the font. It is negative. + * + * This value is invalid in many fonts, as it is usually set by the + * font designer, and often reflects only a portion of the glyphs found + * in the font (maybe ASCII). + * + * You should use the `sTypoDescender` field of the 'OS/2' table + * instead if you want the correct one. + * + * Line_Gap :: + * The font's line gap, i.e., the distance to add to the ascender and + * descender to get the BTB, i.e., the baseline-to-baseline distance + * for the font. + * + * advance_Height_Max :: + * This field is the maximum of all advance heights found in the font. + * It can be used to compute the maximum height of an arbitrary string + * of text. + * + * min_Top_Side_Bearing :: + * The minimum top side bearing of all glyphs within the font. + * + * min_Bottom_Side_Bearing :: + * The minimum bottom side bearing of all glyphs within the font. + * + * yMax_Extent :: + * The maximum vertical extent (i.e., the 'height' of a glyph's + * bounding box) for all glyphs in the font. + * + * caret_Slope_Rise :: + * The rise coefficient of the cursor's slope of the cursor + * (slope=rise/run). + * + * caret_Slope_Run :: + * The run coefficient of the cursor's slope. + * + * caret_Offset :: + * The cursor's offset for slanted fonts. + * + * Reserved :: + * 8~reserved bytes. + * + * metric_Data_Format :: + * Always~0. + * + * number_Of_VMetrics :: + * Number of VMetrics entries in the 'vmtx' table -- this value can be + * smaller than the total number of glyphs in the font. + * + * long_metrics :: + * A pointer into the 'vmtx' table. + * + * short_metrics :: + * A pointer into the 'vmtx' table. + * + * @note: + * For an OpenType variation font, the values of the following fields can + * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if + * the font contains an 'MVAR' table: `Ascender`, `Descender`, + * `Line_Gap`, `caret_Slope_Rise`, `caret_Slope_Run`, and `caret_Offset`. + */ typedef struct TT_VertHeader_ { FT_Fixed Version; @@ -331,9 +325,9 @@ FT_BEGIN_HEADER FT_UShort advance_Height_Max; /* advance height maximum */ - FT_Short min_Top_Side_Bearing; /* minimum left-sb or top-sb */ - FT_Short min_Bottom_Side_Bearing; /* minimum right-sb or bottom-sb */ - FT_Short yMax_Extent; /* xmax or ymax extents */ + FT_Short min_Top_Side_Bearing; /* minimum top-sb */ + FT_Short min_Bottom_Side_Bearing; /* minimum bottom-sb */ + FT_Short yMax_Extent; /* ymax extents */ FT_Short caret_Slope_Rise; FT_Short caret_Slope_Run; FT_Short caret_Offset; @@ -343,9 +337,9 @@ FT_BEGIN_HEADER FT_Short metric_Data_Format; FT_UShort number_Of_VMetrics; - /* The following fields are not defined by the TrueType specification */ - /* but they're used to connect the metrics header to the relevant */ - /* `HMTX' or `VMTX' table. */ + /* The following fields are not defined by the OpenType specification */ + /* but they are used to connect the metrics header to the relevant */ + /* 'vmtx' table. */ void* long_metrics; void* short_metrics; @@ -353,25 +347,39 @@ FT_BEGIN_HEADER } TT_VertHeader; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_OS2 */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType OS/2 table. All fields */ - /* comply to the OpenType specification. */ - /* */ - /* Note that we now support old Mac fonts that do not include an OS/2 */ - /* table. In this case, the `version' field is always set to 0xFFFF. */ - /* */ + /************************************************************************** + * + * @struct: + * TT_OS2 + * + * @description: + * A structure to model a TrueType 'OS/2' table. All fields comply to + * the OpenType specification. + * + * Note that we now support old Mac fonts that do not include an 'OS/2' + * table. In this case, the `version` field is always set to 0xFFFF. + * + * @note: + * For an OpenType variation font, the values of the following fields can + * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if + * the font contains an 'MVAR' table: `sCapHeight`, `sTypoAscender`, + * `sTypoDescender`, `sTypoLineGap`, `sxHeight`, `usWinAscent`, + * `usWinDescent`, `yStrikeoutPosition`, `yStrikeoutSize`, + * `ySubscriptXOffset`, `ySubScriptXSize`, `ySubscriptYOffset`, + * `ySubscriptYSize`, `ySuperscriptXOffset`, `ySuperscriptXSize`, + * `ySuperscriptYOffset`, and `ySuperscriptYSize`. + * + * Possible values for bits in the `ulUnicodeRangeX` fields are given by + * the @TT_UCR_XXX macros. + */ + typedef struct TT_OS2_ { FT_UShort version; /* 0x0001 - more or 0xFFFF */ FT_Short xAvgCharWidth; FT_UShort usWeightClass; FT_UShort usWidthClass; - FT_Short fsType; + FT_UShort fsType; FT_Short ySubscriptXSize; FT_Short ySubscriptYSize; FT_Short ySubscriptXOffset; @@ -423,17 +431,23 @@ FT_BEGIN_HEADER } TT_OS2; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Postscript */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType PostScript table. All fields */ - /* comply to the TrueType specification. This structure does not */ - /* reference the PostScript glyph names, which can be nevertheless */ - /* accessed with the `ttpost' module. */ - /* */ + /************************************************************************** + * + * @struct: + * TT_Postscript + * + * @description: + * A structure to model a TrueType 'post' table. All fields comply to + * the OpenType specification. This structure does not reference a + * font's PostScript glyph names; use @FT_Get_Glyph_Name to retrieve + * them. + * + * @note: + * For an OpenType variation font, the values of the following fields can + * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if + * the font contains an 'MVAR' table: `underlinePosition` and + * `underlineThickness`. + */ typedef struct TT_Postscript_ { FT_Fixed FormatType; @@ -446,21 +460,21 @@ FT_BEGIN_HEADER FT_ULong minMemType1; FT_ULong maxMemType1; - /* Glyph names follow in the file, but we don't */ - /* load them by default. See the ttpost.c file. */ + /* Glyph names follow in the 'post' table, but we don't */ + /* load them by default. */ } TT_Postscript; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_PCLT */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType PCLT table. All fields */ - /* comply to the TrueType specification. */ - /* */ + /************************************************************************** + * + * @struct: + * TT_PCLT + * + * @description: + * A structure to model a TrueType 'PCLT' table. All fields comply to + * the OpenType specification. + */ typedef struct TT_PCLT_ { FT_Fixed Version; @@ -482,72 +496,75 @@ FT_BEGIN_HEADER } TT_PCLT; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_MaxProfile */ - /* */ - /* <Description> */ - /* The maximum profile is a table containing many max values, which */ - /* can be used to pre-allocate arrays. This ensures that no memory */ - /* allocation occurs during a glyph load. */ - /* */ - /* <Fields> */ - /* version :: The version number. */ - /* */ - /* numGlyphs :: The number of glyphs in this TrueType */ - /* font. */ - /* */ - /* maxPoints :: The maximum number of points in a */ - /* non-composite TrueType glyph. See also */ - /* the structure element */ - /* `maxCompositePoints'. */ - /* */ - /* maxContours :: The maximum number of contours in a */ - /* non-composite TrueType glyph. See also */ - /* the structure element */ - /* `maxCompositeContours'. */ - /* */ - /* maxCompositePoints :: The maximum number of points in a */ - /* composite TrueType glyph. See also the */ - /* structure element `maxPoints'. */ - /* */ - /* maxCompositeContours :: The maximum number of contours in a */ - /* composite TrueType glyph. See also the */ - /* structure element `maxContours'. */ - /* */ - /* maxZones :: The maximum number of zones used for */ - /* glyph hinting. */ - /* */ - /* maxTwilightPoints :: The maximum number of points in the */ - /* twilight zone used for glyph hinting. */ - /* */ - /* maxStorage :: The maximum number of elements in the */ - /* storage area used for glyph hinting. */ - /* */ - /* maxFunctionDefs :: The maximum number of function */ - /* definitions in the TrueType bytecode for */ - /* this font. */ - /* */ - /* maxInstructionDefs :: The maximum number of instruction */ - /* definitions in the TrueType bytecode for */ - /* this font. */ - /* */ - /* maxStackElements :: The maximum number of stack elements used */ - /* during bytecode interpretation. */ - /* */ - /* maxSizeOfInstructions :: The maximum number of TrueType opcodes */ - /* used for glyph hinting. */ - /* */ - /* maxComponentElements :: The maximum number of simple (i.e., non- */ - /* composite) glyphs in a composite glyph. */ - /* */ - /* maxComponentDepth :: The maximum nesting depth of composite */ - /* glyphs. */ - /* */ - /* <Note> */ - /* This structure is only used during font loading. */ - /* */ + /************************************************************************** + * + * @struct: + * TT_MaxProfile + * + * @description: + * The maximum profile ('maxp') table contains many max values, which can + * be used to pre-allocate arrays for speeding up glyph loading and + * hinting. + * + * @fields: + * version :: + * The version number. + * + * numGlyphs :: + * The number of glyphs in this TrueType font. + * + * maxPoints :: + * The maximum number of points in a non-composite TrueType glyph. See + * also `maxCompositePoints`. + * + * maxContours :: + * The maximum number of contours in a non-composite TrueType glyph. + * See also `maxCompositeContours`. + * + * maxCompositePoints :: + * The maximum number of points in a composite TrueType glyph. See + * also `maxPoints`. + * + * maxCompositeContours :: + * The maximum number of contours in a composite TrueType glyph. See + * also `maxContours`. + * + * maxZones :: + * The maximum number of zones used for glyph hinting. + * + * maxTwilightPoints :: + * The maximum number of points in the twilight zone used for glyph + * hinting. + * + * maxStorage :: + * The maximum number of elements in the storage area used for glyph + * hinting. + * + * maxFunctionDefs :: + * The maximum number of function definitions in the TrueType bytecode + * for this font. + * + * maxInstructionDefs :: + * The maximum number of instruction definitions in the TrueType + * bytecode for this font. + * + * maxStackElements :: + * The maximum number of stack elements used during bytecode + * interpretation. + * + * maxSizeOfInstructions :: + * The maximum number of TrueType opcodes used for glyph hinting. + * + * maxComponentElements :: + * The maximum number of simple (i.e., non-composite) glyphs in a + * composite glyph. + * + * maxComponentDepth :: + * The maximum nesting depth of composite glyphs. + * + * @note: + * This structure is only used during font loading. + */ typedef struct TT_MaxProfile_ { FT_Fixed version; @@ -569,30 +586,38 @@ FT_BEGIN_HEADER } TT_MaxProfile; - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Sfnt_Tag */ - /* */ - /* <Description> */ - /* An enumeration used to specify the index of an SFNT table. */ - /* Used in the @FT_Get_Sfnt_Table API function. */ - /* */ - /* <Values> */ - /* FT_SFNT_HEAD :: To access the font's @TT_Header structure. */ - /* */ - /* FT_SFNT_MAXP :: To access the font's @TT_MaxProfile structure. */ - /* */ - /* FT_SFNT_OS2 :: To access the font's @TT_OS2 structure. */ - /* */ - /* FT_SFNT_HHEA :: To access the font's @TT_HoriHeader structure. */ - /* */ - /* FT_SFNT_VHEA :: To access the font's @TT_VertHeader struture. */ - /* */ - /* FT_SFNT_POST :: To access the font's @TT_Postscript structure. */ - /* */ - /* FT_SFNT_PCLT :: To access the font's @TT_PCLT structure. */ - /* */ + /************************************************************************** + * + * @enum: + * FT_Sfnt_Tag + * + * @description: + * An enumeration to specify indices of SFNT tables loaded and parsed by + * FreeType during initialization of an SFNT font. Used in the + * @FT_Get_Sfnt_Table API function. + * + * @values: + * FT_SFNT_HEAD :: + * To access the font's @TT_Header structure. + * + * FT_SFNT_MAXP :: + * To access the font's @TT_MaxProfile structure. + * + * FT_SFNT_OS2 :: + * To access the font's @TT_OS2 structure. + * + * FT_SFNT_HHEA :: + * To access the font's @TT_HoriHeader structure. + * + * FT_SFNT_VHEA :: + * To access the font's @TT_VertHeader structure. + * + * FT_SFNT_POST :: + * To access the font's @TT_Postscript structure. + * + * FT_SFNT_PCLT :: + * To access the font's @TT_PCLT structure. + */ typedef enum FT_Sfnt_Tag_ { FT_SFNT_HEAD, @@ -607,7 +632,7 @@ FT_BEGIN_HEADER } FT_Sfnt_Tag; - /* these constants are deprecated; use the corresponding `FT_Sfnt_Tag' */ + /* these constants are deprecated; use the corresponding `FT_Sfnt_Tag` */ /* values instead */ #define ft_sfnt_head FT_SFNT_HEAD #define ft_sfnt_maxp FT_SFNT_MAXP @@ -618,113 +643,115 @@ FT_BEGIN_HEADER #define ft_sfnt_pclt FT_SFNT_PCLT - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Sfnt_Table */ - /* */ - /* <Description> */ - /* Return a pointer to a given SFNT table within a face. */ - /* */ - /* <Input> */ - /* face :: A handle to the source. */ - /* */ - /* tag :: The index of the SFNT table. */ - /* */ - /* <Return> */ - /* A type-less pointer to the table. This will be~0 in case of */ - /* error, or if the corresponding table was not found *OR* loaded */ - /* from the file. */ - /* */ - /* Use a typecast according to `tag' to access the structure */ - /* elements. */ - /* */ - /* <Note> */ - /* The table is owned by the face object and disappears with it. */ - /* */ - /* This function is only useful to access SFNT tables that are loaded */ - /* by the sfnt, truetype, and opentype drivers. See @FT_Sfnt_Tag for */ - /* a list. */ - /* */ - /* Here an example how to access the `vhea' table: */ - /* */ - /* { */ - /* TT_VertHeader* vert_header; */ - /* */ - /* */ - /* vert_header = */ - /* (TT_VertHeader*)FT_Get_Sfnt_Table( face, FT_SFNT_VHEA ); */ - /* } */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_Sfnt_Table + * + * @description: + * Return a pointer to a given SFNT table stored within a face. + * + * @input: + * face :: + * A handle to the source. + * + * tag :: + * The index of the SFNT table. + * + * @return: + * A type-less pointer to the table. This will be `NULL` in case of + * error, or if the corresponding table was not found **OR** loaded from + * the file. + * + * Use a typecast according to `tag` to access the structure elements. + * + * @note: + * The table is owned by the face object and disappears with it. + * + * This function is only useful to access SFNT tables that are loaded by + * the sfnt, truetype, and opentype drivers. See @FT_Sfnt_Tag for a + * list. + * + * @example: + * Here is an example demonstrating access to the 'vhea' table. + * + * ``` + * TT_VertHeader* vert_header; + * + * + * vert_header = + * (TT_VertHeader*)FT_Get_Sfnt_Table( face, FT_SFNT_VHEA ); + * ``` + */ FT_EXPORT( void* ) FT_Get_Sfnt_Table( FT_Face face, FT_Sfnt_Tag tag ); - /************************************************************************** - * - * @function: - * FT_Load_Sfnt_Table - * - * @description: - * Load any font table into client memory. - * - * @input: - * face :: - * A handle to the source face. - * - * tag :: - * The four-byte tag of the table to load. Use the value~0 if you want - * to access the whole font file. Otherwise, you can use one of the - * definitions found in the @FT_TRUETYPE_TAGS_H file, or forge a new - * one with @FT_MAKE_TAG. - * - * offset :: - * The starting offset in the table (or file if tag == 0). - * - * @output: - * buffer :: - * The target buffer address. The client must ensure that the memory - * array is big enough to hold the data. - * - * @inout: - * length :: - * If the `length' parameter is NULL, then try to load the whole table. - * Return an error code if it fails. - * - * Else, if `*length' is~0, exit immediately while returning the - * table's (or file) full size in it. - * - * Else the number of bytes to read from the table or file, from the - * starting offset. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If you need to determine the table's length you should first call this - * function with `*length' set to~0, as in the following example: - * - * { - * FT_ULong length = 0; - * - * - * error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length ); - * if ( error ) { ... table does not exist ... } - * - * buffer = malloc( length ); - * if ( buffer == NULL ) { ... not enough memory ... } - * - * error = FT_Load_Sfnt_Table( face, tag, 0, buffer, &length ); - * if ( error ) { ... could not load table ... } - * } - * - * Note that structures like @TT_Header or @TT_OS2 can't be used with - * this function; they are limited to @FT_Get_Sfnt_Table. Reason is that - * those structures depend on the processor architecture, with varying - * size (e.g. 32bit vs. 64bit) or order (big endian vs. little endian). - * - */ + /************************************************************************** + * + * @function: + * FT_Load_Sfnt_Table + * + * @description: + * Load any SFNT font table into client memory. + * + * @input: + * face :: + * A handle to the source face. + * + * tag :: + * The four-byte tag of the table to load. Use value~0 if you want to + * access the whole font file. Otherwise, you can use one of the + * definitions found in the @FT_TRUETYPE_TAGS_H file, or forge a new + * one with @FT_MAKE_TAG. + * + * offset :: + * The starting offset in the table (or file if tag~==~0). + * + * @output: + * buffer :: + * The target buffer address. The client must ensure that the memory + * array is big enough to hold the data. + * + * @inout: + * length :: + * If the `length` parameter is `NULL`, try to load the whole table. + * Return an error code if it fails. + * + * Else, if `*length` is~0, exit immediately while returning the + * table's (or file) full size in it. + * + * Else the number of bytes to read from the table or file, from the + * starting offset. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If you need to determine the table's length you should first call this + * function with `*length` set to~0, as in the following example: + * + * ``` + * FT_ULong length = 0; + * + * + * error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length ); + * if ( error ) { ... table does not exist ... } + * + * buffer = malloc( length ); + * if ( buffer == NULL ) { ... not enough memory ... } + * + * error = FT_Load_Sfnt_Table( face, tag, 0, buffer, &length ); + * if ( error ) { ... could not load table ... } + * ``` + * + * Note that structures like @TT_Header or @TT_OS2 can't be used with + * this function; they are limited to @FT_Get_Sfnt_Table. Reason is that + * those structures depend on the processor architecture, with varying + * size (e.g. 32bit vs. 64bit) or order (big endian vs. little endian). + * + */ FT_EXPORT( FT_Error ) FT_Load_Sfnt_Table( FT_Face face, FT_ULong tag, @@ -733,41 +760,41 @@ FT_BEGIN_HEADER FT_ULong* length ); - /************************************************************************** - * - * @function: - * FT_Sfnt_Table_Info - * - * @description: - * Return information on an SFNT table. - * - * @input: - * face :: - * A handle to the source face. - * - * table_index :: - * The index of an SFNT table. The function returns - * FT_Err_Table_Missing for an invalid value. - * - * @inout: - * tag :: - * The name tag of the SFNT table. If the value is NULL, `table_index' - * is ignored, and `length' returns the number of SFNT tables in the - * font. - * - * @output: - * length :: - * The length of the SFNT table (or the number of SFNT tables, depending - * on `tag'). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * While parsing fonts, FreeType handles SFNT tables with length zero as - * missing. - * - */ + /************************************************************************** + * + * @function: + * FT_Sfnt_Table_Info + * + * @description: + * Return information on an SFNT table. + * + * @input: + * face :: + * A handle to the source face. + * + * table_index :: + * The index of an SFNT table. The function returns + * FT_Err_Table_Missing for an invalid value. + * + * @inout: + * tag :: + * The name tag of the SFNT table. If the value is `NULL`, + * `table_index` is ignored, and `length` returns the number of SFNT + * tables in the font. + * + * @output: + * length :: + * The length of the SFNT table (or the number of SFNT tables, + * depending on `tag`). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * While parsing fonts, FreeType handles SFNT tables with length zero as + * missing. + * + */ FT_EXPORT( FT_Error ) FT_Sfnt_Table_Info( FT_Face face, FT_UInt table_index, @@ -775,46 +802,46 @@ FT_BEGIN_HEADER FT_ULong *length ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_CMap_Language_ID */ - /* */ - /* <Description> */ - /* Return TrueType/sfnt specific cmap language ID. Definitions of */ - /* language ID values are in `ttnameid.h'. */ - /* */ - /* <Input> */ - /* charmap :: */ - /* The target charmap. */ - /* */ - /* <Return> */ - /* The language ID of `charmap'. If `charmap' doesn't belong to a */ - /* TrueType/sfnt face, just return~0 as the default value. */ - /* */ - /* For a format~14 cmap (to access Unicode IVS), the return value is */ - /* 0xFFFFFFFF. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_CMap_Language_ID + * + * @description: + * Return cmap language ID as specified in the OpenType standard. + * Definitions of language ID values are in file @FT_TRUETYPE_IDS_H. + * + * @input: + * charmap :: + * The target charmap. + * + * @return: + * The language ID of `charmap`. If `charmap` doesn't belong to an SFNT + * face, just return~0 as the default value. + * + * For a format~14 cmap (to access Unicode IVS), the return value is + * 0xFFFFFFFF. + */ FT_EXPORT( FT_ULong ) FT_Get_CMap_Language_ID( FT_CharMap charmap ); - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_CMap_Format */ - /* */ - /* <Description> */ - /* Return TrueType/sfnt specific cmap format. */ - /* */ - /* <Input> */ - /* charmap :: */ - /* The target charmap. */ - /* */ - /* <Return> */ - /* The format of `charmap'. If `charmap' doesn't belong to a */ - /* TrueType/sfnt face, return -1. */ - /* */ + /************************************************************************** + * + * @function: + * FT_Get_CMap_Format + * + * @description: + * Return the format of an SFNT 'cmap' table. + * + * @input: + * charmap :: + * The target charmap. + * + * @return: + * The format of `charmap`. If `charmap` doesn't belong to an SFNT face, + * return -1. + */ FT_EXPORT( FT_Long ) FT_Get_CMap_Format( FT_CharMap charmap ); @@ -823,7 +850,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTTABLES_H__ */ +#endif /* TTTABLES_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/tttags.h b/android/x86_64/include/freetype/tttags.h index d59aa19a..aeb4ef6e 100644 --- a/android/x86_64/include/freetype/tttags.h +++ b/android/x86_64/include/freetype/tttags.h @@ -1,26 +1,26 @@ -/***************************************************************************/ -/* */ -/* tttags.h */ -/* */ -/* Tags for TrueType and OpenType tables (specification only). */ -/* */ -/* Copyright 1996-2001, 2004, 2005, 2007, 2008, 2013 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. */ -/* */ -/***************************************************************************/ +/**************************************************************************** + * + * tttags.h + * + * Tags for TrueType and OpenType tables (specification only). + * + * Copyright (C) 1996-2019 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 __TTAGS_H__ -#define __TTAGS_H__ +#ifndef TTAGS_H_ +#define TTAGS_H_ -#include <ft2build.h> +#include "ft2build.h" #include FT_FREETYPE_H #ifdef FREETYPE_H @@ -43,8 +43,11 @@ FT_BEGIN_HEADER #define TTAG_CBDT FT_MAKE_TAG( 'C', 'B', 'D', 'T' ) #define TTAG_CBLC FT_MAKE_TAG( 'C', 'B', 'L', 'C' ) #define TTAG_CFF FT_MAKE_TAG( 'C', 'F', 'F', ' ' ) +#define TTAG_CFF2 FT_MAKE_TAG( 'C', 'F', 'F', '2' ) #define TTAG_CID FT_MAKE_TAG( 'C', 'I', 'D', ' ' ) #define TTAG_cmap FT_MAKE_TAG( 'c', 'm', 'a', 'p' ) +#define TTAG_COLR FT_MAKE_TAG( 'C', 'O', 'L', 'R' ) +#define TTAG_CPAL FT_MAKE_TAG( 'C', 'P', 'A', 'L' ) #define TTAG_cvar FT_MAKE_TAG( 'c', 'v', 'a', 'r' ) #define TTAG_cvt FT_MAKE_TAG( 'c', 'v', 't', ' ' ) #define TTAG_DSIG FT_MAKE_TAG( 'D', 'S', 'I', 'G' ) @@ -61,6 +64,7 @@ FT_BEGIN_HEADER #define TTAG_GPOS FT_MAKE_TAG( 'G', 'P', 'O', 'S' ) #define TTAG_GSUB FT_MAKE_TAG( 'G', 'S', 'U', 'B' ) #define TTAG_gvar FT_MAKE_TAG( 'g', 'v', 'a', 'r' ) +#define TTAG_HVAR FT_MAKE_TAG( 'H', 'V', 'A', 'R' ) #define TTAG_hdmx FT_MAKE_TAG( 'h', 'd', 'm', 'x' ) #define TTAG_head FT_MAKE_TAG( 'h', 'e', 'a', 'd' ) #define TTAG_hhea FT_MAKE_TAG( 'h', 'h', 'e', 'a' ) @@ -79,6 +83,7 @@ FT_BEGIN_HEADER #define TTAG_MMSD FT_MAKE_TAG( 'M', 'M', 'S', 'D' ) #define TTAG_mort FT_MAKE_TAG( 'm', 'o', 'r', 't' ) #define TTAG_morx FT_MAKE_TAG( 'm', 'o', 'r', 'x' ) +#define TTAG_MVAR FT_MAKE_TAG( 'M', 'V', 'A', 'R' ) #define TTAG_name FT_MAKE_TAG( 'n', 'a', 'm', 'e' ) #define TTAG_opbd FT_MAKE_TAG( 'o', 'p', 'b', 'd' ) #define TTAG_OS2 FT_MAKE_TAG( 'O', 'S', '/', '2' ) @@ -100,12 +105,19 @@ FT_BEGIN_HEADER #define TTAG_VDMX FT_MAKE_TAG( 'V', 'D', 'M', 'X' ) #define TTAG_vhea FT_MAKE_TAG( 'v', 'h', 'e', 'a' ) #define TTAG_vmtx FT_MAKE_TAG( 'v', 'm', 't', 'x' ) +#define TTAG_VVAR FT_MAKE_TAG( 'V', 'V', 'A', 'R' ) #define TTAG_wOFF FT_MAKE_TAG( 'w', 'O', 'F', 'F' ) +/* used by "Keyboard.dfont" on legacy Mac OS X */ +#define TTAG_0xA5kbd FT_MAKE_TAG( 0xA5, 'k', 'b', 'd' ) + +/* used by "LastResort.dfont" on legacy Mac OS X */ +#define TTAG_0xA5lst FT_MAKE_TAG( 0xA5, 'l', 's', 't' ) + FT_END_HEADER -#endif /* __TTAGS_H__ */ +#endif /* TTAGS_H_ */ /* END */ diff --git a/android/x86_64/include/freetype/ttunpat.h b/android/x86_64/include/freetype/ttunpat.h deleted file mode 100644 index bf53ddd5..00000000 --- a/android/x86_64/include/freetype/ttunpat.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************/ -/* */ -/* ttunpat.h */ -/* */ -/* Definitions for the unpatented TrueType hinting system */ -/* */ -/* Copyright 2003, 2006 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* Written by Graham Asher <graham.asher@btinternet.com> */ -/* */ -/* 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 __TTUNPAT_H__ -#define __TTUNPAT_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 - - - /*************************************************************************** - * - * @constant: - * FT_PARAM_TAG_UNPATENTED_HINTING - * - * @description: - * 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 /* __TTUNPAT_H__ */ - - -/* END */ diff --git a/android/x86_64/libfreetype.a b/android/x86_64/libfreetype.a index 396f2064a7dbcbb429d899ee99edb7e69d2417be..f93bcf076fc545e2d92ef29b23cbafbf028782b5 100644 GIT binary patch literal 1111494 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%0A{UfK8 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 literal 1006390 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ҹ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 Sr1}wrmDnatUv2ne{hul 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νp(*IO57slR|u@8bkb-lM0|06 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 g1w!)MM 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%0DSd`?~$I zAzw~2`KP|?!0);ad^1G80q8TGB{GM(Vc`B-`jf7c4r2?U#<xJ+9V{KvHOY^#=N<6> z%0Kk?A)^z4-!6l%U<r}Wx5EEi#=oHqPVn!R;jebXFJ|~L*TLWFhF{6>cU=enGdKJu zhX37l@YCJ!I~jidb@1!l@PB3aZP&p+>W2Rt!|%He{(u|)8HTSUgoK|vJ#S=iPX9{` z|Bmb6k9NaXF?lfII{0mj#d-R?eM2<=ULFgBb9~;uYp#R;h8sR_-?y%V|FIiBZ{M%4 zgP-Dt&)YZWI{4LY_`H3auY-Ts4WGAf?{)D1bi?QE%S8rh26=xO#6$_FCvV?d8QdLz zq#HhO-*MN$-|Z!}qr6}5VRD?LPjnEM19dVu(fb^J1Je_{oI99ay4wwY7vs0-Zt#zp zzMAg_=lEOQ;8$2bp{1w#hv;rD1GyXn@rMX}Iw=_Z_;(KH`ij(%{5YKJs{jEi!MTDN z<p$?^GDrp|@{s=?WFC^f0B7ZSMh3r`BZC_ugA@78f3eKN%gN!pWN?xWum4^dT%Jw< zgOg%#+m3)HyTLiV=D5K*JzsT$b9(af@bo!7e{{p=^el9Pb9%PA!B;UpIPC`Kb{2}V zhd3>;b_uhFA-V{yEyM`RhtVj^5fW~2glP5FP(w(#2^PB9hjBK8NjuJAh=%o5_ox;E zg_!bKCRo5htL;`BEc23SC$dN=k4RRv0btRZp#WxBt~MD$!0LuYRKO<lyQFv_W^EL# zwAqC+*&VPzrM2lp><(eliR384Xi<gK2pkGz)3Wl5K)X>NA_ia~js>FZI+9I@-C$c| z)EQuE5z?jp5K@Z}6HKl+qhN{CrZYz&N(jByp(Va?ux?D2u?^#%T(ER36bEKx91|da zvOE|9i=D6n0xNm|5{oJVC31wU(VCnFmb4)v1Qy%P23~I{DJ<e!?GZwGN$Jc6GoZja z8mAv=GFD`O(dv+ee_I&Yh`?gN;=ajb)uHiA0o6WU2U{4Tjao~L(K3D(%(j}WT0KCm zI;(x6er)vENjCjhXa`5kSd%f-KGts2!AA>_K6E^^0~sZajec-y$kfT>Nl_dzQHJpZ zhZTvt<8){o5YC|u1vkblxUe|^s0XzbT=IFsxCx9;|F2FYbR;*CCnWj2FOdWYy~E^* z5P&}v%0mcEWiY0G#1GS%?*JR8@DIG-^DwCgGZ8pQaAVapr%LvbbWc(gE`PXO-3UN} zIZ=ou{rR2cOLUL?$IH*%$H7DV?lc(8#xaTV$l!M`|HBaZ-^xG7o96H!bp&xlOdj|0 zzrxDzMrKsV@{d33S^)R_P4Jmy5#)-7EDD<OV{UL(9I+ke1AxQis6Vp!av1Tu<9<Zr zN4b|jk;iw7!0XS`eGk6>8~tL*zzlw!43V@yF%fut-u`yT*gbC&B@xs3jqD={kvQ)0 F{|Ay{VQl~a