[GSoC] include/*.*, devel/*.*: Convert block comments to `light' style.

This second and final monster commit was created by applying Nikhil's
scripts `docconverter.py' and `markify.py' to all C header and source files,
followed up by minor manual clean-up.

No change in functionality, of course.

I used commit f7419907bc6044b9b7057f9789866426c804ba82 from
https://github.com/nikramakrishnan/freetype-docs.git.
This commit is contained in:
Werner Lemberg 2018-06-03 22:00:42 +02:00
parent dc170dea33
commit f999375a9a
94 changed files with 15741 additions and 14689 deletions

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ft2build.h */
/* */
/* FreeType 2 build and setup macros (development version). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ft2build.h
*
* FreeType 2 build and setup macros (development version).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*

File diff suppressed because it is too large Load Diff

View File

@ -1,39 +1,39 @@
/***************************************************************************/
/* */
/* ftconfig.h */
/* */
/* ANSI-specific configuration file (specification only). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftconfig.h
*
* ANSI-specific configuration file (specification only).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*************************************************************************/
/* */
/* 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/<system>', and contains */
/* system-specific files that are always included first when building */
/* the library. */
/* */
/* This ANSI version should stay in `include/config/'. */
/* */
/*************************************************************************/
/**************************************************************************
*
* 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/<system>', and contains
* system-specific files that are always included first when building
* the library.
*
* This ANSI version should stay in `include/config/'.
*
*/
#ifndef FTCONFIG_H_
#define FTCONFIG_H_
@ -46,16 +46,16 @@
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/<system>' 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/<system>' directory, and edit it to port the engine.
*
*/
/* There are systems (like the Texas Instruments 'C54x) where a `char' */
@ -102,24 +102,24 @@ FT_BEGIN_HEADER
#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, */
@ -151,33 +151,33 @@ FT_BEGIN_HEADER
#endif
/*************************************************************************/
/* */
/* <Section> */
/* basic_types */
/* */
/*************************************************************************/
/**************************************************************************
*
* @Section:
* basic_types
*
*/
/*************************************************************************/
/* */
/* <Type> */
/* FT_Int16 */
/* */
/* <Description> */
/* 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;
/*************************************************************************/
/* */
/* <Type> */
/* FT_UInt16 */
/* */
/* <Description> */
/* 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;
/* */
@ -186,50 +186,50 @@ FT_BEGIN_HEADER
/* this #if 0 ... #endif clause is for documentation purposes */
#if 0
/*************************************************************************/
/* */
/* <Type> */
/* FT_Int32 */
/* */
/* <Description> */
/* 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;
/*************************************************************************/
/* */
/* <Type> */
/* 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;
/*************************************************************************/
/* */
/* <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). */
/* */
/**************************************************************************
*
* @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;
/*************************************************************************/
/* */
/* <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). */
/* */
/**************************************************************************
*
* @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,13 +274,13 @@ FT_BEGIN_HEADER
#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. */
/* */
/**************************************************************************
*
* 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( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
@ -342,11 +342,11 @@ FT_BEGIN_HEADER
#endif
/*************************************************************************/
/* */
/* miscellaneous */
/* */
/*************************************************************************/
/**************************************************************************
*
* miscellaneous
*
*/
#define FT_BEGIN_STMNT do {

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftheader.h */
/* */
/* Build macros of the FreeType 2 library. */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftheader.h
*
* Build macros of the FreeType 2 library.
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTHEADER_H_
#define FTHEADER_H_
@ -55,43 +55,43 @@
#endif
/*************************************************************************/
/* */
/* Aliases for the FreeType 2 public and configuration files. */
/* */
/*************************************************************************/
/**************************************************************************
*
* Aliases for the FreeType 2 public and configuration files.
*
*/
/*************************************************************************/
/* */
/* <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. */
/* */
/*************************************************************************/
/**************************************************************************
*
* @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 */

File diff suppressed because it is too large Load Diff

View File

@ -1,31 +1,31 @@
/***************************************************************************/
/* */
/* ftstdlib.h */
/* */
/* ANSI-specific library and header configuration file (specification */
/* only). */
/* */
/* Copyright 2002-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftstdlib.h
*
* ANSI-specific library and header configuration file (specification
* only).
*
* Copyright 2002-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*************************************************************************/
/* */
/* 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_
@ -37,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 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.
*
*/
#include <limits.h>
@ -68,11 +68,11 @@
#define FT_ULONG_MAX ULONG_MAX
/**********************************************************************/
/* */
/* character and string processing */
/* */
/**********************************************************************/
/***********************************************************************
*
* character and string processing
*
*/
#include <string.h>
@ -92,11 +92,11 @@
#define ft_strstr strstr
/**********************************************************************/
/* */
/* file handling */
/* */
/**********************************************************************/
/***********************************************************************
*
* file handling
*
*/
#include <stdio.h>
@ -110,11 +110,11 @@
#define ft_sprintf sprintf
/**********************************************************************/
/* */
/* sorting */
/* */
/**********************************************************************/
/***********************************************************************
*
* sorting
*
*/
#include <stdlib.h>
@ -122,11 +122,11 @@
#define ft_qsort qsort
/**********************************************************************/
/* */
/* memory allocation */
/* */
/**********************************************************************/
/***********************************************************************
*
* memory allocation
*
*/
#define ft_scalloc calloc
@ -135,22 +135,22 @@
#define ft_srealloc realloc
/**********************************************************************/
/* */
/* miscellaneous */
/* */
/**********************************************************************/
/***********************************************************************
*
* miscellaneous
*
*/
#define ft_strtol strtol
#define ft_getenv getenv
/**********************************************************************/
/* */
/* execution control */
/* */
/**********************************************************************/
/***********************************************************************
*
* execution control
*
*/
#include <setjmp.h>

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftadvanc.h */
/* */
/* Quick computation of advance widths (specification only). */
/* */
/* Copyright 2008-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftadvanc.h
*
* Quick computation of advance widths (specification only).
*
* Copyright 2008-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTADVANC_H_
@ -56,68 +56,72 @@ 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. */
/* */
/**************************************************************************
*
* @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 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 +129,55 @@ 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,

View File

@ -1,30 +1,30 @@
/***************************************************************************/
/* */
/* ftbbox.h */
/* */
/* FreeType exact bbox computation (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftbbox.h
*
* FreeType exact bbox computation (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*************************************************************************/
/* */
/* 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_
@ -44,43 +44,45 @@
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 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. */
/* */
/**************************************************************************
*
* @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 );

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftbdf.h */
/* */
/* FreeType API for accessing BDF-specific strings (specification). */
/* */
/* Copyright 2002-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftbdf.h
*
* FreeType API for accessing BDF-specific strings (specification).
*
* Copyright 2002-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTBDF_H_
@ -32,22 +32,22 @@
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.
*
*/
/**********************************************************************
@ -169,12 +169,15 @@ FT_BEGIN_HEADER
* Retrieve a BDF property from a BDF or PCF font file.
*
* @input:
* face :: A handle to the input face.
* face ::
* A handle to the input face.
*
* name :: The property name.
* name ::
* The property name.
*
* @output:
* aproperty :: The property.
* aproperty ::
* The property.
*
* @return:
* FreeType error code. 0~means success.

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftbitmap.h */
/* */
/* FreeType utility functions for bitmaps (specification). */
/* */
/* Copyright 2004-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftbitmap.h
*
* FreeType utility functions for bitmaps (specification).
*
* Copyright 2004-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTBITMAP_H_
@ -33,39 +33,40 @@
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.
* Note that none of the functions changes the bitmap's `flow' (as
* indicated by the sign of the `pitch' field in `FT_Bitmap').
*
*/
/*************************************************************************/
/* */
/* <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'. */
/* */
/**************************************************************************
*
* @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 );
@ -75,66 +76,73 @@ FT_BEGIN_HEADER
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.
*/
FT_EXPORT( FT_Error )
FT_Bitmap_Copy( FT_Library library,
const FT_Bitmap *source,
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,
@ -142,39 +150,43 @@ 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 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. */
/* */
/**************************************************************************
*
* @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.
*/
FT_EXPORT( FT_Error )
FT_Bitmap_Convert( FT_Library library,
const FT_Bitmap *source,
@ -182,48 +194,51 @@ 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_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 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. */
/* */
/**************************************************************************
*
* @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 );

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftbzip2.h */
/* */
/* Bzip2-compressed stream support. */
/* */
/* Copyright 2010-2018 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 2010-2018 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_
@ -31,21 +31,21 @@
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.
*
*/
/************************************************************************

File diff suppressed because it is too large Load Diff

View File

@ -1,139 +1,139 @@
/***************************************************************************/
/* */
/* 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
* 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 */
/* t1_cid_driver */
/* tt_driver */
/* pcf_driver */
/* properties */
/* parameter_tags */
/* */
/***************************************************************************/
/****************************************************************************
*
* @Chapter:
* module_specific
*
* @Title:
* Controlling FreeType Modules
*
* @Sections:
* auto_hinter
* cff_driver
* t1_cid_driver
* tt_driver
* pcf_driver
* properties
* parameter_tags
*
*/
/***************************************************************************/
/* */
/* <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
* lcd_filtering
*
*/
/***************************************************************************/
/* */
/* <Chapter> */
/* error_codes */
/* */
/* <Title> */
/* Error Codes */
/* */
/* <Sections> */
/* error_enumerations */
/* error_code_values */
/* */
/***************************************************************************/
/****************************************************************************
*
* @Chapter:
* error_codes
*
* @Title:
* Error Codes
*
* @Sections:
* error_enumerations
* error_code_values
*
*/

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftcid.h */
/* */
/* FreeType API for accessing CID font information (specification). */
/* */
/* Copyright 2007-2018 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. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftcid.h
*
* FreeType API for accessing CID font information (specification).
*
* Copyright 2007-2018 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_
@ -32,22 +32,22 @@
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.
*
*/
/**********************************************************************

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftcolor.h */
/* */
/* FreeType's glyph color management (specification). */
/* */
/* Copyright 2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftcolor.h
*
* FreeType's glyph color management (specification).
*
* Copyright 2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTCOLOR_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftdriver.h */
/* */
/* FreeType API for controlling driver modules (specification only). */
/* */
/* Copyright 2017-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftdriver.h
*
* FreeType API for controlling driver modules (specification only).
*
* Copyright 2017-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTDRIVER_H_

View File

@ -1,58 +1,58 @@
/***************************************************************************/
/* */
/* fterrdef.h */
/* */
/* FreeType error codes (specification). */
/* */
/* Copyright 2002-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* fterrdef.h
*
* FreeType error codes (specification).
*
* Copyright 2002-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*************************************************************************/
/* */
/* <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. */
/* */
/*************************************************************************/
/**************************************************************************
*
* @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.
*
*/
/*************************************************************************/
/* */
/* <Enum> */
/* FT_Err_XXX */
/* */
/*************************************************************************/
/**************************************************************************
*
* @Enum:
* FT_Err_XXX
*
*/
/* generic errors */

View File

@ -1,101 +1,101 @@
/***************************************************************************/
/* */
/* fterrors.h */
/* */
/* FreeType error code handling (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* fterrors.h
*
* FreeType error code handling (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*************************************************************************/
/* */
/* <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 */
/* } */
/* */
/* Note that `FT_Err_Ok' is _not_ defined with `FT_ERRORDEF' but with */
/* `FT_NOERRORDEF'; it is always zero. */
/* */
/*************************************************************************/
/**************************************************************************
*
* @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
* }
*
* Note that `FT_Err_Ok' is _not_ defined with `FT_ERRORDEF' but with
* `FT_NOERRORDEF'; it is always zero.
*
*/
/* */

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftfntfmt.h */
/* */
/* Support functions for font formats. */
/* */
/* Copyright 2002-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftfntfmt.h
*
* Support functions for font formats.
*
* Copyright 2002-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTFNTFMT_H_
@ -32,49 +32,49 @@
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 );

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftgasp.h */
/* */
/* Access of TrueType's `gasp' table (specification). */
/* */
/* Copyright 2007-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftgasp.h
*
* Access of TrueType's `gasp' table (specification).
*
* Copyright 2007-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTGASP_H_
@ -110,9 +110,11 @@ FT_BEGIN_HEADER
* character pixel size.
*
* @input:
* face :: The source face handle.
* face ::
* The source face handle.
*
* ppem :: The vertical character pixel size.
* ppem ::
* The vertical character pixel size.
*
* @return:
* Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +1,28 @@
/***************************************************************************/
/* */
/* ftgxval.h */
/* */
/* FreeType API for validating TrueTypeGX/AAT tables (specification). */
/* */
/* Copyright 2004-2018 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 2004-2018 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_
@ -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

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftgzip.h */
/* */
/* Gzip-compressed stream support. */
/* */
/* Copyright 2002-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftgzip.h
*
* Gzip-compressed stream support.
*
* Copyright 2002-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTGZIP_H_
@ -31,21 +31,21 @@
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.
*
*/
/************************************************************************
@ -112,7 +112,7 @@ FT_BEGIN_HEADER
* The length of the input buffer.
*
* @output:
* output::
* output ::
* The output buffer.
*
* @inout:

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftincrem.h */
/* */
/* FreeType incremental loading (specification). */
/* */
/* Copyright 2002-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftincrem.h
*
* FreeType incremental loading (specification).
*
* Copyright 2002-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTINCREM_H_

View File

@ -1,20 +1,20 @@
/***************************************************************************/
/* */
/* ftlcdfil.h */
/* */
/* FreeType API for color filtering of subpixel bitmap glyphs */
/* (specification). */
/* */
/* Copyright 2006-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftlcdfil.h
*
* FreeType API for color filtering of subpixel bitmap glyphs
* (specification).
*
* Copyright 2006-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTLCDFIL_H_
@ -229,7 +229,8 @@ FT_BEGIN_HEADER
unsigned char *weights );
/*
/**************************************************************************
*
* @type:
* FT_LcdFiveTapFilter
*

View File

@ -1,27 +1,27 @@
/***************************************************************************/
/* */
/* ftlist.h */
/* */
/* Generic list support for FreeType (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftlist.h
*
* Generic list support for FreeType (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*************************************************************************/
/* */
/* 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_
@ -41,224 +41,246 @@
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,

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftlzw.h */
/* */
/* LZW-compressed stream support. */
/* */
/* Copyright 2004-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftlzw.h
*
* LZW-compressed stream support.
*
* Copyright 2004-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTLZW_H_
@ -31,21 +31,21 @@
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.
*
*/
/************************************************************************
*
@ -58,9 +58,11 @@ FT_BEGIN_HEADER
* with XFree86.
*
* @input:
* stream :: The target embedding stream.
* stream ::
* The target embedding stream.
*
* source :: The source stream.
* source ::
* The source stream.
*
* @return:
* FreeType error code. 0~means success.

View File

@ -1,28 +1,28 @@
/***************************************************************************/
/* */
/* ftmac.h */
/* */
/* Additional Mac-specific API. */
/* */
/* Copyright 1996-2018 by */
/* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* 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 1996-2018 by
* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* 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_
@ -47,56 +47,60 @@ FT_BEGIN_HEADER
#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.
*
* @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 );
* }
*/
FT_EXPORT( FT_Error )
FT_New_Face_From_FOND( FT_Library library,
Handle fond,
@ -105,28 +109,31 @@ 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,
@ -134,27 +141,30 @@ 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,
@ -162,30 +172,34 @@ 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,
@ -194,33 +208,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,
@ -229,33 +247,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,

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftmodapi.h */
/* */
/* FreeType modules public interface (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftmodapi.h
*
* FreeType modules public interface (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTMODAPI_H_
@ -33,77 +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 */
/* 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 */
/* */
/*************************************************************************/
/**************************************************************************
*
* @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 */
@ -137,83 +137,95 @@ FT_BEGIN_HEADER
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.
*
* @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.
*/
typedef struct FT_Module_Class_
{
FT_ULong module_flags;
@ -231,77 +243,83 @@ 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 );
@ -436,134 +454,139 @@ FT_BEGIN_HEADER
void* value );
/*************************************************************************/
/* */
/* <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 */
/* */
/**************************************************************************
*
* @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 */
/* */
/**************************************************************************
*
* @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. 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. */
/* */
/**************************************************************************
*
* @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 );
@ -573,52 +596,56 @@ FT_BEGIN_HEADER
(*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. */
/* */
/**************************************************************************
*
* @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.
*/
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 );

View File

@ -1,94 +1,94 @@
/***************************************************************************/
/* */
/* ftmoderr.h */
/* */
/* FreeType module error offsets (specification). */
/* */
/* Copyright 2001-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftmoderr.h
*
* FreeType module error offsets (specification).
*
* Copyright 2001-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*************************************************************************/
/* */
/* 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_

View File

@ -1,30 +1,30 @@
/***************************************************************************/
/* */
/* ftotval.h */
/* */
/* FreeType API for validating OpenType tables (specification). */
/* */
/* Copyright 2004-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftotval.h
*
* FreeType API for validating OpenType tables (specification).
*
* Copyright 2004-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/***************************************************************************/
/* */
/* */
/* 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_
@ -43,28 +43,28 @@
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
*
*/
/**********************************************************************

View File

@ -1,20 +1,20 @@
/***************************************************************************/
/* */
/* ftoutln.h */
/* */
/* Support for the FT_Outline type used to store glyph shapes of */
/* most scalable font formats (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftoutln.h
*
* Support for the FT_Outline type used to store glyph shapes of
* most scalable font formats (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTOUTLN_H_
@ -34,127 +34,134 @@
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 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. */
/* */
/**************************************************************************
*
* @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,
@ -169,27 +176,29 @@ FT_BEGIN_HEADER
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. */
/* */
/**************************************************************************
*
* @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 );
@ -200,293 +209,312 @@ FT_BEGIN_HEADER
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. */
/* */
/* <Note> */
/* An empty outline, or an outline with a single point only is also */
/* valid. */
/* */
/**************************************************************************
*
* @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 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. */
/* */
/**************************************************************************
*
* @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->glyph->format == FT_GLYPH_FORMAT_OUTLINE ) */
/* FT_Outline_Embolden( &face->glyph->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.
*
* Example call:
*
* {
* FT_Load_Glyph( face, index, FT_LOAD_DEFAULT );
* if ( face->glyph->format == FT_GLYPH_FORMAT_OUTLINE )
* FT_Outline_Embolden( &face->glyph->outline, strength );
* }
*
* To get meaningful results, font scaling values must be set with
* functions like @FT_Set_Char_Size before calling FT_Render_Glyph.
*/
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. */
/* */
/* <Since> */
/* 2.4.10 */
/* */
/**************************************************************************
*
* @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,

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftparams.h */
/* */
/* FreeType API for possible FT_Parameter tags (specification only). */
/* */
/* Copyright 2017-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftparams.h
*
* FreeType API for possible FT_Parameter tags (specification only).
*
* Copyright 2017-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTPARAMS_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftpfr.h */
/* */
/* FreeType API for accessing PFR-specific data (specification only). */
/* */
/* Copyright 2002-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftpfr.h
*
* FreeType API for accessing PFR-specific data (specification only).
*
* Copyright 2002-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTPFR_H_
@ -32,21 +32,21 @@
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.
*
*/
/**********************************************************************
@ -58,7 +58,8 @@ FT_BEGIN_HEADER
* 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.
* face ::
* Handle to the input face. It can be a non-PFR face.
*
* @output:
* aoutline_resolution ::
@ -105,14 +106,18 @@ FT_BEGIN_HEADER
* @FT_Get_Kerning.
*
* @input:
* face :: A handle to the input face.
* face ::
* A handle to the input face.
*
* left :: Index of the left glyph.
* left ::
* Index of the left glyph.
*
* right :: Index of the right glyph.
* right ::
* Index of the right glyph.
*
* @output:
* avector :: A kerning vector.
* avector ::
* A kerning vector.
*
* @return:
* FreeType error code. 0~means success.
@ -142,12 +147,15 @@ FT_BEGIN_HEADER
* from a PFR font.
*
* @input:
* face :: A handle to the input face.
* face ::
* A handle to the input face.
*
* gindex :: The glyph index.
* gindex ::
* The glyph index.
*
* @output:
* aadvance :: The glyph advance in metrics units.
* aadvance ::
* The glyph advance in metrics units.
*
* @return:
* FreeType error code. 0~means success.

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftrender.h */
/* */
/* FreeType renderer modules public interface (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftrender.h
*
* FreeType renderer modules public interface (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTRENDER_H_
@ -28,12 +28,12 @@
FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* <Section> */
/* module_management */
/* */
/*************************************************************************/
/**************************************************************************
*
* @Section:
* module_management
*
*/
/* create a new glyph object */
@ -116,32 +116,39 @@ 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;
@ -158,64 +165,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, no FreeType renderer module uses `parameters'; you */
/* should thus always pass NULL as the value. */
/* */
/**************************************************************************
*
* @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,

View File

@ -1,28 +1,28 @@
/***************************************************************************/
/* */
/* ftsizes.h */
/* */
/* FreeType size objects management (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftsizes.h
*
* FreeType size objects management (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*************************************************************************/
/* */
/* 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_
@ -42,109 +42,113 @@
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 );

View File

@ -1,22 +1,22 @@
/***************************************************************************/
/* */
/* 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-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* 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-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTSNAMES_H_
@ -37,72 +37,78 @@
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 (`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! */
/* */
/*************************************************************************/
/**************************************************************************
*
* @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'. */
/* 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. */
/* */
/**************************************************************************
*
* @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;
@ -116,90 +122,96 @@ FT_BEGIN_HEADER
} 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. */
/* */
/* <Note> */
/* This function always returns an error if the config macro */
/* `TT_CONFIG_OPTION_SFNT_NAMES' is not defined in `ftoption.h'. */
/* */
/**************************************************************************
*
* @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. 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'. */
/* */
/**************************************************************************
*
* @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 );
/*************************************************************************/
/* */
/* <Struct> */
/* FT_SfntLangTag */
/* */
/* <Description> */
/* 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 */
/* */
/**************************************************************************
*
* @Struct:
* FT_SfntLangTag
*
* @Description:
* 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
*/
typedef struct FT_SfntLangTag_
{
FT_Byte* string; /* this string is *not* null-terminated! */
@ -208,44 +220,47 @@ FT_BEGIN_HEADER
} FT_SfntLangTag;
/*************************************************************************/
/* */
/* <Function> */
/* FT_Get_Sfnt_LangTag */
/* */
/* <Description> */
/* 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 */
/* */
/**************************************************************************
*
* @Function:
* FT_Get_Sfnt_LangTag
*
* @Description:
* 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
*/
FT_EXPORT( FT_Error )
FT_Get_Sfnt_LangTag( FT_Face face,
FT_UInt langID,

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftstroke.h */
/* */
/* FreeType path stroker (specification). */
/* */
/* Copyright 2002-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftstroke.h
*
* FreeType path stroker (specification).
*
* Copyright 2002-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTSTROKE_H_

View File

@ -1,20 +1,20 @@
/***************************************************************************/
/* */
/* ftsynth.h */
/* */
/* FreeType synthesizing code for emboldening and slanting */
/* (specification). */
/* */
/* Copyright 2000-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftsynth.h
*
* FreeType synthesizing code for emboldening and slanting
* (specification).
*
* Copyright 2000-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*************************************************************************/

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftsystem.h */
/* */
/* FreeType low-level system interface definition (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftsystem.h
*
* FreeType low-level system interface definition (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTSYSTEM_H_
@ -26,31 +26,31 @@
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
*
*/
/*************************************************************************
@ -177,11 +177,11 @@ 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
*
*/
/*************************************************************************

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* fttrigon.h */
/* */
/* FreeType trigonometric functions (specification). */
/* */
/* Copyright 2001-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* fttrigon.h
*
* FreeType trigonometric functions (specification).
*
* Copyright 2001-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTTRIGON_H_
@ -31,12 +31,12 @@
FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* <Section> */
/* computations */
/* */
/*************************************************************************/
/**************************************************************************
*
* @Section:
* computations
*
*/
/*************************************************************************

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* fttypes.h */
/* */
/* FreeType simple types definitions (specification only). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* fttypes.h
*
* FreeType simple types definitions (specification only).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTTYPES_H_
@ -31,326 +31,328 @@
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 +361,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 +396,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 +419,53 @@ 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. */
/* */
/**************************************************************************
*
* @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 +474,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 +504,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 +563,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;

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftwinfnt.h */
/* */
/* FreeType API for accessing Windows fnt-specific data. */
/* */
/* Copyright 2003-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftwinfnt.h
*
* FreeType API for accessing Windows fnt-specific data.
*
* Copyright 2003-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTWINFNT_H_
@ -32,22 +32,22 @@
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.
*
*/
/*************************************************************************
@ -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,14 +223,14 @@ 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;
@ -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.

View File

@ -1,73 +1,73 @@
/***************************************************************************/
/* */
/* autohint.h */
/* */
/* High-level `autohint' module-specific interface (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* autohint.h
*
* High-level `autohint' module-specific interface (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*************************************************************************/
/* */
/* The auto-hinter is used to load and automatically hint glyphs if a */
/* format-specific hinter isn't available. */
/* */
/*************************************************************************/
/**************************************************************************
*
* The auto-hinter is used to load and automatically hint glyphs if a
* format-specific hinter isn't available.
*
*/
#ifndef AUTOHINT_H_
#define AUTOHINT_H_
/*************************************************************************/
/* */
/* A small technical note regarding automatic hinting in order to */
/* clarify this module interface. */
/* */
/* An automatic hinter might compute two kinds of data for a given face: */
/* */
/* - global hints: Usually some metrics that describe global properties */
/* of the face. It is computed by scanning more or less */
/* aggressively the glyphs in the face, and thus can be */
/* very slow to compute (even if the size of global */
/* hints is really small). */
/* */
/* - glyph hints: These describe some important features of the glyph */
/* outline, as well as how to align them. They are */
/* generally much faster to compute than global hints. */
/* */
/* The current FreeType auto-hinter does a pretty good job while */
/* performing fast computations for both global and glyph hints. */
/* However, we might be interested in introducing more complex and */
/* powerful algorithms in the future, like the one described in the John */
/* D. Hobby paper, which unfortunately requires a lot more horsepower. */
/* */
/* Because a sufficiently sophisticated font management system would */
/* typically implement an LRU cache of opened face objects to reduce */
/* memory usage, it is a good idea to be able to avoid recomputing */
/* global hints every time the same face is re-opened. */
/* */
/* We thus provide the ability to cache global hints outside of the face */
/* object, in order to speed up font re-opening time. Of course, this */
/* feature is purely optional, so most client programs won't even notice */
/* it. */
/* */
/* I initially thought that it would be a good idea to cache the glyph */
/* hints too. However, my general idea now is that if you really need */
/* to cache these too, you are simply in need of a new font format, */
/* where all this information could be stored within the font file and */
/* decoded on the fly. */
/* */
/*************************************************************************/
/**************************************************************************
*
* A small technical note regarding automatic hinting in order to
* clarify this module interface.
*
* An automatic hinter might compute two kinds of data for a given face:
*
* - global hints: Usually some metrics that describe global properties
* of the face. It is computed by scanning more or less
* aggressively the glyphs in the face, and thus can be
* very slow to compute (even if the size of global
* hints is really small).
*
* - glyph hints: These describe some important features of the glyph
* outline, as well as how to align them. They are
* generally much faster to compute than global hints.
*
* The current FreeType auto-hinter does a pretty good job while
* performing fast computations for both global and glyph hints.
* However, we might be interested in introducing more complex and
* powerful algorithms in the future, like the one described in the John
* D. Hobby paper, which unfortunately requires a lot more horsepower.
*
* Because a sufficiently sophisticated font management system would
* typically implement an LRU cache of opened face objects to reduce
* memory usage, it is a good idea to be able to avoid recomputing
* global hints every time the same face is re-opened.
*
* We thus provide the ability to cache global hints outside of the face
* object, in order to speed up font re-opening time. Of course, this
* feature is purely optional, so most client programs won't even notice
* it.
*
* I initially thought that it would be a good idea to cache the glyph
* hints too. However, my general idea now is that if you really need
* to cache these too, you are simply in need of a new font format,
* where all this information could be stored within the font file and
* decoded on the fly.
*
*/
#include <ft2build.h>
@ -80,27 +80,31 @@ FT_BEGIN_HEADER
typedef struct FT_AutoHinterRec_ *FT_AutoHinter;
/*************************************************************************/
/* */
/* <FuncType> */
/* FT_AutoHinter_GlobalGetFunc */
/* */
/* <Description> */
/* Retrieve the global hints computed for a given face object. The */
/* resulting data is dissociated from the face and will survive a */
/* call to FT_Done_Face(). It must be discarded through the API */
/* FT_AutoHinter_GlobalDoneFunc(). */
/* */
/* <Input> */
/* hinter :: A handle to the source auto-hinter. */
/* */
/* face :: A handle to the source face object. */
/* */
/* <Output> */
/* global_hints :: A typeless pointer to the global hints. */
/* */
/* global_len :: The size in bytes of the global hints. */
/* */
/**************************************************************************
*
* @FuncType:
* FT_AutoHinter_GlobalGetFunc
*
* @Description:
* Retrieve the global hints computed for a given face object. The
* resulting data is dissociated from the face and will survive a
* call to FT_Done_Face(). It must be discarded through the API
* FT_AutoHinter_GlobalDoneFunc().
*
* @Input:
* hinter ::
* A handle to the source auto-hinter.
*
* face ::
* A handle to the source face object.
*
* @Output:
* global_hints ::
* A typeless pointer to the global hints.
*
* global_len ::
* The size in bytes of the global hints.
*/
typedef void
(*FT_AutoHinter_GlobalGetFunc)( FT_AutoHinter hinter,
FT_Face face,
@ -108,69 +112,76 @@ FT_BEGIN_HEADER
long* global_len );
/*************************************************************************/
/* */
/* <FuncType> */
/* FT_AutoHinter_GlobalDoneFunc */
/* */
/* <Description> */
/* Discard the global hints retrieved through */
/* FT_AutoHinter_GlobalGetFunc(). This is the only way these hints */
/* are freed from memory. */
/* */
/* <Input> */
/* hinter :: A handle to the auto-hinter module. */
/* */
/* global :: A pointer to retrieved global hints to discard. */
/* */
/**************************************************************************
*
* @FuncType:
* FT_AutoHinter_GlobalDoneFunc
*
* @Description:
* Discard the global hints retrieved through
* FT_AutoHinter_GlobalGetFunc(). This is the only way these hints
* are freed from memory.
*
* @Input:
* hinter ::
* A handle to the auto-hinter module.
*
* global ::
* A pointer to retrieved global hints to discard.
*/
typedef void
(*FT_AutoHinter_GlobalDoneFunc)( FT_AutoHinter hinter,
void* global );
/*************************************************************************/
/* */
/* <FuncType> */
/* FT_AutoHinter_GlobalResetFunc */
/* */
/* <Description> */
/* This function is used to recompute the global metrics in a given */
/* font. This is useful when global font data changes (e.g. Multiple */
/* Masters fonts where blend coordinates change). */
/* */
/* <Input> */
/* hinter :: A handle to the source auto-hinter. */
/* */
/* face :: A handle to the face. */
/* */
/**************************************************************************
*
* @FuncType:
* FT_AutoHinter_GlobalResetFunc
*
* @Description:
* This function is used to recompute the global metrics in a given
* font. This is useful when global font data changes (e.g. Multiple
* Masters fonts where blend coordinates change).
*
* @Input:
* hinter ::
* A handle to the source auto-hinter.
*
* face ::
* A handle to the face.
*/
typedef void
(*FT_AutoHinter_GlobalResetFunc)( FT_AutoHinter hinter,
FT_Face face );
/*************************************************************************/
/* */
/* <FuncType> */
/* FT_AutoHinter_GlyphLoadFunc */
/* */
/* <Description> */
/* This function is used to load, scale, and automatically hint a */
/* glyph from a given face. */
/* */
/* <Input> */
/* face :: A handle to the face. */
/* */
/* glyph_index :: The glyph index. */
/* */
/* load_flags :: The load flags. */
/* */
/* <Note> */
/* This function is capable of loading composite glyphs by hinting */
/* each sub-glyph independently (which improves quality). */
/* */
/* It will call the font driver with @FT_Load_Glyph, with */
/* @FT_LOAD_NO_SCALE set. */
/* */
/**************************************************************************
*
* @FuncType:
* FT_AutoHinter_GlyphLoadFunc
*
* @Description:
* This function is used to load, scale, and automatically hint a
* glyph from a given face.
*
* @Input:
* face ::
* A handle to the face.
*
* glyph_index ::
* The glyph index.
*
* load_flags ::
* The load flags.
*
* @Note:
* This function is capable of loading composite glyphs by hinting
* each sub-glyph independently (which improves quality).
*
* It will call the font driver with @FT_Load_Glyph, with
* @FT_LOAD_NO_SCALE set.
*/
typedef FT_Error
(*FT_AutoHinter_GlyphLoadFunc)( FT_AutoHinter hinter,
FT_GlyphSlot slot,
@ -179,14 +190,14 @@ FT_BEGIN_HEADER
FT_Int32 load_flags );
/*************************************************************************/
/* */
/* <Struct> */
/* FT_AutoHinter_InterfaceRec */
/* */
/* <Description> */
/* The auto-hinter module's interface. */
/* */
/**************************************************************************
*
* @Struct:
* FT_AutoHinter_InterfaceRec
*
* @Description:
* The auto-hinter module's interface.
*/
typedef struct FT_AutoHinter_InterfaceRec_
{
FT_AutoHinter_GlobalResetFunc reset_face;

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* cffotypes.h */
/* */
/* Basic OpenType/CFF object type definitions (specification). */
/* */
/* Copyright 2017-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* cffotypes.h
*
* Basic OpenType/CFF object type definitions (specification).
*
* Copyright 2017-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef CFFOTYPES_H_
@ -33,14 +33,14 @@ FT_BEGIN_HEADER
typedef TT_Face CFF_Face;
/*************************************************************************/
/* */
/* <Type> */
/* CFF_Size */
/* */
/* <Description> */
/* A handle to an OpenType size object. */
/* */
/**************************************************************************
*
* @Type:
* CFF_Size
*
* @Description:
* A handle to an OpenType size object.
*/
typedef struct CFF_SizeRec_
{
FT_SizeRec root;
@ -49,14 +49,14 @@ FT_BEGIN_HEADER
} CFF_SizeRec, *CFF_Size;
/*************************************************************************/
/* */
/* <Type> */
/* CFF_GlyphSlot */
/* */
/* <Description> */
/* A handle to an OpenType glyph slot object. */
/* */
/**************************************************************************
*
* @Type:
* CFF_GlyphSlot
*
* @Description:
* A handle to an OpenType glyph slot object.
*/
typedef struct CFF_GlyphSlotRec_
{
FT_GlyphSlotRec root;
@ -70,14 +70,14 @@ FT_BEGIN_HEADER
} CFF_GlyphSlotRec, *CFF_GlyphSlot;
/*************************************************************************/
/* */
/* <Type> */
/* CFF_Internal */
/* */
/* <Description> */
/* The interface to the `internal' field of `FT_Size'. */
/* */
/**************************************************************************
*
* @Type:
* CFF_Internal
*
* @Description:
* The interface to the `internal' field of `FT_Size'.
*/
typedef struct CFF_InternalRec_
{
PSH_Globals topfont;
@ -86,10 +86,10 @@ FT_BEGIN_HEADER
} CFF_InternalRec, *CFF_Internal;
/*************************************************************************/
/* */
/* Subglyph transformation record. */
/* */
/**************************************************************************
*
* Subglyph transformation record.
*/
typedef struct CFF_Transform_
{
FT_Fixed xx, xy; /* transformation matrix coefficients */

View File

@ -1,20 +1,20 @@
/***************************************************************************/
/* */
/* cfftypes.h */
/* */
/* Basic OpenType/CFF type definitions and interface (specification */
/* only). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* cfftypes.h
*
* Basic OpenType/CFF type definitions and interface (specification
* only).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef CFFTYPES_H_
@ -33,34 +33,42 @@
FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* <Struct> */
/* CFF_IndexRec */
/* */
/* <Description> */
/* A structure used to model a CFF Index table. */
/* */
/* <Fields> */
/* stream :: The source input stream. */
/* */
/* start :: The position of the first index byte in the */
/* input stream. */
/* */
/* count :: The number of elements in the index. */
/* */
/* off_size :: The size in bytes of object offsets in index. */
/* */
/* data_offset :: The position of first data byte in the index's */
/* bytes. */
/* */
/* data_size :: The size of the data table in this index. */
/* */
/* offsets :: A table of element offsets in the index. Must be */
/* loaded explicitly. */
/* */
/* bytes :: If the index is loaded in memory, its bytes. */
/* */
/**************************************************************************
*
* @Struct:
* CFF_IndexRec
*
* @Description:
* A structure used to model a CFF Index table.
*
* @Fields:
* stream ::
* The source input stream.
*
* start ::
* The position of the first index byte in the
* input stream.
*
* count ::
* The number of elements in the index.
*
* off_size ::
* The size in bytes of object offsets in index.
*
* data_offset ::
* The position of first data byte in the index's
* bytes.
*
* data_size ::
* The size of the data table in this index.
*
* offsets ::
* A table of element offsets in the index. Must be
* loaded explicitly.
*
* bytes ::
* If the index is loaded in memory, its bytes.
*/
typedef struct CFF_IndexRec_
{
FT_Stream stream;

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftcalc.h */
/* */
/* Arithmetic computations (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftcalc.h
*
* Arithmetic computations (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTCALC_H_
@ -27,11 +27,11 @@
FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* FT_MulDiv() and FT_MulFix() are declared in freetype.h. */
/* */
/*************************************************************************/
/**************************************************************************
*
* FT_MulDiv() and FT_MulFix() are declared in freetype.h.
*
*/
#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER
/* Provide assembler fragments for performance-critical functions. */
@ -246,29 +246,32 @@ FT_BEGIN_HEADER
#endif
/*************************************************************************/
/* */
/* <Function> */
/* FT_MulDiv_No_Round */
/* */
/* <Description> */
/* A very simple function used to perform the computation `(a*b)/c' */
/* (without rounding) 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_No_Round
*
* @Description:
* A very simple function used to perform the computation `(a*b)/c'
* (without rounding) 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'.
*/
FT_BASE( FT_Long )
FT_MulDiv_No_Round( FT_Long a,
FT_Long b,
@ -402,23 +405,24 @@ FT_BEGIN_HEADER
#if 0
/*************************************************************************/
/* */
/* <Function> */
/* FT_SqrtFixed */
/* */
/* <Description> */
/* Computes the square root of a 16.16 fixed-point value. */
/* */
/* <Input> */
/* x :: The value to compute the root for. */
/* */
/* <Return> */
/* The result of `sqrt(x)'. */
/* */
/* <Note> */
/* This function is not very fast. */
/* */
/**************************************************************************
*
* @Function:
* FT_SqrtFixed
*
* @Description:
* Computes the square root of a 16.16 fixed-point value.
*
* @Input:
* x ::
* The value to compute the root for.
*
* @Return:
* The result of `sqrt(x)'.
*
* @Note:
* This function is not very fast.
*/
FT_BASE( FT_Int32 )
FT_SqrtFixed( FT_Int32 x );
@ -437,9 +441,9 @@ FT_BEGIN_HEADER
/*
* The following macros have two purposes.
*
* . Tag places where overflow is expected and harmless.
* - Tag places where overflow is expected and harmless.
*
* . Avoid run-time sanitizer errors.
* - Avoid run-time sanitizer errors.
*
* Use with care!
*/

View File

@ -1,24 +1,24 @@
/***************************************************************************/
/* */
/* ftdebug.h */
/* */
/* Debugging and logging component (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/* */
/* IMPORTANT: A description of FreeType's debugging support can be */
/* found in `docs/DEBUG.TXT'. Read it if you need to use or */
/* understand this code. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftdebug.h
*
* Debugging and logging component (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*
* IMPORTANT: A description of FreeType's debugging support can be
* found in `docs/DEBUG.TXT'. Read it if you need to use or
* understand this code.
*
*/
#ifndef FTDEBUG_H_
@ -42,12 +42,12 @@ FT_BEGIN_HEADER
#endif
/*************************************************************************/
/* */
/* Define the trace enums as well as the trace levels array when they */
/* are needed. */
/* */
/*************************************************************************/
/**************************************************************************
*
* Define the trace enums as well as the trace levels array when they
* are needed.
*
*/
#ifdef FT_DEBUG_LEVEL_TRACE
@ -70,16 +70,16 @@ FT_BEGIN_HEADER
#endif /* FT_DEBUG_LEVEL_TRACE */
/*************************************************************************/
/* */
/* Define the FT_TRACE macro */
/* */
/* IMPORTANT! */
/* */
/* Each component must define the macro FT_COMPONENT to a valid FT_Trace */
/* value before using any TRACE macro. */
/* */
/*************************************************************************/
/**************************************************************************
*
* Define the FT_TRACE macro
*
* IMPORTANT!
*
* Each component must define the macro FT_COMPONENT to a valid FT_Trace
* value before using any TRACE macro.
*
*/
#ifdef FT_DEBUG_LEVEL_TRACE
@ -97,62 +97,62 @@ FT_BEGIN_HEADER
#endif /* !FT_DEBUG_LEVEL_TRACE */
/*************************************************************************/
/* */
/* <Function> */
/* FT_Trace_Get_Count */
/* */
/* <Description> */
/* Return the number of available trace components. */
/* */
/* <Return> */
/* The number of trace components. 0 if FreeType 2 is not built with */
/* FT_DEBUG_LEVEL_TRACE definition. */
/* */
/* <Note> */
/* This function may be useful if you want to access elements of */
/* the internal `ft_trace_levels' array by an index. */
/* */
/**************************************************************************
*
* @Function:
* FT_Trace_Get_Count
*
* @Description:
* Return the number of available trace components.
*
* @Return:
* The number of trace components. 0 if FreeType 2 is not built with
* FT_DEBUG_LEVEL_TRACE definition.
*
* @Note:
* This function may be useful if you want to access elements of
* the internal `ft_trace_levels' array by an index.
*/
FT_BASE( FT_Int )
FT_Trace_Get_Count( void );
/*************************************************************************/
/* */
/* <Function> */
/* FT_Trace_Get_Name */
/* */
/* <Description> */
/* Return the name of a trace component. */
/* */
/* <Input> */
/* The index of the trace component. */
/* */
/* <Return> */
/* The name of the trace component. This is a statically allocated */
/* C string, so do not free it after use. NULL if FreeType 2 is not */
/* built with FT_DEBUG_LEVEL_TRACE definition. */
/* */
/* <Note> */
/* Use @FT_Trace_Get_Count to get the number of available trace */
/* components. */
/* */
/* This function may be useful if you want to control FreeType 2's */
/* debug level in your application. */
/* */
/**************************************************************************
*
* @Function:
* FT_Trace_Get_Name
*
* @Description:
* Return the name of a trace component.
*
* @Input:
* The index of the trace component.
*
* @Return:
* The name of the trace component. This is a statically allocated
* C string, so do not free it after use. NULL if FreeType 2 is not
* built with FT_DEBUG_LEVEL_TRACE definition.
*
* @Note:
* Use @FT_Trace_Get_Count to get the number of available trace
* components.
*
* This function may be useful if you want to control FreeType 2's
* debug level in your application.
*/
FT_BASE( const char* )
FT_Trace_Get_Name( FT_Int idx );
/*************************************************************************/
/* */
/* You need two opening and closing parentheses! */
/* */
/* Example: FT_TRACE0(( "Value is %i", foo )) */
/* */
/* Output of the FT_TRACEX macros is sent to stderr. */
/* */
/*************************************************************************/
/**************************************************************************
*
* You need two opening and closing parentheses!
*
* Example: FT_TRACE0(( "Value is %i", foo ))
*
* Output of the FT_TRACEX macros is sent to stderr.
*
*/
#define FT_TRACE0( varformat ) FT_TRACE( 0, varformat )
#define FT_TRACE1( varformat ) FT_TRACE( 1, varformat )
@ -164,13 +164,13 @@ FT_BEGIN_HEADER
#define FT_TRACE7( varformat ) FT_TRACE( 7, varformat )
/*************************************************************************/
/* */
/* Define the FT_ERROR macro. */
/* */
/* Output of this macro is sent to stderr. */
/* */
/*************************************************************************/
/**************************************************************************
*
* Define the FT_ERROR macro.
*
* Output of this macro is sent to stderr.
*
*/
#ifdef FT_DEBUG_LEVEL_ERROR
@ -183,12 +183,12 @@ FT_BEGIN_HEADER
#endif /* !FT_DEBUG_LEVEL_ERROR */
/*************************************************************************/
/* */
/* Define the FT_ASSERT and FT_THROW macros. The call to `FT_Throw' */
/* makes it possible to easily set a breakpoint at this function. */
/* */
/*************************************************************************/
/**************************************************************************
*
* Define the FT_ASSERT and FT_THROW macros. The call to `FT_Throw'
* makes it possible to easily set a breakpoint at this function.
*
*/
#ifdef FT_DEBUG_LEVEL_ERROR
@ -215,11 +215,11 @@ FT_BEGIN_HEADER
#endif /* !FT_DEBUG_LEVEL_ERROR */
/*************************************************************************/
/* */
/* Define `FT_Message' and `FT_Panic' when needed. */
/* */
/*************************************************************************/
/**************************************************************************
*
* Define `FT_Message' and `FT_Panic' when needed.
*
*/
#ifdef FT_DEBUG_LEVEL_ERROR

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftdrv.h */
/* */
/* FreeType internal font driver interface (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftdrv.h
*
* FreeType internal font driver interface (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTDRV_H_
@ -87,73 +87,89 @@ FT_BEGIN_HEADER
FT_Fixed* advances );
/*************************************************************************/
/* */
/* <Struct> */
/* FT_Driver_ClassRec */
/* */
/* <Description> */
/* The font driver class. This structure mostly contains pointers to */
/* driver methods. */
/* */
/* <Fields> */
/* root :: The parent module. */
/* */
/* face_object_size :: The size of a face object in bytes. */
/* */
/* size_object_size :: The size of a size object in bytes. */
/* */
/* slot_object_size :: The size of a glyph object in bytes. */
/* */
/* init_face :: The format-specific face constructor. */
/* */
/* done_face :: The format-specific face destructor. */
/* */
/* init_size :: The format-specific size constructor. */
/* */
/* done_size :: The format-specific size destructor. */
/* */
/* init_slot :: The format-specific slot constructor. */
/* */
/* done_slot :: The format-specific slot destructor. */
/* */
/* */
/* load_glyph :: A function handle to load a glyph to a slot. */
/* This field is mandatory! */
/* */
/* get_kerning :: A function handle to return the unscaled */
/* kerning for a given pair of glyphs. Can be */
/* set to 0 if the format doesn't support */
/* kerning. */
/* */
/* attach_file :: This function handle is used to read */
/* additional data for a face from another */
/* file/stream. For example, this can be used to */
/* add data from AFM or PFM files on a Type 1 */
/* face, or a CIDMap on a CID-keyed face. */
/* */
/* get_advances :: A function handle used to return advance */
/* widths of `count' glyphs (in font units), */
/* starting at `first'. The `vertical' flag must */
/* be set to get vertical advance heights. The */
/* `advances' buffer is caller-allocated. */
/* The idea of this function is to be able to */
/* perform device-independent text layout without */
/* loading a single glyph image. */
/* */
/* request_size :: A handle to a function used to request the new */
/* character size. Can be set to 0 if the */
/* scaling done in the base layer suffices. */
/* */
/* select_size :: A handle to a function used to select a new */
/* fixed size. It is used only if */
/* @FT_FACE_FLAG_FIXED_SIZES is set. Can be set */
/* to 0 if the scaling done in the base layer */
/* suffices. */
/* <Note> */
/* Most function pointers, with the exception of `load_glyph', can be */
/* set to 0 to indicate a default behaviour. */
/* */
/**************************************************************************
*
* @Struct:
* FT_Driver_ClassRec
*
* @Description:
* The font driver class. This structure mostly contains pointers to
* driver methods.
*
* @Fields:
* root ::
* The parent module.
*
* face_object_size ::
* The size of a face object in bytes.
*
* size_object_size ::
* The size of a size object in bytes.
*
* slot_object_size ::
* The size of a glyph object in bytes.
*
* init_face ::
* The format-specific face constructor.
*
* done_face ::
* The format-specific face destructor.
*
* init_size ::
* The format-specific size constructor.
*
* done_size ::
* The format-specific size destructor.
*
* init_slot ::
* The format-specific slot constructor.
*
* done_slot ::
* The format-specific slot destructor.
*
*
* load_glyph ::
* A function handle to load a glyph to a slot.
* This field is mandatory!
*
* get_kerning ::
* A function handle to return the unscaled
* kerning for a given pair of glyphs. Can be
* set to 0 if the format doesn't support
* kerning.
*
* attach_file ::
* This function handle is used to read
* additional data for a face from another
* file/stream. For example, this can be used to
* add data from AFM or PFM files on a Type 1
* face, or a CIDMap on a CID-keyed face.
*
* get_advances ::
* A function handle used to return advance
* widths of `count' glyphs (in font units),
* starting at `first'. The `vertical' flag must
* be set to get vertical advance heights. The
* `advances' buffer is caller-allocated.
* The idea of this function is to be able to
* perform device-independent text layout without
* loading a single glyph image.
*
* request_size ::
* A handle to a function used to request the new
* character size. Can be set to 0 if the
* scaling done in the base layer suffices.
*
* select_size ::
* A handle to a function used to select a new
* fixed size. It is used only if
* @FT_FACE_FLAG_FIXED_SIZES is set. Can be set
* to 0 if the scaling done in the base layer
* suffices.
* @Note:
* Most function pointers, with the exception of `load_glyph', can be
* set to 0 to indicate a default behaviour.
*/
typedef struct FT_Driver_ClassRec_
{
FT_Module_Class root;
@ -184,28 +200,28 @@ FT_BEGIN_HEADER
} FT_Driver_ClassRec, *FT_Driver_Class;
/*************************************************************************/
/* */
/* <Macro> */
/* FT_DECLARE_DRIVER */
/* */
/* <Description> */
/* Used to create a forward declaration of an FT_Driver_ClassRec */
/* struct instance. */
/* */
/* <Macro> */
/* FT_DEFINE_DRIVER */
/* */
/* <Description> */
/* Used to initialize an instance of FT_Driver_ClassRec struct. */
/* */
/* `ftinit.c' (ft_create_default_module_classes) already contains a */
/* mechanism to call these functions for the default modules */
/* described in `ftmodule.h'. */
/* */
/* The struct will be allocated in the global scope (or the scope */
/* where the macro is used). */
/* */
/**************************************************************************
*
* @Macro:
* FT_DECLARE_DRIVER
*
* @Description:
* Used to create a forward declaration of an FT_Driver_ClassRec
* struct instance.
*
* @Macro:
* FT_DEFINE_DRIVER
*
* @Description:
* Used to initialize an instance of FT_Driver_ClassRec struct.
*
* `ftinit.c' (ft_create_default_module_classes) already contains a
* mechanism to call these functions for the default modules
* described in `ftmodule.h'.
*
* The struct will be allocated in the global scope (or the scope
* where the macro is used).
*/
#define FT_DECLARE_DRIVER( class_ ) \
FT_CALLBACK_TABLE \
const FT_Driver_ClassRec class_;

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftgloadr.h */
/* */
/* The FreeType glyph loader (specification). */
/* */
/* Copyright 2002-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftgloadr.h
*
* The FreeType glyph loader (specification).
*
* Copyright 2002-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTGLOADR_H_
@ -27,15 +27,15 @@
FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* <Struct> */
/* FT_GlyphLoader */
/* */
/* <Description> */
/* The glyph loader is an internal object used to load several glyphs */
/* together (for example, in the case of composites). */
/* */
/**************************************************************************
*
* @Struct:
* FT_GlyphLoader
*
* @Description:
* The glyph loader is an internal object used to load several glyphs
* together (for example, in the case of composites).
*/
typedef struct FT_SubGlyphRec_
{
FT_Int index;

View File

@ -1,10 +1,10 @@
/***************************************************************************/
/* */
/* fthash.h */
/* */
/* Hashing functions (specification). */
/* */
/***************************************************************************/
/****************************************************************************
*
* fthash.h
*
* Hashing functions (specification).
*
*/
/*
* Copyright 2000 Computing Research Labs, New Mexico State University
@ -30,13 +30,13 @@
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/*************************************************************************/
/* */
/* This file is based on code from bdf.c,v 1.22 2000/03/16 20:08:50 */
/* */
/* taken from Mark Leisher's xmbdfed package */
/* */
/*************************************************************************/
/**************************************************************************
*
* This file is based on code from bdf.c,v 1.22 2000/03/16 20:08:50
*
* taken from Mark Leisher's xmbdfed package
*
*/
#ifndef FTHASH_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftmemory.h */
/* */
/* The FreeType memory management macros (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftmemory.h
*
* The FreeType memory management macros (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTMEMORY_H_
@ -28,16 +28,16 @@
FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* <Macro> */
/* FT_SET_ERROR */
/* */
/* <Description> */
/* This macro is used to set an implicit `error' variable to a given */
/* expression's value (usually a function call), and convert it to a */
/* boolean which is set whenever the value is != 0. */
/* */
/**************************************************************************
*
* @Macro:
* FT_SET_ERROR
*
* @Description:
* This macro is used to set an implicit `error' variable to a given
* expression's value (usually a function call), and convert it to a
* boolean which is set whenever the value is != 0.
*/
#undef FT_SET_ERROR
#define FT_SET_ERROR( expression ) \
( ( error = (expression) ) != 0 )
@ -262,11 +262,11 @@ extern "C++"
#define FT_ARRAY_CHECK( ptr, count ) ( (count) <= FT_ARRAY_MAX( ptr ) )
/*************************************************************************/
/* */
/* The following functions macros expect that their pointer argument is */
/* _typed_ in order to automatically compute array element sizes. */
/* */
/**************************************************************************
*
* The following functions macros expect that their pointer argument is
* _typed_ in order to automatically compute array element sizes.
*/
#define FT_MEM_NEW_ARRAY( ptr, count ) \
FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \

View File

@ -1,26 +1,26 @@
/***************************************************************************/
/* */
/* ftobjs.h */
/* */
/* The FreeType private base classes (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftobjs.h
*
* The FreeType private base classes (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*************************************************************************/
/* */
/* This file contains the definition of all internal FreeType classes. */
/* */
/*************************************************************************/
/**************************************************************************
*
* This file contains the definition of all internal FreeType classes.
*
*/
#ifndef FTOBJS_H_
@ -45,10 +45,10 @@
FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* Some generic definitions. */
/* */
/**************************************************************************
*
* Some generic definitions.
*/
#ifndef TRUE
#define TRUE 1
#endif
@ -62,11 +62,11 @@ FT_BEGIN_HEADER
#endif
/*************************************************************************/
/* */
/* The min and max functions missing in C. As usual, be careful not to */
/* write things like FT_MIN( a++, b++ ) to avoid side effects. */
/* */
/**************************************************************************
*
* The min and max functions missing in C. As usual, be careful not to
* write things like FT_MIN( a++, b++ ) to avoid side effects.
*/
#define FT_MIN( a, b ) ( (a) < (b) ? (a) : (b) )
#define FT_MAX( a, b ) ( (a) > (b) ? (a) : (b) )
@ -291,74 +291,74 @@ FT_BEGIN_HEADER
#endif /* FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
/*************************************************************************/
/* */
/* <Struct> */
/* FT_Face_InternalRec */
/* */
/* <Description> */
/* This structure contains the internal fields of each FT_Face */
/* object. These fields may change between different releases of */
/* FreeType. */
/* */
/* <Fields> */
/* max_points :: */
/* The maximum number of points used to store the vectorial outline */
/* of any glyph in this face. If this value cannot be known in */
/* advance, or if the face isn't scalable, this should be set to 0. */
/* Only relevant for scalable formats. */
/* */
/* max_contours :: */
/* The maximum number of contours used to store the vectorial */
/* outline of any glyph in this face. If this value cannot be */
/* known in advance, or if the face isn't scalable, this should be */
/* set to 0. Only relevant for scalable formats. */
/* */
/* transform_matrix :: */
/* A 2x2 matrix of 16.16 coefficients used to transform glyph */
/* outlines after they are loaded from the font. Only used by the */
/* convenience functions. */
/* */
/* transform_delta :: */
/* A translation vector used to transform glyph outlines after they */
/* are loaded from the font. Only used by the convenience */
/* functions. */
/* */
/* transform_flags :: */
/* Some flags used to classify the transform. Only used by the */
/* convenience functions. */
/* */
/* services :: */
/* A cache for frequently used services. It should be only */
/* accessed with the macro `FT_FACE_LOOKUP_SERVICE'. */
/* */
/* incremental_interface :: */
/* If non-null, the interface through which glyph data and metrics */
/* are loaded incrementally for faces that do not provide all of */
/* this data when first opened. This field exists only if */
/* @FT_CONFIG_OPTION_INCREMENTAL is defined. */
/* */
/* no_stem_darkening :: */
/* Overrides the module-level default, see @stem-darkening[cff], */
/* for example. FALSE and TRUE toggle stem darkening on and off, */
/* respectively, value~-1 means to use the module/driver default. */
/* */
/* random_seed :: */
/* If positive, override the seed value for the CFF `random' */
/* operator. Value~0 means to use the font's value. Value~-1 */
/* means to use the CFF driver's default. */
/* */
/* lcd_weights :: */
/* lcd_filter_func :: */
/* These fields specify the LCD filtering weights and callback */
/* function for ClearType-style subpixel rendering. */
/* */
/* refcount :: */
/* A counter initialized to~1 at the time an @FT_Face structure is */
/* created. @FT_Reference_Face increments this counter, and */
/* @FT_Done_Face only destroys a face if the counter is~1, */
/* otherwise it simply decrements it. */
/* */
/**************************************************************************
*
* @Struct:
* FT_Face_InternalRec
*
* @Description:
* This structure contains the internal fields of each FT_Face
* object. These fields may change between different releases of
* FreeType.
*
* @Fields:
* max_points ::
* The maximum number of points used to store the vectorial outline
* of any glyph in this face. If this value cannot be known in
* advance, or if the face isn't scalable, this should be set to 0.
* Only relevant for scalable formats.
*
* max_contours ::
* The maximum number of contours used to store the vectorial
* outline of any glyph in this face. If this value cannot be
* known in advance, or if the face isn't scalable, this should be
* set to 0. Only relevant for scalable formats.
*
* transform_matrix ::
* A 2x2 matrix of 16.16 coefficients used to transform glyph
* outlines after they are loaded from the font. Only used by the
* convenience functions.
*
* transform_delta ::
* A translation vector used to transform glyph outlines after they
* are loaded from the font. Only used by the convenience
* functions.
*
* transform_flags ::
* Some flags used to classify the transform. Only used by the
* convenience functions.
*
* services ::
* A cache for frequently used services. It should be only
* accessed with the macro `FT_FACE_LOOKUP_SERVICE'.
*
* incremental_interface ::
* If non-null, the interface through which glyph data and metrics
* are loaded incrementally for faces that do not provide all of
* this data when first opened. This field exists only if
* @FT_CONFIG_OPTION_INCREMENTAL is defined.
*
* no_stem_darkening ::
* Overrides the module-level default, see @stem-darkening[cff],
* for example. FALSE and TRUE toggle stem darkening on and off,
* respectively, value~-1 means to use the module/driver default.
*
* random_seed ::
* If positive, override the seed value for the CFF `random'
* operator. Value~0 means to use the font's value. Value~-1
* means to use the CFF driver's default.
*
* lcd_weights ::
* lcd_filter_func ::
* These fields specify the LCD filtering weights and callback
* function for ClearType-style subpixel rendering.
*
* refcount ::
* A counter initialized to~1 at the time an @FT_Face structure is
* created. @FT_Reference_Face increments this counter, and
* @FT_Done_Face only destroys a face if the counter is~1,
* otherwise it simply decrements it.
*/
typedef struct FT_Face_InternalRec_
{
FT_Matrix transform_matrix;
@ -393,41 +393,48 @@ FT_BEGIN_HEADER
} FT_Colr_InternalRec, *FT_Colr_Internal;
/*************************************************************************/
/* */
/* <Struct> */
/* FT_Slot_InternalRec */
/* */
/* <Description> */
/* This structure contains the internal fields of each FT_GlyphSlot */
/* object. These fields may change between different releases of */
/* FreeType. */
/* */
/* <Fields> */
/* loader :: The glyph loader object used to load outlines */
/* into the glyph slot. */
/* */
/* flags :: Possible values are zero or */
/* FT_GLYPH_OWN_BITMAP. The latter indicates */
/* that the FT_GlyphSlot structure owns the */
/* bitmap buffer. */
/* */
/* glyph_transformed :: Boolean. Set to TRUE when the loaded glyph */
/* must be transformed through a specific */
/* font transformation. This is _not_ the same */
/* as the face transform set through */
/* FT_Set_Transform(). */
/* */
/* glyph_matrix :: The 2x2 matrix corresponding to the glyph */
/* transformation, if necessary. */
/* */
/* glyph_delta :: The 2d translation vector corresponding to */
/* the glyph transformation, if necessary. */
/* */
/* glyph_hints :: Format-specific glyph hints management. */
/* */
/* color_layers :: Data from (SFNT) COLR/CPAL tables. */
/* */
/**************************************************************************
*
* @Struct:
* FT_Slot_InternalRec
*
* @Description:
* This structure contains the internal fields of each FT_GlyphSlot
* object. These fields may change between different releases of
* FreeType.
*
* @Fields:
* loader ::
* The glyph loader object used to load outlines
* into the glyph slot.
*
* flags ::
* Possible values are zero or
* FT_GLYPH_OWN_BITMAP. The latter indicates
* that the FT_GlyphSlot structure owns the
* bitmap buffer.
*
* glyph_transformed ::
* Boolean. Set to TRUE when the loaded glyph
* must be transformed through a specific
* font transformation. This is _not_ the same
* as the face transform set through
* FT_Set_Transform().
*
* glyph_matrix ::
* The 2x2 matrix corresponding to the glyph
* transformation, if necessary.
*
* glyph_delta ::
* The 2d translation vector corresponding to
* the glyph transformation, if necessary.
*
* glyph_hints ::
* Format-specific glyph hints management.
*
* color_layers ::
* Data from (SFNT) COLR/CPAL tables.
*/
#define FT_GLYPH_OWN_BITMAP 0x1U
@ -445,23 +452,26 @@ FT_BEGIN_HEADER
} FT_GlyphSlot_InternalRec;
/*************************************************************************/
/* */
/* <Struct> */
/* FT_Size_InternalRec */
/* */
/* <Description> */
/* This structure contains the internal fields of each FT_Size */
/* object. */
/* */
/* <Fields> */
/* module_data :: Data specific to a driver module. */
/* */
/* autohint_mode :: The used auto-hinting mode. */
/* */
/* autohint_metrics :: Metrics used by the auto-hinter. */
/* */
/*************************************************************************/
/**************************************************************************
*
* @Struct:
* FT_Size_InternalRec
*
* @Description:
* This structure contains the internal fields of each FT_Size
* object.
*
* @Fields:
* module_data ::
* Data specific to a driver module.
*
* autohint_mode ::
* The used auto-hinting mode.
*
* autohint_metrics ::
* Metrics used by the auto-hinter.
*
*/
typedef struct FT_Size_InternalRec_
{
@ -486,21 +496,24 @@ FT_BEGIN_HEADER
/*************************************************************************/
/*************************************************************************/
/* */
/* <Struct> */
/* FT_ModuleRec */
/* */
/* <Description> */
/* A module object instance. */
/* */
/* <Fields> */
/* clazz :: A pointer to the module's class. */
/* */
/* library :: A handle to the parent library object. */
/* */
/* memory :: A handle to the memory manager. */
/* */
/**************************************************************************
*
* @Struct:
* FT_ModuleRec
*
* @Description:
* A module object instance.
*
* @Fields:
* clazz ::
* A pointer to the module's class.
*
* library ::
* A handle to the parent library object.
*
* memory ::
* A handle to the memory manager.
*/
typedef struct FT_ModuleRec_
{
FT_Module_Class* clazz;
@ -543,27 +556,29 @@ FT_BEGIN_HEADER
FT_MODULE_DRIVER_HINTS_LIGHTLY )
/*************************************************************************/
/* */
/* <Function> */
/* FT_Get_Module_Interface */
/* */
/* <Description> */
/* Finds a module and returns its specific interface as a typeless */
/* pointer. */
/* */
/* <Input> */
/* library :: A handle to the library object. */
/* */
/* module_name :: The module's name (as an ASCII string). */
/* */
/* <Return> */
/* A module-specific interface if available, 0 otherwise. */
/* */
/* <Note> */
/* You should better be familiar with FreeType internals to know */
/* which module to look for, and what its interface is :-) */
/* */
/**************************************************************************
*
* @Function:
* FT_Get_Module_Interface
*
* @Description:
* Finds a module and returns its specific interface as a typeless
* pointer.
*
* @Input:
* library ::
* A handle to the library object.
*
* module_name ::
* The module's name (as an ASCII string).
*
* @Return:
* A module-specific interface if available, 0 otherwise.
*
* @Note:
* You should better be familiar with FreeType internals to know
* which module to look for, and what its interface is :-)
*/
FT_BASE( const void* )
FT_Get_Module_Interface( FT_Library library,
const char* mod_name );
@ -614,44 +629,47 @@ FT_BEGIN_HEADER
#define FT_FACE_SIZE( x ) FT_FACE( x )->size
/*************************************************************************/
/* */
/* <Function> */
/* FT_New_GlyphSlot */
/* */
/* <Description> */
/* It is sometimes useful to have more than one glyph slot for a */
/* given face object. This function is used to create additional */
/* slots. All of them are automatically discarded when the face is */
/* destroyed. */
/* */
/* <Input> */
/* face :: A handle to a parent face object. */
/* */
/* <Output> */
/* aslot :: A handle to a new glyph slot object. */
/* */
/* <Return> */
/* FreeType error code. 0 means success. */
/* */
/**************************************************************************
*
* @Function:
* FT_New_GlyphSlot
*
* @Description:
* It is sometimes useful to have more than one glyph slot for a
* given face object. This function is used to create additional
* slots. All of them are automatically discarded when the face is
* destroyed.
*
* @Input:
* face ::
* A handle to a parent face object.
*
* @Output:
* aslot ::
* A handle to a new glyph slot object.
*
* @Return:
* FreeType error code. 0 means success.
*/
FT_BASE( FT_Error )
FT_New_GlyphSlot( FT_Face face,
FT_GlyphSlot *aslot );
/*************************************************************************/
/* */
/* <Function> */
/* FT_Done_GlyphSlot */
/* */
/* <Description> */
/* Destroys a given glyph slot. Remember however that all slots are */
/* automatically destroyed with its parent. Using this function is */
/* not always mandatory. */
/* */
/* <Input> */
/* slot :: A handle to a target glyph slot. */
/* */
/**************************************************************************
*
* @Function:
* FT_Done_GlyphSlot
*
* @Description:
* Destroys a given glyph slot. Remember however that all slots are
* automatically destroyed with its parent. Using this function is
* not always mandatory.
*
* @Input:
* slot ::
* A handle to a target glyph slot.
*/
FT_BASE( void )
FT_Done_GlyphSlot( FT_GlyphSlot slot );
@ -773,28 +791,32 @@ FT_BEGIN_HEADER
#define FT_DRIVER_CLASS( x ) FT_DRIVER( x )->clazz
/*************************************************************************/
/* */
/* <Struct> */
/* FT_DriverRec */
/* */
/* <Description> */
/* The root font driver class. A font driver is responsible for */
/* managing and loading font files of a given format. */
/* */
/* <Fields> */
/* root :: Contains the fields of the root module class. */
/* */
/* clazz :: A pointer to the font driver's class. Note that */
/* this is NOT root.clazz. `class' wasn't used */
/* as it is a reserved word in C++. */
/* */
/* faces_list :: The list of faces currently opened by this */
/* driver. */
/* */
/* glyph_loader :: Unused. Used to be glyph loader for all faces */
/* managed by this driver. */
/* */
/**************************************************************************
*
* @Struct:
* FT_DriverRec
*
* @Description:
* The root font driver class. A font driver is responsible for
* managing and loading font files of a given format.
*
* @Fields:
* root ::
* Contains the fields of the root module class.
*
* clazz ::
* A pointer to the font driver's class. Note that
* this is NOT root.clazz. `class' wasn't used
* as it is a reserved word in C++.
*
* faces_list ::
* The list of faces currently opened by this
* driver.
*
* glyph_loader ::
* Unused. Used to be glyph loader for all faces
* managed by this driver.
*/
typedef struct FT_DriverRec_
{
FT_ModuleRec root;
@ -823,71 +845,86 @@ FT_BEGIN_HEADER
#define FT_DEBUG_HOOK_TRUETYPE 0
/*************************************************************************/
/* */
/* <Struct> */
/* FT_LibraryRec */
/* */
/* <Description> */
/* The FreeType library class. This is the root of all FreeType */
/* data. Use FT_New_Library() to create a library object, and */
/* FT_Done_Library() to discard it and all child objects. */
/* */
/* <Fields> */
/* memory :: The library's memory object. Manages memory */
/* allocation. */
/* */
/* version_major :: The major version number of the library. */
/* */
/* version_minor :: The minor version number of the library. */
/* */
/* version_patch :: The current patch level of the library. */
/* */
/* num_modules :: The number of modules currently registered */
/* within this library. This is set to 0 for new */
/* libraries. New modules are added through the */
/* FT_Add_Module() API function. */
/* */
/* modules :: A table used to store handles to the currently */
/* registered modules. Note that each font driver */
/* contains a list of its opened faces. */
/* */
/* renderers :: The list of renderers currently registered */
/* within the library. */
/* */
/* cur_renderer :: The current outline renderer. This is a */
/* shortcut used to avoid parsing the list on */
/* each call to FT_Outline_Render(). It is a */
/* handle to the current renderer for the */
/* FT_GLYPH_FORMAT_OUTLINE format. */
/* */
/* auto_hinter :: The auto-hinter module interface. */
/* */
/* debug_hooks :: An array of four function pointers that allow */
/* debuggers to hook into a font format's */
/* interpreter. Currently, only the TrueType */
/* bytecode debugger uses this. */
/* */
/* lcd_weights :: The LCD filter weights for ClearType-style */
/* subpixel rendering. */
/* */
/* lcd_filter_func :: The LCD filtering callback function for */
/* for ClearType-style subpixel rendering. */
/* */
/* lcd_geometry :: This array specifies LCD subpixel geometry */
/* and controls Harmony LCD rendering technique, */
/* alternative to ClearType. */
/* */
/* pic_container :: Contains global structs and tables, instead */
/* of defining them globally. */
/* */
/* refcount :: A counter initialized to~1 at the time an */
/* @FT_Library structure is created. */
/* @FT_Reference_Library increments this counter, */
/* and @FT_Done_Library only destroys a library */
/* if the counter is~1, otherwise it simply */
/* decrements it. */
/* */
/**************************************************************************
*
* @Struct:
* FT_LibraryRec
*
* @Description:
* The FreeType library class. This is the root of all FreeType
* data. Use FT_New_Library() to create a library object, and
* FT_Done_Library() to discard it and all child objects.
*
* @Fields:
* memory ::
* The library's memory object. Manages memory
* allocation.
*
* version_major ::
* The major version number of the library.
*
* version_minor ::
* The minor version number of the library.
*
* version_patch ::
* The current patch level of the library.
*
* num_modules ::
* The number of modules currently registered
* within this library. This is set to 0 for new
* libraries. New modules are added through the
* FT_Add_Module() API function.
*
* modules ::
* A table used to store handles to the currently
* registered modules. Note that each font driver
* contains a list of its opened faces.
*
* renderers ::
* The list of renderers currently registered
* within the library.
*
* cur_renderer ::
* The current outline renderer. This is a
* shortcut used to avoid parsing the list on
* each call to FT_Outline_Render(). It is a
* handle to the current renderer for the
* FT_GLYPH_FORMAT_OUTLINE format.
*
* auto_hinter ::
* The auto-hinter module interface.
*
* debug_hooks ::
* An array of four function pointers that allow
* debuggers to hook into a font format's
* interpreter. Currently, only the TrueType
* bytecode debugger uses this.
*
* lcd_weights ::
* The LCD filter weights for ClearType-style
* subpixel rendering.
*
* lcd_filter_func ::
* The LCD filtering callback function for
* for ClearType-style subpixel rendering.
*
* lcd_geometry ::
* This array specifies LCD subpixel geometry
* and controls Harmony LCD rendering technique,
* alternative to ClearType.
*
* pic_container ::
* Contains global structs and tables, instead
* of defining them globally.
*
* refcount ::
* A counter initialized to~1 at the time an
* @FT_Library structure is created.
* @FT_Reference_Library increments this counter,
* and @FT_Done_Library only destroys a library
* if the counter is~1, otherwise it simply
* decrements it.
*/
typedef struct FT_LibraryRec_
{
FT_Memory memory; /* library's memory manager */
@ -943,32 +980,33 @@ FT_BEGIN_HEADER
#ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM
/*************************************************************************/
/* */
/* <Function> */
/* FT_New_Memory */
/* */
/* <Description> */
/* Creates a new memory object. */
/* */
/* <Return> */
/* A pointer to the new memory object. 0 in case of error. */
/* */
/**************************************************************************
*
* @Function:
* FT_New_Memory
*
* @Description:
* Creates a new memory object.
*
* @Return:
* A pointer to the new memory object. 0 in case of error.
*/
FT_BASE( FT_Memory )
FT_New_Memory( void );
/*************************************************************************/
/* */
/* <Function> */
/* FT_Done_Memory */
/* */
/* <Description> */
/* Discards memory manager. */
/* */
/* <Input> */
/* memory :: A handle to the memory manager. */
/* */
/**************************************************************************
*
* @Function:
* FT_Done_Memory
*
* @Description:
* Discards memory manager.
*
* @Input:
* memory ::
* A handle to the memory manager.
*/
FT_BASE( void )
FT_Done_Memory( FT_Memory memory );
@ -986,16 +1024,16 @@ FT_BEGIN_HEADER
#endif
/*************************************************************************/
/* */
/* <Macro> */
/* FT_DEFINE_OUTLINE_FUNCS */
/* */
/* <Description> */
/* Used to initialize an instance of FT_Outline_Funcs struct. */
/* The struct will be allocated in the global scope (or the scope */
/* where the macro is used). */
/* */
/**************************************************************************
*
* @Macro:
* FT_DEFINE_OUTLINE_FUNCS
*
* @Description:
* Used to initialize an instance of FT_Outline_Funcs struct.
* The struct will be allocated in the global scope (or the scope
* where the macro is used).
*/
#define FT_DEFINE_OUTLINE_FUNCS( \
class_, \
move_to_, \
@ -1015,16 +1053,16 @@ FT_BEGIN_HEADER
};
/*************************************************************************/
/* */
/* <Macro> */
/* FT_DEFINE_RASTER_FUNCS */
/* */
/* <Description> */
/* Used to initialize an instance of FT_Raster_Funcs struct. */
/* The struct will be allocated in the global scope (or the scope */
/* where the macro is used). */
/* */
/**************************************************************************
*
* @Macro:
* FT_DEFINE_RASTER_FUNCS
*
* @Description:
* Used to initialize an instance of FT_Raster_Funcs struct.
* The struct will be allocated in the global scope (or the scope
* where the macro is used).
*/
#define FT_DEFINE_RASTER_FUNCS( \
class_, \
glyph_format_, \
@ -1045,15 +1083,15 @@ FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* <Macro> */
/* FT_DEFINE_GLYPH */
/* */
/* <Description> */
/* The struct will be allocated in the global scope (or the scope */
/* where the macro is used). */
/* */
/**************************************************************************
*
* @Macro:
* FT_DEFINE_GLYPH
*
* @Description:
* The struct will be allocated in the global scope (or the scope
* where the macro is used).
*/
#define FT_DEFINE_GLYPH( \
class_, \
size_, \
@ -1078,24 +1116,24 @@ FT_BEGIN_HEADER
};
/*************************************************************************/
/* */
/* <Macro> */
/* FT_DECLARE_RENDERER */
/* */
/* <Description> */
/* Used to create a forward declaration of a */
/* FT_Renderer_Class struct instance. */
/* */
/* <Macro> */
/* FT_DEFINE_RENDERER */
/* */
/* <Description> */
/* Used to initialize an instance of FT_Renderer_Class struct. */
/* */
/* The struct will be allocated in the global scope (or the scope */
/* where the macro is used). */
/* */
/**************************************************************************
*
* @Macro:
* FT_DECLARE_RENDERER
*
* @Description:
* Used to create a forward declaration of a
* FT_Renderer_Class struct instance.
*
* @Macro:
* FT_DEFINE_RENDERER
*
* @Description:
* Used to initialize an instance of FT_Renderer_Class struct.
*
* The struct will be allocated in the global scope (or the scope
* where the macro is used).
*/
#define FT_DECLARE_RENDERER( class_ ) \
FT_EXPORT_VAR( const FT_Renderer_Class ) class_;
@ -1139,32 +1177,32 @@ FT_BEGIN_HEADER
};
/*************************************************************************/
/* */
/* <Macro> */
/* FT_DECLARE_MODULE */
/* */
/* <Description> */
/* Used to create a forward declaration of a */
/* FT_Module_Class struct instance. */
/* */
/* <Macro> */
/* FT_DEFINE_MODULE */
/* */
/* <Description> */
/* Used to initialize an instance of an FT_Module_Class struct. */
/* */
/* The struct will be allocated in the global scope (or the scope */
/* where the macro is used). */
/* */
/* <Macro> */
/* FT_DEFINE_ROOT_MODULE */
/* */
/* <Description> */
/* Used to initialize an instance of an FT_Module_Class struct inside */
/* another struct that contains it or in a function that initializes */
/* that containing struct. */
/* */
/**************************************************************************
*
* @Macro:
* FT_DECLARE_MODULE
*
* @Description:
* Used to create a forward declaration of a
* FT_Module_Class struct instance.
*
* @Macro:
* FT_DEFINE_MODULE
*
* @Description:
* Used to initialize an instance of an FT_Module_Class struct.
*
* The struct will be allocated in the global scope (or the scope
* where the macro is used).
*
* @Macro:
* FT_DEFINE_ROOT_MODULE
*
* @Description:
* Used to initialize an instance of an FT_Module_Class struct inside
* another struct that contains it or in a function that initializes
* that containing struct.
*/
#define FT_DECLARE_MODULE( class_ ) \
FT_CALLBACK_TABLE \
const FT_Module_Class class_;

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftpsprop.h */
/* */
/* Get and set properties of PostScript drivers (specification). */
/* */
/* Copyright 2017-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftpsprop.h
*
* Get and set properties of PostScript drivers (specification).
*
* Copyright 2017-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTPSPROP_H_

View File

@ -1,24 +1,24 @@
/***************************************************************************/
/* */
/* ftrfork.h */
/* */
/* Embedded resource forks accessor (specification). */
/* */
/* Copyright 2004-2018 by */
/* Masatake YAMATO and Redhat K.K. */
/* */
/* 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. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftrfork.h
*
* Embedded resource forks accessor (specification).
*
* Copyright 2004-2018 by
* Masatake YAMATO and Redhat K.K.
*
* 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.
*
*/
/***************************************************************************/
/* Development of the code in this file is support of */
/* Information-technology Promotion Agency, Japan. */
/***************************************************************************/
/****************************************************************************
* Development of the code in this file is support of
* Information-technology Promotion Agency, Japan.
*/
#ifndef FTRFORK_H_
@ -92,45 +92,45 @@ FT_BEGIN_HEADER
#endif /* FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK */
/*************************************************************************/
/* */
/* <Function> */
/* FT_Raccess_Guess */
/* */
/* <Description> */
/* Guess a file name and offset where the actual resource fork is */
/* stored. The macro FT_RACCESS_N_RULES holds the number of */
/* guessing rules; the guessed result for the Nth rule is */
/* represented as a triplet: a new file name (new_names[N]), a file */
/* offset (offsets[N]), and an error code (errors[N]). */
/* */
/* <Input> */
/* library :: */
/* A FreeType library instance. */
/* */
/* stream :: */
/* A file stream containing the resource fork. */
/* */
/* base_name :: */
/* The (base) file name of the resource fork used for some */
/* guessing rules. */
/* */
/* <Output> */
/* new_names :: */
/* An array of guessed file names in which the resource forks may */
/* exist. If `new_names[N]' is NULL, the guessed file name is */
/* equal to `base_name'. */
/* */
/* offsets :: */
/* An array of guessed file offsets. `offsets[N]' holds the file */
/* offset of the possible start of the resource fork in file */
/* `new_names[N]'. */
/* */
/* errors :: */
/* An array of FreeType error codes. `errors[N]' is the error */
/* code of Nth guessing rule function. If `errors[N]' is not */
/* FT_Err_Ok, `new_names[N]' and `offsets[N]' are meaningless. */
/* */
/**************************************************************************
*
* @Function:
* FT_Raccess_Guess
*
* @Description:
* Guess a file name and offset where the actual resource fork is
* stored. The macro FT_RACCESS_N_RULES holds the number of
* guessing rules; the guessed result for the Nth rule is
* represented as a triplet: a new file name (new_names[N]), a file
* offset (offsets[N]), and an error code (errors[N]).
*
* @Input:
* library ::
* A FreeType library instance.
*
* stream ::
* A file stream containing the resource fork.
*
* base_name ::
* The (base) file name of the resource fork used for some
* guessing rules.
*
* @Output:
* new_names ::
* An array of guessed file names in which the resource forks may
* exist. If `new_names[N]' is NULL, the guessed file name is
* equal to `base_name'.
*
* offsets ::
* An array of guessed file offsets. `offsets[N]' holds the file
* offset of the possible start of the resource fork in file
* `new_names[N]'.
*
* errors ::
* An array of FreeType error codes. `errors[N]' is the error
* code of Nth guessing rule function. If `errors[N]' is not
* FT_Err_Ok, `new_names[N]' and `offsets[N]' are meaningless.
*/
FT_BASE( void )
FT_Raccess_Guess( FT_Library library,
FT_Stream stream,
@ -140,37 +140,37 @@ FT_BEGIN_HEADER
FT_Error* errors );
/*************************************************************************/
/* */
/* <Function> */
/* FT_Raccess_Get_HeaderInfo */
/* */
/* <Description> */
/* Get the information from the header of resource fork. The */
/* information includes the file offset where the resource map */
/* starts, and the file offset where the resource data starts. */
/* `FT_Raccess_Get_DataOffsets' requires these two data. */
/* */
/* <Input> */
/* library :: */
/* A FreeType library instance. */
/* */
/* stream :: */
/* A file stream containing the resource fork. */
/* */
/* rfork_offset :: */
/* The file offset where the resource fork starts. */
/* */
/* <Output> */
/* map_offset :: */
/* The file offset where the resource map starts. */
/* */
/* rdata_pos :: */
/* The file offset where the resource data starts. */
/* */
/* <Return> */
/* FreeType error code. FT_Err_Ok means success. */
/* */
/**************************************************************************
*
* @Function:
* FT_Raccess_Get_HeaderInfo
*
* @Description:
* Get the information from the header of resource fork. The
* information includes the file offset where the resource map
* starts, and the file offset where the resource data starts.
* `FT_Raccess_Get_DataOffsets' requires these two data.
*
* @Input:
* library ::
* A FreeType library instance.
*
* stream ::
* A file stream containing the resource fork.
*
* rfork_offset ::
* The file offset where the resource fork starts.
*
* @Output:
* map_offset ::
* The file offset where the resource map starts.
*
* rdata_pos ::
* The file offset where the resource data starts.
*
* @Return:
* FreeType error code. FT_Err_Ok means success.
*/
FT_BASE( FT_Error )
FT_Raccess_Get_HeaderInfo( FT_Library library,
FT_Stream stream,
@ -179,55 +179,55 @@ FT_BEGIN_HEADER
FT_Long *rdata_pos );
/*************************************************************************/
/* */
/* <Function> */
/* FT_Raccess_Get_DataOffsets */
/* */
/* <Description> */
/* Get the data offsets for a tag in a resource fork. Offsets are */
/* stored in an array because, in some cases, resources in a resource */
/* fork have the same tag. */
/* */
/* <Input> */
/* library :: */
/* A FreeType library instance. */
/* */
/* stream :: */
/* A file stream containing the resource fork. */
/* */
/* map_offset :: */
/* The file offset where the resource map starts. */
/* */
/* rdata_pos :: */
/* The file offset where the resource data starts. */
/* */
/* tag :: */
/* The resource tag. */
/* */
/* sort_by_res_id :: */
/* A Boolean to sort the fragmented resource by their ids. */
/* The fragmented resources for `POST' resource should be sorted */
/* to restore Type1 font properly. For `sfnt' resources, sorting */
/* may induce a different order of the faces in comparison to that */
/* by QuickDraw API. */
/* */
/* <Output> */
/* offsets :: */
/* The stream offsets for the resource data specified by `tag'. */
/* This array is allocated by the function, so you have to call */
/* @ft_mem_free after use. */
/* */
/* count :: */
/* The length of offsets array. */
/* */
/* <Return> */
/* FreeType error code. FT_Err_Ok means success. */
/* */
/* <Note> */
/* Normally you should use `FT_Raccess_Get_HeaderInfo' to get the */
/* value for `map_offset' and `rdata_pos'. */
/* */
/**************************************************************************
*
* @Function:
* FT_Raccess_Get_DataOffsets
*
* @Description:
* Get the data offsets for a tag in a resource fork. Offsets are
* stored in an array because, in some cases, resources in a resource
* fork have the same tag.
*
* @Input:
* library ::
* A FreeType library instance.
*
* stream ::
* A file stream containing the resource fork.
*
* map_offset ::
* The file offset where the resource map starts.
*
* rdata_pos ::
* The file offset where the resource data starts.
*
* tag ::
* The resource tag.
*
* sort_by_res_id ::
* A Boolean to sort the fragmented resource by their ids.
* The fragmented resources for `POST' resource should be sorted
* to restore Type1 font properly. For `sfnt' resources, sorting
* may induce a different order of the faces in comparison to that
* by QuickDraw API.
*
* @Output:
* offsets ::
* The stream offsets for the resource data specified by `tag'.
* This array is allocated by the function, so you have to call
* @ft_mem_free after use.
*
* count ::
* The length of offsets array.
*
* @Return:
* FreeType error code. FT_Err_Ok means success.
*
* @Note:
* Normally you should use `FT_Raccess_Get_HeaderInfo' to get the
* value for `map_offset' and `rdata_pos'.
*/
FT_BASE( FT_Error )
FT_Raccess_Get_DataOffsets( FT_Library library,
FT_Stream stream,

View File

@ -1,31 +1,31 @@
/***************************************************************************/
/* */
/* ftserv.h */
/* */
/* The FreeType services (specification only). */
/* */
/* Copyright 2003-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftserv.h
*
* The FreeType services (specification only).
*
* Copyright 2003-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*************************************************************************/
/* */
/* Each module can export one or more `services'. Each service is */
/* identified by a constant string and modeled by a pointer; the latter */
/* generally corresponds to a structure containing function pointers. */
/* */
/* Note that a service's data cannot be a mere function pointer because */
/* in C it is possible that function pointers might be implemented */
/* differently than data pointers (e.g. 48 bits instead of 32). */
/* */
/*************************************************************************/
/**************************************************************************
*
* Each module can export one or more `services'. Each service is
* identified by a constant string and modeled by a pointer; the latter
* generally corresponds to a structure containing function pointers.
*
* Note that a service's data cannot be a mere function pointer because
* in C it is possible that function pointers might be implemented
* differently than data pointers (e.g. 48 bits instead of 32).
*
*/
#ifndef FTSERV_H_
@ -34,7 +34,8 @@
FT_BEGIN_HEADER
/*
/**************************************************************************
*
* @macro:
* FT_FACE_FIND_SERVICE
*
@ -85,7 +86,8 @@ FT_BEGIN_HEADER
#endif /* !C++ */
/*
/**************************************************************************
*
* @macro:
* FT_FACE_FIND_GLOBAL_SERVICE
*
@ -157,26 +159,26 @@ FT_BEGIN_HEADER
typedef const FT_ServiceDescRec* FT_ServiceDesc;
/*************************************************************************/
/* */
/* <Macro> */
/* FT_DEFINE_SERVICEDESCREC1 */
/* FT_DEFINE_SERVICEDESCREC2 */
/* FT_DEFINE_SERVICEDESCREC3 */
/* FT_DEFINE_SERVICEDESCREC4 */
/* FT_DEFINE_SERVICEDESCREC5 */
/* FT_DEFINE_SERVICEDESCREC6 */
/* FT_DEFINE_SERVICEDESCREC7 */
/* FT_DEFINE_SERVICEDESCREC8 */
/* FT_DEFINE_SERVICEDESCREC9 */
/* FT_DEFINE_SERVICEDESCREC10 */
/* */
/* <Description> */
/* Used to initialize an array of FT_ServiceDescRec structures. */
/* */
/* The array will be allocated in the global scope (or the scope */
/* where the macro is used). */
/* */
/**************************************************************************
*
* @Macro:
* FT_DEFINE_SERVICEDESCREC1
* FT_DEFINE_SERVICEDESCREC2
* FT_DEFINE_SERVICEDESCREC3
* FT_DEFINE_SERVICEDESCREC4
* FT_DEFINE_SERVICEDESCREC5
* FT_DEFINE_SERVICEDESCREC6
* FT_DEFINE_SERVICEDESCREC7
* FT_DEFINE_SERVICEDESCREC8
* FT_DEFINE_SERVICEDESCREC9
* FT_DEFINE_SERVICEDESCREC10
*
* @Description:
* Used to initialize an array of FT_ServiceDescRec structures.
*
* The array will be allocated in the global scope (or the scope
* where the macro is used).
*/
#define FT_DEFINE_SERVICEDESCREC1( class_, \
serv_id_1, serv_data_1 ) \
static const FT_ServiceDescRec class_[] = \
@ -403,7 +405,8 @@ FT_BEGIN_HEADER
#define FT_SERVICE_UNAVAILABLE ((FT_Pointer)~(FT_PtrDist)1)
/*
/**************************************************************************
*
* @macro:
* FT_FACE_LOOKUP_SERVICE
*

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftstream.h */
/* */
/* Stream handling (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftstream.h
*
* Stream handling (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTSTREAM_H_
@ -147,11 +147,11 @@ FT_BEGIN_HEADER
#define FT_FRAME_SKIP_BYTES( count ) { ft_frame_skip, count, 0 }
/*************************************************************************/
/* */
/* Integer extraction macros -- the `buffer' parameter must ALWAYS be of */
/* type `char*' or equivalent (1-byte elements). */
/* */
/**************************************************************************
*
* Integer extraction macros -- the `buffer' parameter must ALWAYS be of
* type `char*' or equivalent (1-byte elements).
*/
#define FT_BYTE_( p, i ) ( ((const FT_Byte*)(p))[(i)] )
@ -258,10 +258,10 @@ FT_BEGIN_HEADER
( (unsigned long)( buffer += 4, FT_PEEK_ULONG_LE( buffer - 4 ) ) )
/*************************************************************************/
/* */
/* Each GET_xxxx() macro uses an implicit `stream' variable. */
/* */
/**************************************************************************
*
* Each GET_xxxx() macro uses an implicit `stream' variable.
*/
#if 0
#define FT_GET_MACRO( type ) FT_NEXT_ ## type ( stream->cursor )

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* fttrace.h */
/* */
/* Tracing handling (specification only). */
/* */
/* Copyright 2002-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* fttrace.h
*
* Tracing handling (specification only).
*
* Copyright 2002-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/* definitions of trace levels for FreeType 2 */

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ftvalid.h */
/* */
/* FreeType validation support (specification). */
/* */
/* Copyright 2004-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ftvalid.h
*
* FreeType validation support (specification).
*
* Copyright 2004-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTVALID_H_
@ -42,31 +42,31 @@ FT_BEGIN_HEADER
typedef struct FT_ValidatorRec_ volatile* FT_Validator;
/*************************************************************************/
/* */
/* There are three distinct validation levels defined here: */
/* */
/* FT_VALIDATE_DEFAULT :: */
/* A table that passes this validation level can be used reliably by */
/* FreeType. It generally means that all offsets have been checked to */
/* prevent out-of-bound reads, that array counts are correct, etc. */
/* */
/* FT_VALIDATE_TIGHT :: */
/* A table that passes this validation level can be used reliably and */
/* doesn't contain invalid data. For example, a charmap table that */
/* returns invalid glyph indices will not pass, even though it can */
/* be used with FreeType in default mode (the library will simply */
/* return an error later when trying to load the glyph). */
/* */
/* It also checks that fields which must be a multiple of 2, 4, or 8, */
/* don't have incorrect values, etc. */
/* */
/* FT_VALIDATE_PARANOID :: */
/* Only for font debugging. Checks that a table follows the */
/* specification by 100%. Very few fonts will be able to pass this */
/* level anyway but it can be useful for certain tools like font */
/* editors/converters. */
/* */
/**************************************************************************
*
* There are three distinct validation levels defined here:
*
* FT_VALIDATE_DEFAULT ::
* A table that passes this validation level can be used reliably by
* FreeType. It generally means that all offsets have been checked to
* prevent out-of-bound reads, that array counts are correct, etc.
*
* FT_VALIDATE_TIGHT ::
* A table that passes this validation level can be used reliably and
* doesn't contain invalid data. For example, a charmap table that
* returns invalid glyph indices will not pass, even though it can
* be used with FreeType in default mode (the library will simply
* return an error later when trying to load the glyph).
*
* It also checks that fields which must be a multiple of 2, 4, or 8,
* don't have incorrect values, etc.
*
* FT_VALIDATE_PARANOID ::
* Only for font debugging. Checks that a table follows the
* specification by 100%. Very few fonts will be able to pass this
* level anyway but it can be useful for certain tools like font
* editors/converters.
*/
typedef enum FT_ValidationLevel_
{
FT_VALIDATE_DEFAULT = 0,

View File

@ -1,27 +1,27 @@
/***************************************************************************/
/* */
/* internal.h */
/* */
/* Internal header files (specification only). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* internal.h
*
* Internal header files (specification only).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*************************************************************************/
/* */
/* This file is automatically included by `ft2build.h'. */
/* Do not include it manually! */
/* */
/*************************************************************************/
/**************************************************************************
*
* This file is automatically included by `ft2build.h'.
* Do not include it manually!
*
*/
#define FT_INTERNAL_OBJECTS_H <freetype/internal/ftobjs.h>

View File

@ -1,20 +1,20 @@
/***************************************************************************/
/* */
/* psaux.h */
/* */
/* Auxiliary functions and data structures related to PostScript fonts */
/* (specification). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* psaux.h
*
* Auxiliary functions and data structures related to PostScript fonts
* (specification).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef PSAUX_H_
@ -35,10 +35,10 @@
FT_BEGIN_HEADER
/***********************************************************************/
/* */
/* PostScript modules driver class. */
/* */
/************************************************************************
*
* PostScript modules driver class.
*/
typedef struct PS_DriverRec_
{
FT_DriverRec root;
@ -64,23 +64,27 @@ FT_BEGIN_HEADER
typedef const struct PS_Table_FuncsRec_* PS_Table_Funcs;
/*************************************************************************/
/* */
/* <Struct> */
/* PS_Table_FuncsRec */
/* */
/* <Description> */
/* A set of function pointers to manage PS_Table objects. */
/* */
/* <Fields> */
/* table_init :: Used to initialize a table. */
/* */
/* table_done :: Finalizes resp. destroy a given table. */
/* */
/* table_add :: Adds a new object to a table. */
/* */
/* table_release :: Releases table data, then finalizes it. */
/* */
/**************************************************************************
*
* @Struct:
* PS_Table_FuncsRec
*
* @Description:
* A set of function pointers to manage PS_Table objects.
*
* @Fields:
* table_init ::
* Used to initialize a table.
*
* table_done ::
* Finalizes resp. destroy a given table.
*
* table_add ::
* Adds a new object to a table.
*
* table_release ::
* Releases table data, then finalizes it.
*/
typedef struct PS_Table_FuncsRec_
{
FT_Error
@ -103,41 +107,51 @@ FT_BEGIN_HEADER
} PS_Table_FuncsRec;
/*************************************************************************/
/* */
/* <Struct> */
/* PS_TableRec */
/* */
/* <Description> */
/* A PS_Table is a simple object used to store an array of objects in */
/* a single memory block. */
/* */
/* <Fields> */
/* block :: The address in memory of the growheap's block. This */
/* can change between two object adds, due to */
/* reallocation. */
/* */
/* cursor :: The current top of the grow heap within its block. */
/* */
/* capacity :: The current size of the heap block. Increments by */
/* 1kByte chunks. */
/* */
/* init :: Set to 0xDEADBEEF if `elements' and `lengths' have */
/* been allocated. */
/* */
/* max_elems :: The maximum number of elements in table. */
/* */
/* num_elems :: The current number of elements in table. */
/* */
/* elements :: A table of element addresses within the block. */
/* */
/* lengths :: A table of element sizes within the block. */
/* */
/* memory :: The object used for memory operations */
/* (alloc/realloc). */
/* */
/* funcs :: A table of method pointers for this object. */
/* */
/**************************************************************************
*
* @Struct:
* PS_TableRec
*
* @Description:
* A PS_Table is a simple object used to store an array of objects in
* a single memory block.
*
* @Fields:
* block ::
* The address in memory of the growheap's block. This
* can change between two object adds, due to
* reallocation.
*
* cursor ::
* The current top of the grow heap within its block.
*
* capacity ::
* The current size of the heap block. Increments by
* 1kByte chunks.
*
* init ::
* Set to 0xDEADBEEF if `elements' and `lengths' have
* been allocated.
*
* max_elems ::
* The maximum number of elements in table.
*
* num_elems ::
* The current number of elements in table.
*
* elements ::
* A table of element addresses within the block.
*
* lengths ::
* A table of element sizes within the block.
*
* memory ::
* The object used for memory operations
* (alloc/realloc).
*
* funcs ::
* A table of method pointers for this object.
*/
typedef struct PS_TableRec_
{
FT_Byte* block; /* current memory block */
@ -425,27 +439,33 @@ FT_BEGIN_HEADER
} PS_Parser_FuncsRec;
/*************************************************************************/
/* */
/* <Struct> */
/* PS_ParserRec */
/* */
/* <Description> */
/* A PS_Parser is an object used to parse a Type 1 font very quickly. */
/* */
/* <Fields> */
/* cursor :: The current position in the text. */
/* */
/* base :: Start of the processed text. */
/* */
/* limit :: End of the processed text. */
/* */
/* error :: The last error returned. */
/* */
/* memory :: The object used for memory operations (alloc/realloc). */
/* */
/* funcs :: A table of functions for the parser. */
/* */
/**************************************************************************
*
* @Struct:
* PS_ParserRec
*
* @Description:
* A PS_Parser is an object used to parse a Type 1 font very quickly.
*
* @Fields:
* cursor ::
* The current position in the text.
*
* base ::
* Start of the processed text.
*
* limit ::
* End of the processed text.
*
* error ::
* The last error returned.
*
* memory ::
* The object used for memory operations (alloc/realloc).
*
* funcs ::
* A table of functions for the parser.
*/
typedef struct PS_ParserRec_
{
FT_Byte* cursor;
@ -484,51 +504,68 @@ FT_BEGIN_HEADER
} PS_Builder_FuncsRec;
/*************************************************************************/
/* */
/* <Structure> */
/* PS_Builder */
/* */
/* <Description> */
/* A structure used during glyph loading to store its outline. */
/* */
/* <Fields> */
/* memory :: The current memory object. */
/* */
/* face :: The current face object. */
/* */
/* glyph :: The current glyph slot. */
/* */
/* loader :: XXX */
/* */
/* base :: The base glyph outline. */
/* */
/* current :: The current glyph outline. */
/* */
/* pos_x :: The horizontal translation (if composite glyph). */
/* */
/* pos_y :: The vertical translation (if composite glyph). */
/* */
/* left_bearing :: The left side bearing point. */
/* */
/* advance :: The horizontal advance vector. */
/* */
/* bbox :: Unused. */
/* */
/* path_begun :: A flag which indicates that a new path has begun. */
/* */
/* load_points :: If this flag is not set, no points are loaded. */
/* */
/* no_recurse :: Set but not used. */
/* */
/* metrics_only :: A boolean indicating that we only want to compute */
/* the metrics of a given glyph, not load all of its */
/* points. */
/* */
/* is_t1 :: Set if current font type is Type 1. */
/* */
/* funcs :: An array of function pointers for the builder. */
/* */
/**************************************************************************
*
* @Structure:
* PS_Builder
*
* @Description:
* A structure used during glyph loading to store its outline.
*
* @Fields:
* memory ::
* The current memory object.
*
* face ::
* The current face object.
*
* glyph ::
* The current glyph slot.
*
* loader ::
* XXX
*
* base ::
* The base glyph outline.
*
* current ::
* The current glyph outline.
*
* pos_x ::
* The horizontal translation (if composite glyph).
*
* pos_y ::
* The vertical translation (if composite glyph).
*
* left_bearing ::
* The left side bearing point.
*
* advance ::
* The horizontal advance vector.
*
* bbox ::
* Unused.
*
* path_begun ::
* A flag which indicates that a new path has begun.
*
* load_points ::
* If this flag is not set, no points are loaded.
*
* no_recurse ::
* Set but not used.
*
* metrics_only ::
* A boolean indicating that we only want to compute
* the metrics of a given glyph, not load all of its
* points.
*
* is_t1 ::
* Set if current font type is Type 1.
*
* funcs ::
* An array of function pointers for the builder.
*/
struct PS_Builder_
{
FT_Memory memory;
@ -729,54 +766,72 @@ FT_BEGIN_HEADER
} T1_ParseState;
/*************************************************************************/
/* */
/* <Structure> */
/* T1_BuilderRec */
/* */
/* <Description> */
/* A structure used during glyph loading to store its outline. */
/* */
/* <Fields> */
/* memory :: The current memory object. */
/* */
/* face :: The current face object. */
/* */
/* glyph :: The current glyph slot. */
/* */
/* loader :: XXX */
/* */
/* base :: The base glyph outline. */
/* */
/* current :: The current glyph outline. */
/* */
/* max_points :: maximum points in builder outline */
/* */
/* max_contours :: Maximum number of contours in builder outline. */
/* */
/* pos_x :: The horizontal translation (if composite glyph). */
/* */
/* pos_y :: The vertical translation (if composite glyph). */
/* */
/* left_bearing :: The left side bearing point. */
/* */
/* advance :: The horizontal advance vector. */
/* */
/* bbox :: Unused. */
/* */
/* parse_state :: An enumeration which controls the charstring */
/* parsing state. */
/* */
/* load_points :: If this flag is not set, no points are loaded. */
/* */
/* no_recurse :: Set but not used. */
/* */
/* metrics_only :: A boolean indicating that we only want to compute */
/* the metrics of a given glyph, not load all of its */
/* points. */
/* */
/* funcs :: An array of function pointers for the builder. */
/* */
/**************************************************************************
*
* @Structure:
* T1_BuilderRec
*
* @Description:
* A structure used during glyph loading to store its outline.
*
* @Fields:
* memory ::
* The current memory object.
*
* face ::
* The current face object.
*
* glyph ::
* The current glyph slot.
*
* loader ::
* XXX
*
* base ::
* The base glyph outline.
*
* current ::
* The current glyph outline.
*
* max_points ::
* maximum points in builder outline
*
* max_contours ::
* Maximum number of contours in builder outline.
*
* pos_x ::
* The horizontal translation (if composite glyph).
*
* pos_y ::
* The vertical translation (if composite glyph).
*
* left_bearing ::
* The left side bearing point.
*
* advance ::
* The horizontal advance vector.
*
* bbox ::
* Unused.
*
* parse_state ::
* An enumeration which controls the charstring
* parsing state.
*
* load_points ::
* If this flag is not set, no points are loaded.
*
* no_recurse ::
* Set but not used.
*
* metrics_only ::
* A boolean indicating that we only want to compute
* the metrics of a given glyph, not load all of its
* points.
*
* funcs ::
* An array of function pointers for the builder.
*/
typedef struct T1_BuilderRec_
{
FT_Memory memory;
@ -817,19 +872,19 @@ FT_BEGIN_HEADER
#if 0
/*************************************************************************/
/* */
/* 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 8
/*************************************************************************/
/* */
/* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */
/* minimum of 16 is required. */
/* */
/**************************************************************************
*
* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A
* minimum of 16 is required.
*/
#define T1_MAX_CHARSTRINGS_OPERANDS 32
#endif /* 0 */
@ -993,53 +1048,71 @@ FT_BEGIN_HEADER
} CFF_Builder_FuncsRec;
/*************************************************************************/
/* */
/* <Structure> */
/* CFF_Builder */
/* */
/* <Description> */
/* A structure used during glyph loading to store its outline. */
/* */
/* <Fields> */
/* memory :: The current memory object. */
/* */
/* face :: The current face object. */
/* */
/* glyph :: The current glyph slot. */
/* */
/* loader :: The current glyph loader. */
/* */
/* base :: The base glyph outline. */
/* */
/* current :: The current glyph outline. */
/* */
/* pos_x :: The horizontal translation (if composite glyph). */
/* */
/* pos_y :: The vertical translation (if composite glyph). */
/* */
/* left_bearing :: The left side bearing point. */
/* */
/* advance :: The horizontal advance vector. */
/* */
/* bbox :: Unused. */
/* */
/* path_begun :: A flag which indicates that a new path has begun. */
/* */
/* load_points :: If this flag is not set, no points are loaded. */
/* */
/* no_recurse :: Set but not used. */
/* */
/* metrics_only :: A boolean indicating that we only want to compute */
/* the metrics of a given glyph, not load all of its */
/* points. */
/* */
/* hints_funcs :: Auxiliary pointer for hinting. */
/* */
/* hints_globals :: Auxiliary pointer for hinting. */
/* */
/* funcs :: A table of method pointers for this object. */
/* */
/**************************************************************************
*
* @Structure:
* CFF_Builder
*
* @Description:
* A structure used during glyph loading to store its outline.
*
* @Fields:
* memory ::
* The current memory object.
*
* face ::
* The current face object.
*
* glyph ::
* The current glyph slot.
*
* loader ::
* The current glyph loader.
*
* base ::
* The base glyph outline.
*
* current ::
* The current glyph outline.
*
* pos_x ::
* The horizontal translation (if composite glyph).
*
* pos_y ::
* The vertical translation (if composite glyph).
*
* left_bearing ::
* The left side bearing point.
*
* advance ::
* The horizontal advance vector.
*
* bbox ::
* Unused.
*
* path_begun ::
* A flag which indicates that a new path has begun.
*
* load_points ::
* If this flag is not set, no points are loaded.
*
* no_recurse ::
* Set but not used.
*
* metrics_only ::
* A boolean indicating that we only want to compute
* the metrics of a given glyph, not load all of its
* points.
*
* hints_funcs ::
* Auxiliary pointer for hinting.
*
* hints_globals ::
* Auxiliary pointer for hinting.
*
* funcs ::
* A table of method pointers for this object.
*/
struct CFF_Builder_
{
FT_Memory memory;
@ -1211,25 +1284,29 @@ FT_BEGIN_HEADER
typedef struct AFM_StreamRec_* AFM_Stream;
/*************************************************************************/
/* */
/* <Struct> */
/* AFM_ParserRec */
/* */
/* <Description> */
/* An AFM_Parser is a parser for the AFM files. */
/* */
/* <Fields> */
/* memory :: The object used for memory operations (alloc and */
/* realloc). */
/* */
/* stream :: This is an opaque object. */
/* */
/* FontInfo :: The result will be stored here. */
/* */
/* get_index :: A user provided function to get a glyph index by its */
/* name. */
/* */
/**************************************************************************
*
* @Struct:
* AFM_ParserRec
*
* @Description:
* An AFM_Parser is a parser for the AFM files.
*
* @Fields:
* memory ::
* The object used for memory operations (alloc and
* realloc).
*
* stream ::
* This is an opaque object.
*
* FontInfo ::
* The result will be stored here.
*
* get_index ::
* A user provided function to get a glyph index by its
* name.
*/
typedef struct AFM_ParserRec_
{
FT_Memory memory;

View File

@ -1,21 +1,21 @@
/***************************************************************************/
/* */
/* pshints.h */
/* */
/* Interface to Postscript-specific (Type 1 and Type 2) hints */
/* recorders (specification only). These are used to support native */
/* T1/T2 hints in the `type1', `cid', and `cff' font drivers. */
/* */
/* Copyright 2001-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* pshints.h
*
* Interface to Postscript-specific (Type 1 and Type 2) hints
* recorders (specification only). These are used to support native
* T1/T2 hints in the `type1', `cid', and `cff' font drivers.
*
* Copyright 2001-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef PSHINTS_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svbdf.h */
/* */
/* The FreeType BDF services (specification). */
/* */
/* Copyright 2003-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svbdf.h
*
* The FreeType BDF services (specification).
*
* Copyright 2003-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVBDF_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svcfftl.h */
/* */
/* The FreeType CFF tables loader service (specification). */
/* */
/* Copyright 2017-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svcfftl.h
*
* The FreeType CFF tables loader service (specification).
*
* Copyright 2017-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVCFFTL_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svcid.h */
/* */
/* The FreeType CID font services (specification). */
/* */
/* Copyright 2007-2018 by */
/* Derek 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. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svcid.h
*
* The FreeType CID font services (specification).
*
* Copyright 2007-2018 by
* Derek 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 SVCID_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svfntfmt.h */
/* */
/* The FreeType font format service (specification only). */
/* */
/* Copyright 2003-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svfntfmt.h
*
* The FreeType font format service (specification only).
*
* Copyright 2003-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVFNTFMT_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svgldict.h */
/* */
/* The FreeType glyph dictionary services (specification). */
/* */
/* Copyright 2003-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svgldict.h
*
* The FreeType glyph dictionary services (specification).
*
* Copyright 2003-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVGLDICT_H_

View File

@ -1,28 +1,28 @@
/***************************************************************************/
/* */
/* svgxval.h */
/* */
/* FreeType API for validating TrueTypeGX/AAT tables (specification). */
/* */
/* Copyright 2004-2018 by */
/* Masatake YAMATO, Red Hat 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. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svgxval.h
*
* FreeType API for validating TrueTypeGX/AAT tables (specification).
*
* Copyright 2004-2018 by
* Masatake YAMATO, Red Hat 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 SVGXVAL_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svkern.h */
/* */
/* The FreeType Kerning service (specification). */
/* */
/* Copyright 2006-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svkern.h
*
* The FreeType Kerning service (specification).
*
* Copyright 2006-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVKERN_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svmetric.h */
/* */
/* The FreeType services for metrics variations (specification). */
/* */
/* Copyright 2016-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svmetric.h
*
* The FreeType services for metrics variations (specification).
*
* Copyright 2016-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVMETRIC_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svmm.h */
/* */
/* The FreeType Multiple Masters and GX var services (specification). */
/* */
/* Copyright 2003-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svmm.h
*
* The FreeType Multiple Masters and GX var services (specification).
*
* Copyright 2003-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVMM_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svotval.h */
/* */
/* The FreeType OpenType validation service (specification). */
/* */
/* Copyright 2004-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svotval.h
*
* The FreeType OpenType validation service (specification).
*
* Copyright 2004-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVOTVAL_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svpfr.h */
/* */
/* Internal PFR service functions (specification). */
/* */
/* Copyright 2003-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svpfr.h
*
* Internal PFR service functions (specification).
*
* Copyright 2003-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVPFR_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svpostnm.h */
/* */
/* The FreeType PostScript name services (specification). */
/* */
/* Copyright 2003-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svpostnm.h
*
* The FreeType PostScript name services (specification).
*
* Copyright 2003-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVPOSTNM_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svprop.h */
/* */
/* The FreeType property service (specification). */
/* */
/* Copyright 2012-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svprop.h
*
* The FreeType property service (specification).
*
* Copyright 2012-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVPROP_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svpscmap.h */
/* */
/* The FreeType PostScript charmap service (specification). */
/* */
/* Copyright 2003-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svpscmap.h
*
* The FreeType PostScript charmap service (specification).
*
* Copyright 2003-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVPSCMAP_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svpsinfo.h */
/* */
/* The FreeType PostScript info service (specification). */
/* */
/* Copyright 2003-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svpsinfo.h
*
* The FreeType PostScript info service (specification).
*
* Copyright 2003-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVPSINFO_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svsfnt.h */
/* */
/* The FreeType SFNT table loading service (specification). */
/* */
/* Copyright 2003-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svsfnt.h
*
* The FreeType SFNT table loading service (specification).
*
* Copyright 2003-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVSFNT_H_

View File

@ -1,20 +1,20 @@
/***************************************************************************/
/* */
/* svttcmap.h */
/* */
/* The FreeType TrueType/sfnt cmap extra information service. */
/* */
/* Copyright 2003-2018 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. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svttcmap.h
*
* The FreeType TrueType/sfnt cmap extra information service.
*
* Copyright 2003-2018 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.
*
*/
/* Development of this service is support of
Information-technology Promotion Agency, Japan. */
@ -32,29 +32,29 @@ FT_BEGIN_HEADER
#define FT_SERVICE_ID_TT_CMAP "tt-cmaps"
/*************************************************************************/
/* */
/* <Struct> */
/* TT_CMapInfo */
/* */
/* <Description> */
/* A structure used to store TrueType/sfnt specific cmap information */
/* which is not covered by the generic @FT_CharMap structure. This */
/* structure can be accessed with the @FT_Get_TT_CMap_Info function. */
/* */
/* <Fields> */
/* language :: */
/* The language ID used in Mac fonts. Definitions of values are in */
/* `ttnameid.h'. */
/* */
/* format :: */
/* The cmap format. OpenType 1.6 defines the formats 0 (byte */
/* encoding table), 2~(high-byte mapping through table), 4~(segment */
/* mapping to delta values), 6~(trimmed table mapping), 8~(mixed */
/* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented */
/* coverage), 13~(last resort font), and 14 (Unicode Variation */
/* Sequences). */
/* */
/**************************************************************************
*
* @Struct:
* TT_CMapInfo
*
* @Description:
* A structure used to store TrueType/sfnt specific cmap information
* which is not covered by the generic @FT_CharMap structure. This
* structure can be accessed with the @FT_Get_TT_CMap_Info function.
*
* @Fields:
* language ::
* The language ID used in Mac fonts. Definitions of values are in
* `ttnameid.h'.
*
* format ::
* The cmap format. OpenType 1.6 defines the formats 0 (byte
* encoding table), 2~(high-byte mapping through table), 4~(segment
* mapping to delta values), 6~(trimmed table mapping), 8~(mixed
* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented
* coverage), 13~(last resort font), and 14 (Unicode Variation
* Sequences).
*/
typedef struct TT_CMapInfo_
{
FT_ULong language;

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svtteng.h */
/* */
/* The FreeType TrueType engine query service (specification). */
/* */
/* Copyright 2006-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svtteng.h
*
* The FreeType TrueType engine query service (specification).
*
* Copyright 2006-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVTTENG_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svttglyf.h */
/* */
/* The FreeType TrueType glyph service. */
/* */
/* Copyright 2007-2018 by */
/* David Turner. */
/* */
/* 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. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svttglyf.h
*
* The FreeType TrueType glyph service.
*
* Copyright 2007-2018 by
* David Turner.
*
* 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 SVTTGLYF_H_
#define SVTTGLYF_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* svwinfnt.h */
/* */
/* The FreeType Windows FNT/FONT service (specification). */
/* */
/* Copyright 2003-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* svwinfnt.h
*
* The FreeType Windows FNT/FONT service (specification).
*
* Copyright 2003-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef SVWINFNT_H_

File diff suppressed because it is too large Load Diff

View File

@ -1,20 +1,20 @@
/***************************************************************************/
/* */
/* t1types.h */
/* */
/* Basic Type1/Type2 type definitions and interface (specification */
/* only). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* t1types.h
*
* Basic Type1/Type2 type definitions and interface (specification
* only).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef T1TYPES_H_
@ -45,28 +45,33 @@ FT_BEGIN_HEADER
/*************************************************************************/
/*************************************************************************/
/* */
/* <Struct> */
/* T1_EncodingRec */
/* */
/* <Description> */
/* A structure modeling a custom encoding. */
/* */
/* <Fields> */
/* num_chars :: The number of character codes in the encoding. */
/* Usually 256. */
/* */
/* code_first :: The lowest valid character code in the encoding. */
/* */
/* code_last :: The highest valid character code in the encoding */
/* + 1. When equal to code_first there are no valid */
/* character codes. */
/* */
/* char_index :: An array of corresponding glyph indices. */
/* */
/* char_name :: An array of corresponding glyph names. */
/* */
/**************************************************************************
*
* @Struct:
* T1_EncodingRec
*
* @Description:
* A structure modeling a custom encoding.
*
* @Fields:
* num_chars ::
* The number of character codes in the encoding.
* Usually 256.
*
* code_first ::
* The lowest valid character code in the encoding.
*
* code_last ::
* The highest valid character code in the encoding
* + 1. When equal to code_first there are no valid
* character codes.
*
* char_index ::
* An array of corresponding glyph indices.
*
* char_name ::
* An array of corresponding glyph names.
*/
typedef struct T1_EncodingRecRec_
{
FT_Int num_chars;

File diff suppressed because it is too large Load Diff

View File

@ -1,20 +1,20 @@
/***************************************************************************/
/* */
/* t1tables.h */
/* */
/* Basic Type 1/Type 2 tables definitions and interface (specification */
/* only). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* t1tables.h
*
* Basic Type 1/Type 2 tables definitions and interface (specification
* only).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef T1TABLES_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 (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
*
*/
/* 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,40 @@ 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 +176,56 @@ 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 */
@ -330,14 +330,14 @@ FT_BEGIN_HEADER
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.
*/
typedef struct CID_FaceDictRec_
{
PS_PrivateRec private_dict;
@ -359,38 +359,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,27 +421,27 @@ 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;
@ -538,25 +538,25 @@ 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 :: */
/* */
/* <Since> */
/* 2.4.8 */
/* */
/**************************************************************************
*
* @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,
@ -568,66 +568,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 :: */
/* */
/* <Since> */
/* 2.4.8 */
/* */
/**************************************************************************
*
* @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 */

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* ttnameid.h */
/* */
/* TrueType name ID definitions (specification only). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ttnameid.h
*
* TrueType name ID definitions (specification only).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef TTNAMEID_H_
@ -26,19 +26,19 @@
FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* <Section> */
/* truetype_tables */
/* */
/**************************************************************************
*
* @Section:
* truetype_tables
*/
/*************************************************************************/
/* */
/* Possible values for the `platform' identifier code in the name */
/* records of an SFNT `name' table. */
/* */
/*************************************************************************/
/**************************************************************************
*
* Possible values for the `platform' identifier code in the name
* records of an SFNT `name' table.
*
*/
/***********************************************************************

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,19 @@
/***************************************************************************/
/* */
/* tttags.h */
/* */
/* Tags for TrueType and OpenType tables (specification only). */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* tttags.h
*
* Tags for TrueType and OpenType tables (specification only).
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef TTAGS_H_

View File

@ -1,34 +1,34 @@
/***************************************************************************/
/* */
/* ft2build.h */
/* */
/* FreeType 2 build and setup macros. */
/* */
/* Copyright 1996-2018 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/****************************************************************************
*
* ft2build.h
*
* FreeType 2 build and setup macros.
*
* Copyright 1996-2018 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/*************************************************************************/
/* */
/* 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_