[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,29 +1,29 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ft2build.h */ * ft2build.h
/* */ *
/* FreeType 2 build and setup macros (development version). */ * FreeType 2 build and setup macros (development version).
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/* /*
* This is a development version of <ft2build.h> to build the library in * This is a development version of <ft2build.h> to build the library in
* debug mode. Its only difference to the default version is that it * debug mode. Its only difference to the default version is that it
* includes a local `ftoption.h' header file with different settings for * includes a local `ftoption.h' header file with different settings for
* many configuration macros. * many configuration macros.
* *
* To use it, simply ensure that the directory containing this file is * To use it, simply ensure that the directory containing this file is
* scanned by the compiler before the default FreeType header directory. * scanned by the compiler before the default FreeType header directory.
* *
*/ */

File diff suppressed because it is too large Load Diff

View File

@ -1,39 +1,39 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftconfig.h */ * ftconfig.h
/* */ *
/* ANSI-specific configuration file (specification only). */ * ANSI-specific configuration file (specification only).
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* This header file contains a number of macro definitions that are used */ * 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 */ * 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 */ * determined at compile time, and you should not need to change it to
/* port FreeType, except to compile the library with a non-ANSI */ * port FreeType, except to compile the library with a non-ANSI
/* compiler. */ * compiler.
/* */ *
/* Note however that if some specific modifications are needed, we */ * Note however that if some specific modifications are needed, we
/* advise you to place a modified copy in your build directory. */ * advise you to place a modified copy in your build directory.
/* */ *
/* The build directory is usually `builds/<system>', and contains */ * The build directory is usually `builds/<system>', and contains
/* system-specific files that are always included first when building */ * system-specific files that are always included first when building
/* the library. */ * the library.
/* */ *
/* This ANSI version should stay in `include/config/'. */ * This ANSI version should stay in `include/config/'.
/* */ *
/*************************************************************************/ */
#ifndef FTCONFIG_H_ #ifndef FTCONFIG_H_
#define FTCONFIG_H_ #define FTCONFIG_H_
@ -46,16 +46,16 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* PLATFORM-SPECIFIC CONFIGURATION MACROS */ * PLATFORM-SPECIFIC CONFIGURATION MACROS
/* */ *
/* These macros can be toggled to suit a specific system. The current */ * These macros can be toggled to suit a specific system. The current
/* ones are defaults used to compile FreeType in an ANSI C environment */ * ones are defaults used to compile FreeType in an ANSI C environment
/* (16bit compilers are also supported). Copy this file to your own */ * (16bit compilers are also supported). Copy this file to your own
/* `builds/<system>' directory, and edit it to port the engine. */ * `builds/<system>' directory, and edit it to port the engine.
/* */ *
/*************************************************************************/ */
/* There are systems (like the Texas Instruments 'C54x) where a `char' */ /* There are systems (like the Texas Instruments 'C54x) where a `char' */
@ -102,24 +102,24 @@ FT_BEGIN_HEADER
#endif #endif
/*************************************************************************/ /**************************************************************************
/* */ *
/* AUTOMATIC CONFIGURATION MACROS */ * AUTOMATIC CONFIGURATION MACROS
/* */ *
/* These macros are computed from the ones defined above. Don't touch */ * These macros are computed from the ones defined above. Don't touch
/* their definition, unless you know precisely what you are doing. No */ * their definition, unless you know precisely what you are doing. No
/* porter should need to mess with them. */ * porter should need to mess with them.
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* Mac support */ * Mac support
/* */ *
/* This is the only necessary change, so it is defined here instead */ * This is the only necessary change, so it is defined here instead
/* providing a new configuration file. */ * providing a new configuration file.
/* */ */
#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) ) #if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) )
/* no Carbon frameworks for 64bit 10.4.x */ /* no Carbon frameworks for 64bit 10.4.x */
/* AvailabilityMacros.h is available since Mac OS X 10.2, */ /* AvailabilityMacros.h is available since Mac OS X 10.2, */
@ -151,33 +151,33 @@ FT_BEGIN_HEADER
#endif #endif
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* basic_types */ * basic_types
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Int16 */ * FT_Int16
/* */ *
/* <Description> */ * @Description:
/* A typedef for a 16bit signed integer type. */ * A typedef for a 16bit signed integer type.
/* */ */
typedef signed short FT_Int16; typedef signed short FT_Int16;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_UInt16 */ * FT_UInt16
/* */ *
/* <Description> */ * @Description:
/* A typedef for a 16bit unsigned integer type. */ * A typedef for a 16bit unsigned integer type.
/* */ */
typedef unsigned short FT_UInt16; typedef unsigned short FT_UInt16;
/* */ /* */
@ -186,50 +186,50 @@ FT_BEGIN_HEADER
/* this #if 0 ... #endif clause is for documentation purposes */ /* this #if 0 ... #endif clause is for documentation purposes */
#if 0 #if 0
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Int32 */ * FT_Int32
/* */ *
/* <Description> */ * @Description:
/* A typedef for a 32bit signed integer type. The size depends on */ * A typedef for a 32bit signed integer type. The size depends on
/* the configuration. */ * the configuration.
/* */ */
typedef signed XXX FT_Int32; typedef signed XXX FT_Int32;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_UInt32 */ * FT_UInt32
/* */ *
/* A typedef for a 32bit unsigned integer type. The size depends on */ * A typedef for a 32bit unsigned integer type. The size depends on
/* the configuration. */ * the configuration.
/* */ */
typedef unsigned XXX FT_UInt32; typedef unsigned XXX FT_UInt32;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Int64 */ * FT_Int64
/* */ *
/* A typedef for a 64bit signed integer type. The size depends on */ * A typedef for a 64bit signed integer type. The size depends on
/* the configuration. Only defined if there is real 64bit support; */ * the configuration. Only defined if there is real 64bit support;
/* otherwise, it gets emulated with a structure (if necessary). */ * otherwise, it gets emulated with a structure (if necessary).
/* */ */
typedef signed XXX FT_Int64; typedef signed XXX FT_Int64;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_UInt64 */ * FT_UInt64
/* */ *
/* A typedef for a 64bit unsigned integer type. The size depends on */ * A typedef for a 64bit unsigned integer type. The size depends on
/* the configuration. Only defined if there is real 64bit support; */ * the configuration. Only defined if there is real 64bit support;
/* otherwise, it gets emulated with a structure (if necessary). */ * otherwise, it gets emulated with a structure (if necessary).
/* */ */
typedef unsigned XXX FT_UInt64; typedef unsigned XXX FT_UInt64;
/* */ /* */
@ -274,13 +274,13 @@ FT_BEGIN_HEADER
#define FT_INT64 long #define FT_INT64 long
#define FT_UINT64 unsigned long #define FT_UINT64 unsigned long
/*************************************************************************/ /**************************************************************************
/* */ *
/* A 64-bit data type may create compilation problems if you compile */ * 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 */ * in strict ANSI mode. To avoid them, we disable other 64-bit data
/* types if __STDC__ is defined. You can however ignore this rule */ * types if __STDC__ is defined. You can however ignore this rule
/* by defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */ * by defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro.
/* */ */
#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 ) #elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L #if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
@ -342,11 +342,11 @@ FT_BEGIN_HEADER
#endif #endif
/*************************************************************************/ /**************************************************************************
/* */ *
/* miscellaneous */ * miscellaneous
/* */ *
/*************************************************************************/ */
#define FT_BEGIN_STMNT do { #define FT_BEGIN_STMNT do {

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftheader.h */ * ftheader.h
/* */ *
/* Build macros of the FreeType 2 library. */ * Build macros of the FreeType 2 library.
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTHEADER_H_ #ifndef FTHEADER_H_
#define FTHEADER_H_ #define FTHEADER_H_
@ -55,43 +55,43 @@
#endif #endif
/*************************************************************************/ /**************************************************************************
/* */ *
/* Aliases for the FreeType 2 public and configuration files. */ * Aliases for the FreeType 2 public and configuration files.
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* header_file_macros */ * header_file_macros
/* */ *
/* <Title> */ * @Title:
/* Header File Macros */ * Header File Macros
/* */ *
/* <Abstract> */ * @Abstract:
/* Macro definitions used to #include specific header files. */ * Macro definitions used to #include specific header files.
/* */ *
/* <Description> */ * @Description:
/* The following macros are defined to the name of specific */ * The following macros are defined to the name of specific
/* FreeType~2 header files. They can be used directly in #include */ * FreeType~2 header files. They can be used directly in #include
/* statements as in: */ * statements as in:
/* */ *
/* { */ * {
/* #include FT_FREETYPE_H */ * #include FT_FREETYPE_H
/* #include FT_MULTIPLE_MASTERS_H */ * #include FT_MULTIPLE_MASTERS_H
/* #include FT_GLYPH_H */ * #include FT_GLYPH_H
/* } */ * }
/* */ *
/* There are several reasons why we are now using macros to name */ * There are several reasons why we are now using macros to name
/* public header files. The first one is that such macros are not */ * public header files. The first one is that such macros are not
/* limited to the infamous 8.3~naming rule required by DOS (and */ * limited to the infamous 8.3~naming rule required by DOS (and
/* `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h'). */ * `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h').
/* */ *
/* The second reason is that it allows for more flexibility in the */ * The second reason is that it allows for more flexibility in the
/* way FreeType~2 is installed on a given system. */ * way FreeType~2 is installed on a given system.
/* */ *
/*************************************************************************/ */
/* configuration files */ /* configuration files */

View File

@ -1,12 +1,12 @@
/* /*
* This file registers the FreeType modules compiled into the library. * This file registers the FreeType modules compiled into the library.
* *
* If you use GNU make, this file IS NOT USED! Instead, it is created in * If you use GNU make, this file IS NOT USED! Instead, it is created in
* the objects directory (normally `<topdir>/objs/') based on information * the objects directory (normally `<topdir>/objs/') based on information
* from `<topdir>/modules.cfg'. * from `<topdir>/modules.cfg'.
* *
* Please read `docs/INSTALL.ANY' and `docs/CUSTOMIZE' how to compile * Please read `docs/INSTALL.ANY' and `docs/CUSTOMIZE' how to compile
* FreeType without GNU make. * FreeType without GNU make.
* *
*/ */

File diff suppressed because it is too large Load Diff

View File

@ -1,31 +1,31 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftstdlib.h */ * ftstdlib.h
/* */ *
/* ANSI-specific library and header configuration file (specification */ * ANSI-specific library and header configuration file (specification
/* only). */ * only).
/* */ *
/* Copyright 2002-2018 by */ * Copyright 2002-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* This file is used to group all #includes to the ANSI C library that */ * This file is used to group all #includes to the ANSI C library that
/* FreeType normally requires. It also defines macros to rename the */ * FreeType normally requires. It also defines macros to rename the
/* standard functions within the FreeType source code. */ * standard functions within the FreeType source code.
/* */ *
/* Load a file which defines FTSTDLIB_H_ before this one to override it. */ * Load a file which defines FTSTDLIB_H_ before this one to override it.
/* */ *
/*************************************************************************/ */
#ifndef FTSTDLIB_H_ #ifndef FTSTDLIB_H_
@ -37,23 +37,23 @@
#define ft_ptrdiff_t ptrdiff_t #define ft_ptrdiff_t ptrdiff_t
/**********************************************************************/ /***********************************************************************
/* */ *
/* integer limits */ * integer limits
/* */ *
/* UINT_MAX and ULONG_MAX are used to automatically compute the size */ * 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 */ * of `int' and `long' in bytes at compile-time. So far, this works
/* for all platforms the library has been tested on. */ * for all platforms the library has been tested on.
/* */ *
/* Note that on the extremely rare platforms that do not provide */ * Note that on the extremely rare platforms that do not provide
/* integer types that are _exactly_ 16 and 32 bits wide (e.g. some */ * 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 */ * old Crays where `int' is 36 bits), we do not make any guarantee
/* about the correct behaviour of FT2 with all fonts. */ * about the correct behaviour of FT2 with all fonts.
/* */ *
/* In these case, `ftconfig.h' will refuse to compile anyway with a */ * In these case, `ftconfig.h' will refuse to compile anyway with a
/* message like `couldn't find 32-bit type' or something similar. */ * message like `couldn't find 32-bit type' or something similar.
/* */ *
/**********************************************************************/ */
#include <limits.h> #include <limits.h>
@ -68,11 +68,11 @@
#define FT_ULONG_MAX ULONG_MAX #define FT_ULONG_MAX ULONG_MAX
/**********************************************************************/ /***********************************************************************
/* */ *
/* character and string processing */ * character and string processing
/* */ *
/**********************************************************************/ */
#include <string.h> #include <string.h>
@ -92,11 +92,11 @@
#define ft_strstr strstr #define ft_strstr strstr
/**********************************************************************/ /***********************************************************************
/* */ *
/* file handling */ * file handling
/* */ *
/**********************************************************************/ */
#include <stdio.h> #include <stdio.h>
@ -110,11 +110,11 @@
#define ft_sprintf sprintf #define ft_sprintf sprintf
/**********************************************************************/ /***********************************************************************
/* */ *
/* sorting */ * sorting
/* */ *
/**********************************************************************/ */
#include <stdlib.h> #include <stdlib.h>
@ -122,11 +122,11 @@
#define ft_qsort qsort #define ft_qsort qsort
/**********************************************************************/ /***********************************************************************
/* */ *
/* memory allocation */ * memory allocation
/* */ *
/**********************************************************************/ */
#define ft_scalloc calloc #define ft_scalloc calloc
@ -135,22 +135,22 @@
#define ft_srealloc realloc #define ft_srealloc realloc
/**********************************************************************/ /***********************************************************************
/* */ *
/* miscellaneous */ * miscellaneous
/* */ *
/**********************************************************************/ */
#define ft_strtol strtol #define ft_strtol strtol
#define ft_getenv getenv #define ft_getenv getenv
/**********************************************************************/ /***********************************************************************
/* */ *
/* execution control */ * execution control
/* */ *
/**********************************************************************/ */
#include <setjmp.h> #include <setjmp.h>

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftadvanc.h */ * ftadvanc.h
/* */ *
/* Quick computation of advance widths (specification only). */ * Quick computation of advance widths (specification only).
/* */ *
/* Copyright 2008-2018 by */ * Copyright 2008-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTADVANC_H_ #ifndef FTADVANC_H_
@ -56,68 +56,72 @@ FT_BEGIN_HEADER
*/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Const> */ * @Const:
/* FT_ADVANCE_FLAG_FAST_ONLY */ * FT_ADVANCE_FLAG_FAST_ONLY
/* */ *
/* <Description> */ * @Description:
/* A bit-flag to be OR-ed with the `flags' parameter of the */ * A bit-flag to be OR-ed with the `flags' parameter of the
/* @FT_Get_Advance and @FT_Get_Advances functions. */ * @FT_Get_Advance and @FT_Get_Advances functions.
/* */ *
/* If set, it indicates that you want these functions to fail if the */ * If set, it indicates that you want these functions to fail if the
/* corresponding hinting mode or font driver doesn't allow for very */ * corresponding hinting mode or font driver doesn't allow for very
/* quick advance computation. */ * quick advance computation.
/* */ *
/* Typically, glyphs that are either unscaled, unhinted, bitmapped, */ * Typically, glyphs that are either unscaled, unhinted, bitmapped,
/* or light-hinted can have their advance width computed very */ * or light-hinted can have their advance width computed very
/* quickly. */ * quickly.
/* */ *
/* Normal and bytecode hinted modes that require loading, scaling, */ * Normal and bytecode hinted modes that require loading, scaling,
/* and hinting of the glyph outline, are extremely slow by */ * and hinting of the glyph outline, are extremely slow by
/* comparison. */ * comparison.
/* */ */
#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000L #define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000L
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Get_Advance */ * FT_Get_Advance
/* */ *
/* <Description> */ * @Description:
/* Retrieve the advance value of a given glyph outline in an */ * Retrieve the advance value of a given glyph outline in an
/* @FT_Face. */ * @FT_Face.
/* */ *
/* <Input> */ * @Input:
/* face :: The source @FT_Face handle. */ * face ::
/* */ * The source @FT_Face handle.
/* gindex :: The glyph index. */ *
/* */ * gindex ::
/* load_flags :: A set of bit flags similar to those used when */ * The glyph index.
/* calling @FT_Load_Glyph, used to determine what kind */ *
/* of advances you need. */ * load_flags ::
/* <Output> */ * A set of bit flags similar to those used when
/* padvance :: The advance value. If scaling is performed (based on */ * calling @FT_Load_Glyph, used to determine what kind
/* the value of `load_flags'), the advance value is in */ * of advances you need.
/* 16.16 format. Otherwise, it is in font units. */ * @Output:
/* */ * padvance ::
/* If @FT_LOAD_VERTICAL_LAYOUT is set, this is the */ * The advance value. If scaling is performed (based on
/* vertical advance corresponding to a vertical layout. */ * the value of `load_flags'), the advance value is in
/* Otherwise, it is the horizontal advance in a */ * 16.16 format. Otherwise, it is in font units.
/* horizontal layout. */ *
/* */ * If @FT_LOAD_VERTICAL_LAYOUT is set, this is the
/* <Return> */ * vertical advance corresponding to a vertical layout.
/* FreeType error code. 0 means success. */ * Otherwise, it is the horizontal advance in a
/* */ * horizontal layout.
/* <Note> */ *
/* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ * @Return:
/* if the corresponding font backend doesn't have a quick way to */ * FreeType error code. 0 means success.
/* retrieve the advances. */ *
/* */ * @Note:
/* A scaled advance is returned in 16.16 format but isn't transformed */ * This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and
/* by the affine transformation specified by @FT_Set_Transform. */ * 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_EXPORT( FT_Error )
FT_Get_Advance( FT_Face face, FT_Get_Advance( FT_Face face,
FT_UInt gindex, FT_UInt gindex,
@ -125,50 +129,55 @@ FT_BEGIN_HEADER
FT_Fixed *padvance ); FT_Fixed *padvance );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Get_Advances */ * FT_Get_Advances
/* */ *
/* <Description> */ * @Description:
/* Retrieve the advance values of several glyph outlines in an */ * Retrieve the advance values of several glyph outlines in an
/* @FT_Face. */ * @FT_Face.
/* */ *
/* <Input> */ * @Input:
/* face :: The source @FT_Face handle. */ * face ::
/* */ * The source @FT_Face handle.
/* start :: The first glyph index. */ *
/* */ * start ::
/* count :: The number of advance values you want to retrieve. */ * The first glyph index.
/* */ *
/* load_flags :: A set of bit flags similar to those used when */ * count ::
/* calling @FT_Load_Glyph. */ * The number of advance values you want to retrieve.
/* */ *
/* <Output> */ * load_flags ::
/* padvance :: The advance values. This array, to be provided by the */ * A set of bit flags similar to those used when
/* caller, must contain at least `count' elements. */ * calling @FT_Load_Glyph.
/* */ *
/* If scaling is performed (based on the value of */ * @Output:
/* `load_flags'), the advance values are in 16.16 format. */ * padvance ::
/* Otherwise, they are in font units. */ * The advance values. This array, to be provided by the
/* */ * caller, must contain at least `count' elements.
/* If @FT_LOAD_VERTICAL_LAYOUT is set, these are the */ *
/* vertical advances corresponding to a vertical layout. */ * If scaling is performed (based on the value of
/* Otherwise, they are the horizontal advances in a */ * `load_flags'), the advance values are in 16.16 format.
/* horizontal layout. */ * Otherwise, they are in font units.
/* */ *
/* <Return> */ * If @FT_LOAD_VERTICAL_LAYOUT is set, these are the
/* FreeType error code. 0 means success. */ * vertical advances corresponding to a vertical layout.
/* */ * Otherwise, they are the horizontal advances in a
/* <Note> */ * horizontal layout.
/* 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 */ * @Return:
/* retrieve the advances. */ * FreeType error code. 0 means success.
/* */ *
/* Scaled advances are returned in 16.16 format but aren't */ * @Note:
/* transformed by the affine transformation specified by */ * This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and
/* @FT_Set_Transform. */ * 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_EXPORT( FT_Error )
FT_Get_Advances( FT_Face face, FT_Get_Advances( FT_Face face,
FT_UInt start, FT_UInt start,

View File

@ -1,30 +1,30 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftbbox.h */ * ftbbox.h
/* */ *
/* FreeType exact bbox computation (specification). */ * FreeType exact bbox computation (specification).
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* This component has a _single_ role: to compute exact outline bounding */ * This component has a _single_ role: to compute exact outline bounding
/* boxes. */ * boxes.
/* */ *
/* It is separated from the rest of the engine for various technical */ * It is separated from the rest of the engine for various technical
/* reasons. It may well be integrated in `ftoutln' later. */ * reasons. It may well be integrated in `ftoutln' later.
/* */ *
/*************************************************************************/ */
#ifndef FTBBOX_H_ #ifndef FTBBOX_H_
@ -44,43 +44,45 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* outline_processing */ * outline_processing
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Outline_Get_BBox */ * FT_Outline_Get_BBox
/* */ *
/* <Description> */ * @Description:
/* Compute the exact bounding box of an outline. This is slower */ * Compute the exact bounding box of an outline. This is slower
/* than computing the control box. However, it uses an advanced */ * than computing the control box. However, it uses an advanced
/* algorithm that returns _very_ quickly when the two boxes */ * algorithm that returns _very_ quickly when the two boxes
/* coincide. Otherwise, the outline Bezier arcs are traversed to */ * coincide. Otherwise, the outline Bezier arcs are traversed to
/* extract their extrema. */ * extract their extrema.
/* */ *
/* <Input> */ * @Input:
/* outline :: A pointer to the source outline. */ * outline ::
/* */ * A pointer to the source outline.
/* <Output> */ *
/* abbox :: The outline's exact bounding box. */ * @Output:
/* */ * abbox ::
/* <Return> */ * The outline's exact bounding box.
/* FreeType error code. 0~means success. */ *
/* */ * @Return:
/* <Note> */ * FreeType error code. 0~means success.
/* If the font is tricky and the glyph has been loaded with */ *
/* @FT_LOAD_NO_SCALE, the resulting BBox is meaningless. To get */ * @Note:
/* reasonable values for the BBox it is necessary to load the glyph */ * If the font is tricky and the glyph has been loaded with
/* at a large ppem value (so that the hinting instructions can */ * @FT_LOAD_NO_SCALE, the resulting BBox is meaningless. To get
/* properly shift and scale the subglyphs), then extracting the BBox, */ * reasonable values for the BBox it is necessary to load the glyph
/* which can be eventually converted back to font units. */ * 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_EXPORT( FT_Error )
FT_Outline_Get_BBox( FT_Outline* outline, FT_Outline_Get_BBox( FT_Outline* outline,
FT_BBox *abbox ); FT_BBox *abbox );

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftbdf.h */ * ftbdf.h
/* */ *
/* FreeType API for accessing BDF-specific strings (specification). */ * FreeType API for accessing BDF-specific strings (specification).
/* */ *
/* Copyright 2002-2018 by */ * Copyright 2002-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTBDF_H_ #ifndef FTBDF_H_
@ -32,22 +32,22 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* bdf_fonts */ * bdf_fonts
/* */ *
/* <Title> */ * @Title:
/* BDF and PCF Files */ * BDF and PCF Files
/* */ *
/* <Abstract> */ * @Abstract:
/* BDF and PCF specific API. */ * BDF and PCF specific API.
/* */ *
/* <Description> */ * @Description:
/* This section contains the declaration of functions specific to BDF */ * This section contains the declaration of functions specific to BDF
/* and PCF fonts. */ * and PCF fonts.
/* */ *
/*************************************************************************/ */
/********************************************************************** /**********************************************************************
@ -139,14 +139,14 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* A handle to the input face. * A handle to the input face.
* *
* @output: * @output:
* acharset_encoding :: * acharset_encoding ::
* Charset encoding, as a C~string, owned by the face. * Charset encoding, as a C~string, owned by the face.
* *
* acharset_registry :: * acharset_registry ::
* Charset registry, as a C~string, owned by the face. * Charset registry, as a C~string, owned by the face.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
@ -169,12 +169,15 @@ FT_BEGIN_HEADER
* Retrieve a BDF property from a BDF or PCF font file. * Retrieve a BDF property from a BDF or PCF font file.
* *
* @input: * @input:
* face :: A handle to the input face. * face ::
* A handle to the input face.
* *
* name :: The property name. * name ::
* The property name.
* *
* @output: * @output:
* aproperty :: The property. * aproperty ::
* The property.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftbitmap.h */ * ftbitmap.h
/* */ *
/* FreeType utility functions for bitmaps (specification). */ * FreeType utility functions for bitmaps (specification).
/* */ *
/* Copyright 2004-2018 by */ * Copyright 2004-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTBITMAP_H_ #ifndef FTBITMAP_H_
@ -33,39 +33,40 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* bitmap_handling */ * bitmap_handling
/* */ *
/* <Title> */ * @Title:
/* Bitmap Handling */ * Bitmap Handling
/* */ *
/* <Abstract> */ * @Abstract:
/* Handling FT_Bitmap objects. */ * Handling FT_Bitmap objects.
/* */ *
/* <Description> */ * @Description:
/* This section contains functions for handling @FT_Bitmap objects. */ * This section contains functions for handling @FT_Bitmap objects.
/* Note that none of the functions changes the bitmap's `flow' (as */ * Note that none of the functions changes the bitmap's `flow' (as
/* indicated by the sign of the `pitch' field in `FT_Bitmap'). */ * indicated by the sign of the `pitch' field in `FT_Bitmap').
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Bitmap_Init */ * FT_Bitmap_Init
/* */ *
/* <Description> */ * @Description:
/* Initialize a pointer to an @FT_Bitmap structure. */ * Initialize a pointer to an @FT_Bitmap structure.
/* */ *
/* <InOut> */ * @InOut:
/* abitmap :: A pointer to the bitmap structure. */ * abitmap ::
/* */ * A pointer to the bitmap structure.
/* <Note> */ *
/* A deprecated name for the same function is `FT_Bitmap_New'. */ * @Note:
/* */ * A deprecated name for the same function is `FT_Bitmap_New'.
*/
FT_EXPORT( void ) FT_EXPORT( void )
FT_Bitmap_Init( FT_Bitmap *abitmap ); FT_Bitmap_Init( FT_Bitmap *abitmap );
@ -75,66 +76,73 @@ FT_BEGIN_HEADER
FT_Bitmap_New( FT_Bitmap *abitmap ); FT_Bitmap_New( FT_Bitmap *abitmap );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Bitmap_Copy */ * FT_Bitmap_Copy
/* */ *
/* <Description> */ * @Description:
/* Copy a bitmap into another one. */ * Copy a bitmap into another one.
/* */ *
/* <Input> */ * @Input:
/* library :: A handle to a library object. */ * library ::
/* */ * A handle to a library object.
/* source :: A handle to the source bitmap. */ *
/* */ * source ::
/* <Output> */ * A handle to the source bitmap.
/* target :: A handle to the target bitmap. */ *
/* */ * @Output:
/* <Return> */ * target ::
/* FreeType error code. 0~means success. */ * A handle to the target bitmap.
/* */ *
* @Return:
* FreeType error code. 0~means success.
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Bitmap_Copy( FT_Library library, FT_Bitmap_Copy( FT_Library library,
const FT_Bitmap *source, const FT_Bitmap *source,
FT_Bitmap *target ); FT_Bitmap *target );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Bitmap_Embolden */ * FT_Bitmap_Embolden
/* */ *
/* <Description> */ * @Description:
/* Embolden a bitmap. The new bitmap will be about `xStrength' */ * Embolden a bitmap. The new bitmap will be about `xStrength'
/* pixels wider and `yStrength' pixels higher. The left and bottom */ * pixels wider and `yStrength' pixels higher. The left and bottom
/* borders are kept unchanged. */ * borders are kept unchanged.
/* */ *
/* <Input> */ * @Input:
/* library :: A handle to a library object. */ * library ::
/* */ * A handle to a library object.
/* xStrength :: How strong the glyph is emboldened horizontally. */ *
/* Expressed in 26.6 pixel format. */ * xStrength ::
/* */ * How strong the glyph is emboldened horizontally.
/* yStrength :: How strong the glyph is emboldened vertically. */ * Expressed in 26.6 pixel format.
/* Expressed in 26.6 pixel format. */ *
/* */ * yStrength ::
/* <InOut> */ * How strong the glyph is emboldened vertically.
/* bitmap :: A handle to the target bitmap. */ * Expressed in 26.6 pixel format.
/* */ *
/* <Return> */ * @InOut:
/* FreeType error code. 0~means success. */ * bitmap ::
/* */ * A handle to the target bitmap.
/* <Note> */ *
/* The current implementation restricts `xStrength' to be less than */ * @Return:
/* or equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO. */ * FreeType error code. 0~means success.
/* */ *
/* If you want to embolden the bitmap owned by a @FT_GlyphSlotRec, */ * @Note:
/* you should call @FT_GlyphSlot_Own_Bitmap on the slot first. */ * The current implementation restricts `xStrength' to be less than
/* */ * or equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO.
/* Bitmaps in @FT_PIXEL_MODE_GRAY2 and @FT_PIXEL_MODE_GRAY@ format */ *
/* are converted to @FT_PIXEL_MODE_GRAY format (i.e., 8bpp). */ * 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_EXPORT( FT_Error )
FT_Bitmap_Embolden( FT_Library library, FT_Bitmap_Embolden( FT_Library library,
FT_Bitmap* bitmap, FT_Bitmap* bitmap,
@ -142,39 +150,43 @@ FT_BEGIN_HEADER
FT_Pos yStrength ); FT_Pos yStrength );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Bitmap_Convert */ * FT_Bitmap_Convert
/* */ *
/* <Description> */ * @Description:
/* Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp */ * Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp
/* to a bitmap object with depth 8bpp, making the number of used */ * to a bitmap object with depth 8bpp, making the number of used
/* bytes per line (a.k.a. the `pitch') a multiple of `alignment'. */ * bytes per line (a.k.a. the `pitch') a multiple of `alignment'.
/* */ *
/* <Input> */ * @Input:
/* library :: A handle to a library object. */ * library ::
/* */ * A handle to a library object.
/* source :: The source bitmap. */ *
/* */ * source ::
/* alignment :: The pitch of the bitmap is a multiple of this */ * The source bitmap.
/* argument. Common values are 1, 2, or 4. */ *
/* */ * alignment ::
/* <Output> */ * The pitch of the bitmap is a multiple of this
/* target :: The target bitmap. */ * argument. Common values are 1, 2, or 4.
/* */ *
/* <Return> */ * @Output:
/* FreeType error code. 0~means success. */ * target ::
/* */ * The target bitmap.
/* <Note> */ *
/* It is possible to call @FT_Bitmap_Convert multiple times without */ * @Return:
/* calling @FT_Bitmap_Done (the memory is simply reallocated). */ * FreeType error code. 0~means success.
/* */ *
/* Use @FT_Bitmap_Done to finally remove the bitmap object. */ * @Note:
/* */ * It is possible to call @FT_Bitmap_Convert multiple times without
/* The `library' argument is taken to have access to FreeType's */ * calling @FT_Bitmap_Done (the memory is simply reallocated).
/* memory handling functions. */ *
/* */ * 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_EXPORT( FT_Error )
FT_Bitmap_Convert( FT_Library library, FT_Bitmap_Convert( FT_Library library,
const FT_Bitmap *source, const FT_Bitmap *source,
@ -182,48 +194,51 @@ FT_BEGIN_HEADER
FT_Int alignment ); FT_Int alignment );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_GlyphSlot_Own_Bitmap */ * FT_GlyphSlot_Own_Bitmap
/* */ *
/* <Description> */ * @Description:
/* Make sure that a glyph slot owns `slot->bitmap'. */ * Make sure that a glyph slot owns `slot->bitmap'.
/* */ *
/* <Input> */ * @Input:
/* slot :: The glyph slot. */ * slot ::
/* */ * The glyph slot.
/* <Return> */ *
/* FreeType error code. 0~means success. */ * @Return:
/* */ * FreeType error code. 0~means success.
/* <Note> */ *
/* This function is to be used in combination with */ * @Note:
/* @FT_Bitmap_Embolden. */ * This function is to be used in combination with
/* */ * @FT_Bitmap_Embolden.
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot slot ); FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot slot );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Bitmap_Done */ * FT_Bitmap_Done
/* */ *
/* <Description> */ * @Description:
/* Destroy a bitmap object initialized with @FT_Bitmap_Init. */ * Destroy a bitmap object initialized with @FT_Bitmap_Init.
/* */ *
/* <Input> */ * @Input:
/* library :: A handle to a library object. */ * library ::
/* */ * A handle to a library object.
/* bitmap :: The bitmap object to be freed. */ *
/* */ * bitmap ::
/* <Return> */ * The bitmap object to be freed.
/* FreeType error code. 0~means success. */ *
/* */ * @Return:
/* <Note> */ * FreeType error code. 0~means success.
/* The `library' argument is taken to have access to FreeType's */ *
/* memory handling functions. */ * @Note:
/* */ * The `library' argument is taken to have access to FreeType's
* memory handling functions.
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Bitmap_Done( FT_Library library, FT_Bitmap_Done( FT_Library library,
FT_Bitmap *bitmap ); FT_Bitmap *bitmap );

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftbzip2.h */ * ftbzip2.h
/* */ *
/* Bzip2-compressed stream support. */ * Bzip2-compressed stream support.
/* */ *
/* Copyright 2010-2018 by */ * Copyright 2010-2018 by
/* Joel Klinghed. */ * Joel Klinghed.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTBZIP2_H_ #ifndef FTBZIP2_H_
@ -31,21 +31,21 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* bzip2 */ * bzip2
/* */ *
/* <Title> */ * @Title:
/* BZIP2 Streams */ * BZIP2 Streams
/* */ *
/* <Abstract> */ * @Abstract:
/* Using bzip2-compressed font files. */ * Using bzip2-compressed font files.
/* */ *
/* <Description> */ * @Description:
/* This section contains the declaration of Bzip2-specific functions. */ * 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. */ * This file defines the structure of the FreeType reference.
/* It is used by the python script that generates the HTML files. */ * It is used by the python script that generates the HTML files.
/* */ *
/***************************************************************************/ */
/***************************************************************************/ /****************************************************************************
/* */ *
/* <Chapter> */ * @Chapter:
/* general_remarks */ * general_remarks
/* */ *
/* <Title> */ * @Title:
/* General Remarks */ * General Remarks
/* */ *
/* <Sections> */ * @Sections:
/* header_inclusion */ * header_inclusion
/* user_allocation */ * user_allocation
/* */ *
/***************************************************************************/ */
/***************************************************************************/ /****************************************************************************
/* */ *
/* <Chapter> */ * @Chapter:
/* core_api */ * core_api
/* */ *
/* <Title> */ * @Title:
/* Core API */ * Core API
/* */ *
/* <Sections> */ * @Sections:
/* version */ * version
/* basic_types */ * basic_types
/* base_interface */ * base_interface
/* glyph_variants */ * glyph_variants
/* glyph_management */ * glyph_management
/* mac_specific */ * mac_specific
/* sizes_management */ * sizes_management
/* header_file_macros */ * header_file_macros
/* */ *
/***************************************************************************/ */
/***************************************************************************/ /****************************************************************************
/* */ *
/* <Chapter> */ * @Chapter:
/* format_specific */ * format_specific
/* */ *
/* <Title> */ * @Title:
/* Format-Specific API */ * Format-Specific API
/* */ *
/* <Sections> */ * @Sections:
/* multiple_masters */ * multiple_masters
/* truetype_tables */ * truetype_tables
/* type1_tables */ * type1_tables
/* sfnt_names */ * sfnt_names
/* bdf_fonts */ * bdf_fonts
/* cid_fonts */ * cid_fonts
/* pfr_fonts */ * pfr_fonts
/* winfnt_fonts */ * winfnt_fonts
/* font_formats */ * font_formats
/* gasp_table */ * gasp_table
/* */ *
/***************************************************************************/ */
/***************************************************************************/ /****************************************************************************
/* */ *
/* <Chapter> */ * @Chapter:
/* module_specific */ * module_specific
/* */ *
/* <Title> */ * @Title:
/* Controlling FreeType Modules */ * Controlling FreeType Modules
/* */ *
/* <Sections> */ * @Sections:
/* auto_hinter */ * auto_hinter
/* cff_driver */ * cff_driver
/* t1_cid_driver */ * t1_cid_driver
/* tt_driver */ * tt_driver
/* pcf_driver */ * pcf_driver
/* properties */ * properties
/* parameter_tags */ * parameter_tags
/* */ *
/***************************************************************************/ */
/***************************************************************************/ /****************************************************************************
/* */ *
/* <Chapter> */ * @Chapter:
/* cache_subsystem */ * cache_subsystem
/* */ *
/* <Title> */ * @Title:
/* Cache Sub-System */ * Cache Sub-System
/* */ *
/* <Sections> */ * @Sections:
/* cache_subsystem */ * cache_subsystem
/* */ *
/***************************************************************************/ */
/***************************************************************************/ /****************************************************************************
/* */ *
/* <Chapter> */ * @Chapter:
/* support_api */ * support_api
/* */ *
/* <Title> */ * @Title:
/* Support API */ * Support API
/* */ *
/* <Sections> */ * @Sections:
/* computations */ * computations
/* list_processing */ * list_processing
/* outline_processing */ * outline_processing
/* quick_advance */ * quick_advance
/* bitmap_handling */ * bitmap_handling
/* raster */ * raster
/* glyph_stroker */ * glyph_stroker
/* system_interface */ * system_interface
/* module_management */ * module_management
/* gzip */ * gzip
/* lzw */ * lzw
/* bzip2 */ * bzip2
/* lcd_filtering */ * lcd_filtering
/* */ *
/***************************************************************************/ */
/***************************************************************************/ /****************************************************************************
/* */ *
/* <Chapter> */ * @Chapter:
/* error_codes */ * error_codes
/* */ *
/* <Title> */ * @Title:
/* Error Codes */ * Error Codes
/* */ *
/* <Sections> */ * @Sections:
/* error_enumerations */ * error_enumerations
/* error_code_values */ * error_code_values
/* */ *
/***************************************************************************/ */

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftcid.h */ * ftcid.h
/* */ *
/* FreeType API for accessing CID font information (specification). */ * FreeType API for accessing CID font information (specification).
/* */ *
/* Copyright 2007-2018 by */ * Copyright 2007-2018 by
/* Dereg Clegg and Michael Toftdal. */ * Dereg Clegg and Michael Toftdal.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTCID_H_ #ifndef FTCID_H_
@ -32,22 +32,22 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* cid_fonts */ * cid_fonts
/* */ *
/* <Title> */ * @Title:
/* CID Fonts */ * CID Fonts
/* */ *
/* <Abstract> */ * @Abstract:
/* CID-keyed font specific API. */ * CID-keyed font specific API.
/* */ *
/* <Description> */ * @Description:
/* This section contains the declaration of CID-keyed font specific */ * This section contains the declaration of CID-keyed font specific
/* functions. */ * functions.
/* */ *
/*************************************************************************/ */
/********************************************************************** /**********************************************************************
@ -61,17 +61,17 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* A handle to the input face. * A handle to the input face.
* *
* @output: * @output:
* registry :: * registry ::
* The registry, as a C~string, owned by the face. * The registry, as a C~string, owned by the face.
* *
* ordering :: * ordering ::
* The ordering, as a C~string, owned by the face. * The ordering, as a C~string, owned by the face.
* *
* supplement :: * supplement ::
* The supplement. * The supplement.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
@ -102,11 +102,11 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* A handle to the input face. * A handle to the input face.
* *
* @output: * @output:
* is_cid :: * is_cid ::
* The type of the face as an @FT_Bool. * The type of the face as an @FT_Bool.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
@ -133,14 +133,14 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* A handle to the input face. * A handle to the input face.
* *
* glyph_index :: * glyph_index ::
* The input glyph index. * The input glyph index.
* *
* @output: * @output:
* cid :: * cid ::
* The CID as an @FT_UInt. * The CID as an @FT_UInt.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.

View File

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

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftdriver.h */ * ftdriver.h
/* */ *
/* FreeType API for controlling driver modules (specification only). */ * FreeType API for controlling driver modules (specification only).
/* */ *
/* Copyright 2017-2018 by */ * Copyright 2017-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTDRIVER_H_ #ifndef FTDRIVER_H_
@ -428,7 +428,7 @@ FT_BEGIN_HEADER
* at smaller sizes. * at smaller sizes.
* *
* By default, the Adobe engines for CFF, Type~1, and CID fonts darken * By default, the Adobe engines for CFF, Type~1, and CID fonts darken
* stems at smaller sizes, regardless of hinting, to enhance contrast. * stems at smaller sizes, regardless of hinting, to enhance contrast.
* Setting this property, stem darkening gets switched off. * Setting this property, stem darkening gets switched off.
* *
* For the auto-hinter, stem-darkening is experimental currently and * For the auto-hinter, stem-darkening is experimental currently and

View File

@ -1,58 +1,58 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* fterrdef.h */ * fterrdef.h
/* */ *
/* FreeType error codes (specification). */ * FreeType error codes (specification).
/* */ *
/* Copyright 2002-2018 by */ * Copyright 2002-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* error_code_values */ * error_code_values
/* */ *
/* <Title> */ * @Title:
/* Error Code Values */ * Error Code Values
/* */ *
/* <Abstract> */ * @Abstract:
/* All possible error codes returned by FreeType functions. */ * All possible error codes returned by FreeType functions.
/* */ *
/* <Description> */ * @Description:
/* The list below is taken verbatim from the file `fterrdef.h' */ * The list below is taken verbatim from the file `fterrdef.h'
/* (loaded automatically by including `FT_FREETYPE_H'). The first */ * (loaded automatically by including `FT_FREETYPE_H'). The first
/* argument of the `FT_ERROR_DEF_' macro is the error label; by */ * argument of the `FT_ERROR_DEF_' macro is the error label; by
/* default, the prefix `FT_Err_' gets added so that you get error */ * default, the prefix `FT_Err_' gets added so that you get error
/* names like `FT_Err_Cannot_Open_Resource'. The second argument is */ * names like `FT_Err_Cannot_Open_Resource'. The second argument is
/* the error code, and the last argument an error string, which is not */ * the error code, and the last argument an error string, which is not
/* used by FreeType. */ * used by FreeType.
/* */ *
/* Within your application you should *only* use error names and */ * Within your application you should *only* use error names and
/* *never* its numeric values! The latter might (and actually do) */ * *never* its numeric values! The latter might (and actually do)
/* change in forthcoming FreeType versions. */ * change in forthcoming FreeType versions.
/* */ *
/* Macro `FT_NOERRORDEF_' defines `FT_Err_Ok', which is always zero. */ * Macro `FT_NOERRORDEF_' defines `FT_Err_Ok', which is always zero.
/* See the `Error Enumerations' subsection how to automatically */ * See the `Error Enumerations' subsection how to automatically
/* generate a list of error strings. */ * generate a list of error strings.
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Enum> */ * @Enum:
/* FT_Err_XXX */ * FT_Err_XXX
/* */ *
/*************************************************************************/ */
/* generic errors */ /* generic errors */

View File

@ -1,101 +1,101 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* fterrors.h */ * fterrors.h
/* */ *
/* FreeType error code handling (specification). */ * FreeType error code handling (specification).
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* error_enumerations */ * error_enumerations
/* */ *
/* <Title> */ * @Title:
/* Error Enumerations */ * Error Enumerations
/* */ *
/* <Abstract> */ * @Abstract:
/* How to handle errors and error strings. */ * How to handle errors and error strings.
/* */ *
/* <Description> */ * @Description:
/* The header file `fterrors.h' (which is automatically included by */ * The header file `fterrors.h' (which is automatically included by
/* `freetype.h' defines the handling of FreeType's enumeration */ * `freetype.h' defines the handling of FreeType's enumeration
/* constants. It can also be used to generate error message strings */ * constants. It can also be used to generate error message strings
/* with a small macro trick explained below. */ * with a small macro trick explained below.
/* */ *
/* *Error* *Formats* */ * *Error* *Formats*
/* */ *
/* The configuration macro FT_CONFIG_OPTION_USE_MODULE_ERRORS can be */ * The configuration macro FT_CONFIG_OPTION_USE_MODULE_ERRORS can be
/* defined in `ftoption.h' in order to make the higher byte indicate */ * defined in `ftoption.h' in order to make the higher byte indicate
/* the module where the error has happened (this is not compatible */ * the module where the error has happened (this is not compatible
/* with standard builds of FreeType~2, however). See the file */ * with standard builds of FreeType~2, however). See the file
/* `ftmoderr.h' for more details. */ * `ftmoderr.h' for more details.
/* */ *
/* *Error* *Message* *Strings* */ * *Error* *Message* *Strings*
/* */ *
/* Error definitions are set up with special macros that allow client */ * Error definitions are set up with special macros that allow client
/* applications to build a table of error message strings. The */ * applications to build a table of error message strings. The
/* strings are not included in a normal build of FreeType~2 to save */ * strings are not included in a normal build of FreeType~2 to save
/* space (most client applications do not use them). */ * space (most client applications do not use them).
/* */ *
/* To do so, you have to define the following macros before including */ * To do so, you have to define the following macros before including
/* this file. */ * this file.
/* */ *
/* { */ * {
/* FT_ERROR_START_LIST */ * FT_ERROR_START_LIST
/* } */ * }
/* */ *
/* This macro is called before anything else to define the start of */ * This macro is called before anything else to define the start of
/* the error list. It is followed by several FT_ERROR_DEF calls. */ * the error list. It is followed by several FT_ERROR_DEF calls.
/* */ *
/* { */ * {
/* FT_ERROR_DEF( e, v, s ) */ * FT_ERROR_DEF( e, v, s )
/* } */ * }
/* */ *
/* This macro is called to define one single error. `e' is the error */ * This macro is called to define one single error. `e' is the error
/* code identifier (e.g., `Invalid_Argument'), `v' is the error's */ * code identifier (e.g., `Invalid_Argument'), `v' is the error's
/* numerical value, and `s' is the corresponding error string. */ * numerical value, and `s' is the corresponding error string.
/* */ *
/* { */ * {
/* FT_ERROR_END_LIST */ * FT_ERROR_END_LIST
/* } */ * }
/* */ *
/* This macro ends the list. */ * This macro ends the list.
/* */ *
/* Additionally, you have to undefine `FTERRORS_H_' before #including */ * Additionally, you have to undefine `FTERRORS_H_' before #including
/* this file. */ * this file.
/* */ *
/* Here is a simple example. */ * Here is a simple example.
/* */ *
/* { */ * {
/* #undef FTERRORS_H_ */ * #undef FTERRORS_H_
/* #define FT_ERRORDEF( e, v, s ) { e, s }, */ * #define FT_ERRORDEF( e, v, s ) { e, s },
/* #define FT_ERROR_START_LIST { */ * #define FT_ERROR_START_LIST {
/* #define FT_ERROR_END_LIST { 0, NULL } }; */ * #define FT_ERROR_END_LIST { 0, NULL } };
/* */ *
/* const struct */ * const struct
/* { */ * {
/* int err_code; */ * int err_code;
/* const char* err_msg; */ * const char* err_msg;
/* } ft_errors[] = */ * } ft_errors[] =
/* */ *
/* #include FT_ERRORS_H */ * #include FT_ERRORS_H
/* } */ * }
/* */ *
/* Note that `FT_Err_Ok' is _not_ defined with `FT_ERRORDEF' but with */ * Note that `FT_Err_Ok' is _not_ defined with `FT_ERRORDEF' but with
/* `FT_NOERRORDEF'; it is always zero. */ * `FT_NOERRORDEF'; it is always zero.
/* */ *
/*************************************************************************/ */
/* */ /* */

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftfntfmt.h */ * ftfntfmt.h
/* */ *
/* Support functions for font formats. */ * Support functions for font formats.
/* */ *
/* Copyright 2002-2018 by */ * Copyright 2002-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTFNTFMT_H_ #ifndef FTFNTFMT_H_
@ -32,49 +32,49 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* font_formats */ * font_formats
/* */ *
/* <Title> */ * @Title:
/* Font Formats */ * Font Formats
/* */ *
/* <Abstract> */ * @Abstract:
/* Getting the font format. */ * Getting the font format.
/* */ *
/* <Description> */ * @Description:
/* The single function in this section can be used to get the font */ * The single function in this section can be used to get the font
/* format. Note that this information is not needed normally; */ * format. Note that this information is not needed normally;
/* however, there are special cases (like in PDF devices) where it is */ * however, there are special cases (like in PDF devices) where it is
/* important to differentiate, in spite of FreeType's uniform API. */ * important to differentiate, in spite of FreeType's uniform API.
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Get_Font_Format */ * FT_Get_Font_Format
/* */ *
/* <Description> */ * @Description:
/* Return a string describing the format of a given face. Possible */ * Return a string describing the format of a given face. Possible
/* values are `TrueType', `Type~1', `BDF', `PCF', `Type~42', */ * values are `TrueType', `Type~1', `BDF', `PCF', `Type~42',
/* `CID~Type~1', `CFF', `PFR', and `Windows~FNT'. */ * `CID~Type~1', `CFF', `PFR', and `Windows~FNT'.
/* */ *
/* The return value is suitable to be used as an X11 FONT_PROPERTY. */ * The return value is suitable to be used as an X11 FONT_PROPERTY.
/* */ *
/* <Input> */ * @Input:
/* face :: */ * face ::
/* Input face handle. */ * Input face handle.
/* */ *
/* <Return> */ * @Return:
/* Font format string. NULL in case of error. */ * Font format string. NULL in case of error.
/* */ *
/* <Note> */ * @Note:
/* A deprecated name for the same function is */ * A deprecated name for the same function is
/* `FT_Get_X11_Font_Format'. */ * `FT_Get_X11_Font_Format'.
/* */ */
FT_EXPORT( const char* ) FT_EXPORT( const char* )
FT_Get_Font_Format( FT_Face face ); FT_Get_Font_Format( FT_Face face );

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftgasp.h */ * ftgasp.h
/* */ *
/* Access of TrueType's `gasp' table (specification). */ * Access of TrueType's `gasp' table (specification).
/* */ *
/* Copyright 2007-2018 by */ * Copyright 2007-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTGASP_H_ #ifndef FTGASP_H_
@ -110,9 +110,11 @@ FT_BEGIN_HEADER
* character pixel size. * character pixel size.
* *
* @input: * @input:
* face :: The source face handle. * face ::
* The source face handle.
* *
* ppem :: The vertical character pixel size. * ppem ::
* The vertical character pixel size.
* *
* @return: * @return:
* Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no * 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 */ * ftgxval.h
/* */ *
/* FreeType API for validating TrueTypeGX/AAT tables (specification). */ * FreeType API for validating TrueTypeGX/AAT tables (specification).
/* */ *
/* Copyright 2004-2018 by */ * Copyright 2004-2018 by
/* Masatake YAMATO, Redhat K.K, */ * Masatake YAMATO, Redhat K.K,
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/***************************************************************************/ /****************************************************************************
/* */ *
/* gxvalid is derived from both gxlayout module and otvalid module. */ * gxvalid is derived from both gxlayout module and otvalid module.
/* Development of gxlayout is supported by the Information-technology */ * Development of gxlayout is supported by the Information-technology
/* Promotion Agency(IPA), Japan. */ * Promotion Agency(IPA), Japan.
/* */ *
/***************************************************************************/ */
#ifndef FTGXVAL_H_ #ifndef FTGXVAL_H_
@ -41,43 +41,43 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* gx_validation */ * gx_validation
/* */ *
/* <Title> */ * @Title:
/* TrueTypeGX/AAT Validation */ * TrueTypeGX/AAT Validation
/* */ *
/* <Abstract> */ * @Abstract:
/* An API to validate TrueTypeGX/AAT tables. */ * An API to validate TrueTypeGX/AAT tables.
/* */ *
/* <Description> */ * @Description:
/* This section contains the declaration of functions to validate */ * This section contains the declaration of functions to validate
/* some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, */ * some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd,
/* trak, prop, lcar). */ * trak, prop, lcar).
/* */ *
/* <Order> */ * @Order:
/* FT_TrueTypeGX_Validate */ * FT_TrueTypeGX_Validate
/* FT_TrueTypeGX_Free */ * FT_TrueTypeGX_Free
/* */ *
/* FT_ClassicKern_Validate */ * FT_ClassicKern_Validate
/* FT_ClassicKern_Free */ * FT_ClassicKern_Free
/* */ *
/* FT_VALIDATE_GX_LENGTH */ * FT_VALIDATE_GX_LENGTH
/* FT_VALIDATE_GXXXX */ * FT_VALIDATE_GXXXX
/* FT_VALIDATE_CKERNXXX */ * FT_VALIDATE_CKERNXXX
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* */ *
/* Warning: Use FT_VALIDATE_XXX to validate a table. */ * Warning: Use FT_VALIDATE_XXX to validate a table.
/* Following definitions are for gxvalid developers. */ * Following definitions are for gxvalid developers.
/* */ *
/* */ *
/*************************************************************************/ */
#define FT_VALIDATE_feat_INDEX 0 #define FT_VALIDATE_feat_INDEX 0
#define FT_VALIDATE_mort_INDEX 1 #define FT_VALIDATE_mort_INDEX 1
@ -194,20 +194,20 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* A handle to the input face. * A handle to the input face.
* *
* validation_flags :: * validation_flags ::
* A bit field that specifies the tables to be validated. See * A bit field that specifies the tables to be validated. See
* @FT_VALIDATE_GXXXX for possible values. * @FT_VALIDATE_GXXXX for possible values.
* *
* table_length :: * table_length ::
* The size of the `tables' array. Normally, @FT_VALIDATE_GX_LENGTH * The size of the `tables' array. Normally, @FT_VALIDATE_GX_LENGTH
* should be passed. * should be passed.
* *
* @output: * @output:
* tables :: * tables ::
* The array where all validated sfnt tables are stored. * The array where all validated sfnt tables are stored.
* The array itself must be allocated by a client. * The array itself must be allocated by a client.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
@ -239,11 +239,11 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* A handle to the input face. * A handle to the input face.
* *
* table :: * table ::
* The pointer to the buffer allocated by * The pointer to the buffer allocated by
* @FT_TrueTypeGX_Validate. * @FT_TrueTypeGX_Validate.
* *
* @note: * @note:
* This function must be used to free the buffer allocated by * This function must be used to free the buffer allocated by
@ -298,15 +298,15 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* A handle to the input face. * A handle to the input face.
* *
* validation_flags :: * validation_flags ::
* A bit field that specifies the dialect to be validated. See * A bit field that specifies the dialect to be validated. See
* @FT_VALIDATE_CKERNXXX for possible values. * @FT_VALIDATE_CKERNXXX for possible values.
* *
* @output: * @output:
* ckern_table :: * ckern_table ::
* A pointer to the kern table. * A pointer to the kern table.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
@ -332,11 +332,11 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* A handle to the input face. * A handle to the input face.
* *
* table :: * table ::
* The pointer to the buffer that is allocated by * The pointer to the buffer that is allocated by
* @FT_ClassicKern_Validate. * @FT_ClassicKern_Validate.
* *
* @note: * @note:
* This function must be used to free the buffer allocated by * This function must be used to free the buffer allocated by

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@ -1,27 +1,27 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftlist.h */ * ftlist.h
/* */ *
/* Generic list support for FreeType (specification). */ * Generic list support for FreeType (specification).
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* This file implements functions relative to list processing. Its */ * This file implements functions relative to list processing. Its
/* data structures are defined in `freetype.h'. */ * data structures are defined in `freetype.h'.
/* */ *
/*************************************************************************/ */
#ifndef FTLIST_H_ #ifndef FTLIST_H_
@ -41,224 +41,246 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* list_processing */ * list_processing
/* */ *
/* <Title> */ * @Title:
/* List Processing */ * List Processing
/* */ *
/* <Abstract> */ * @Abstract:
/* Simple management of lists. */ * Simple management of lists.
/* */ *
/* <Description> */ * @Description:
/* This section contains various definitions related to list */ * This section contains various definitions related to list
/* processing using doubly-linked nodes. */ * processing using doubly-linked nodes.
/* */ *
/* <Order> */ * @Order:
/* FT_List */ * FT_List
/* FT_ListNode */ * FT_ListNode
/* FT_ListRec */ * FT_ListRec
/* FT_ListNodeRec */ * FT_ListNodeRec
/* */ *
/* FT_List_Add */ * FT_List_Add
/* FT_List_Insert */ * FT_List_Insert
/* FT_List_Find */ * FT_List_Find
/* FT_List_Remove */ * FT_List_Remove
/* FT_List_Up */ * FT_List_Up
/* FT_List_Iterate */ * FT_List_Iterate
/* FT_List_Iterator */ * FT_List_Iterator
/* FT_List_Finalize */ * FT_List_Finalize
/* FT_List_Destructor */ * FT_List_Destructor
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_List_Find */ * FT_List_Find
/* */ *
/* <Description> */ * @Description:
/* Find the list node for a given listed object. */ * Find the list node for a given listed object.
/* */ *
/* <Input> */ * @Input:
/* list :: A pointer to the parent list. */ * list ::
/* data :: The address of the listed object. */ * A pointer to the parent list.
/* */ * data ::
/* <Return> */ * The address of the listed object.
/* List node. NULL if it wasn't found. */ *
/* */ * @Return:
* List node. NULL if it wasn't found.
*/
FT_EXPORT( FT_ListNode ) FT_EXPORT( FT_ListNode )
FT_List_Find( FT_List list, FT_List_Find( FT_List list,
void* data ); void* data );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_List_Add */ * FT_List_Add
/* */ *
/* <Description> */ * @Description:
/* Append an element to the end of a list. */ * Append an element to the end of a list.
/* */ *
/* <InOut> */ * @InOut:
/* list :: A pointer to the parent list. */ * list ::
/* node :: The node to append. */ * A pointer to the parent list.
/* */ * node ::
* The node to append.
*/
FT_EXPORT( void ) FT_EXPORT( void )
FT_List_Add( FT_List list, FT_List_Add( FT_List list,
FT_ListNode node ); FT_ListNode node );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_List_Insert */ * FT_List_Insert
/* */ *
/* <Description> */ * @Description:
/* Insert an element at the head of a list. */ * Insert an element at the head of a list.
/* */ *
/* <InOut> */ * @InOut:
/* list :: A pointer to parent list. */ * list ::
/* node :: The node to insert. */ * A pointer to parent list.
/* */ * node ::
* The node to insert.
*/
FT_EXPORT( void ) FT_EXPORT( void )
FT_List_Insert( FT_List list, FT_List_Insert( FT_List list,
FT_ListNode node ); FT_ListNode node );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_List_Remove */ * FT_List_Remove
/* */ *
/* <Description> */ * @Description:
/* Remove a node from a list. This function doesn't check whether */ * Remove a node from a list. This function doesn't check whether
/* the node is in the list! */ * the node is in the list!
/* */ *
/* <Input> */ * @Input:
/* node :: The node to remove. */ * node ::
/* */ * The node to remove.
/* <InOut> */ *
/* list :: A pointer to the parent list. */ * @InOut:
/* */ * list ::
* A pointer to the parent list.
*/
FT_EXPORT( void ) FT_EXPORT( void )
FT_List_Remove( FT_List list, FT_List_Remove( FT_List list,
FT_ListNode node ); FT_ListNode node );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_List_Up */ * FT_List_Up
/* */ *
/* <Description> */ * @Description:
/* Move a node to the head/top of a list. Used to maintain LRU */ * Move a node to the head/top of a list. Used to maintain LRU
/* lists. */ * lists.
/* */ *
/* <InOut> */ * @InOut:
/* list :: A pointer to the parent list. */ * list ::
/* node :: The node to move. */ * A pointer to the parent list.
/* */ * node ::
* The node to move.
*/
FT_EXPORT( void ) FT_EXPORT( void )
FT_List_Up( FT_List list, FT_List_Up( FT_List list,
FT_ListNode node ); FT_ListNode node );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <FuncType> */ * @FuncType:
/* FT_List_Iterator */ * FT_List_Iterator
/* */ *
/* <Description> */ * @Description:
/* An FT_List iterator function that is called during a list parse */ * An FT_List iterator function that is called during a list parse
/* by @FT_List_Iterate. */ * by @FT_List_Iterate.
/* */ *
/* <Input> */ * @Input:
/* node :: The current iteration list node. */ * 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. */ * user ::
/* */ * A typeless pointer passed to @FT_List_Iterate.
* Can be used to point to the iteration's state.
*/
typedef FT_Error typedef FT_Error
(*FT_List_Iterator)( FT_ListNode node, (*FT_List_Iterator)( FT_ListNode node,
void* user ); void* user );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_List_Iterate */ * FT_List_Iterate
/* */ *
/* <Description> */ * @Description:
/* Parse a list and calls a given iterator function on each element. */ * 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 */ * Note that parsing is stopped as soon as one of the iterator calls
/* returns a non-zero value. */ * returns a non-zero value.
/* */ *
/* <Input> */ * @Input:
/* list :: A handle to the list. */ * list ::
/* iterator :: An iterator function, called on each node of the list. */ * A handle to the list.
/* user :: A user-supplied field that is passed as the second */ * iterator ::
/* argument to the iterator. */ * An iterator function, called on each node of the list.
/* */ * user ::
/* <Return> */ * A user-supplied field that is passed as the second
/* The result (a FreeType error code) of the last iterator call. */ * argument to the iterator.
/* */ *
* @Return:
* The result (a FreeType error code) of the last iterator call.
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_List_Iterate( FT_List list, FT_List_Iterate( FT_List list,
FT_List_Iterator iterator, FT_List_Iterator iterator,
void* user ); void* user );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <FuncType> */ * @FuncType:
/* FT_List_Destructor */ * FT_List_Destructor
/* */ *
/* <Description> */ * @Description:
/* An @FT_List iterator function that is called during a list */ * An @FT_List iterator function that is called during a list
/* finalization by @FT_List_Finalize to destroy all elements in a */ * finalization by @FT_List_Finalize to destroy all elements in a
/* given list. */ * given list.
/* */ *
/* <Input> */ * @Input:
/* system :: The current system object. */ * system ::
/* */ * The current system object.
/* data :: The current object to destroy. */ *
/* */ * data ::
/* user :: A typeless pointer passed to @FT_List_Iterate. It can */ * The current object to destroy.
/* be used to point to the iteration's state. */ *
/* */ * user ::
* A typeless pointer passed to @FT_List_Iterate. It can
* be used to point to the iteration's state.
*/
typedef void typedef void
(*FT_List_Destructor)( FT_Memory memory, (*FT_List_Destructor)( FT_Memory memory,
void* data, void* data,
void* user ); void* user );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_List_Finalize */ * FT_List_Finalize
/* */ *
/* <Description> */ * @Description:
/* Destroy all elements in the list as well as the list itself. */ * Destroy all elements in the list as well as the list itself.
/* */ *
/* <Input> */ * @Input:
/* list :: A handle to the list. */ * 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. */ * destroy ::
/* */ * A list destructor that will be applied to each element
/* memory :: The current memory object that handles deallocation. */ * of the list. Set this to NULL if not needed.
/* */ *
/* user :: A user-supplied field that is passed as the last */ * memory ::
/* argument to the destructor. */ * The current memory object that handles deallocation.
/* */ *
/* <Note> */ * user ::
/* This function expects that all nodes added by @FT_List_Add or */ * A user-supplied field that is passed as the last
/* @FT_List_Insert have been dynamically allocated. */ * 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_EXPORT( void )
FT_List_Finalize( FT_List list, FT_List_Finalize( FT_List list,
FT_List_Destructor destroy, FT_List_Destructor destroy,

View File

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

View File

@ -1,28 +1,28 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftmac.h */ * ftmac.h
/* */ *
/* Additional Mac-specific API. */ * Additional Mac-specific API.
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */ * Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/***************************************************************************/ /****************************************************************************
/* */ *
/* NOTE: Include this file after FT_FREETYPE_H and after any */ * NOTE: Include this file after FT_FREETYPE_H and after any
/* Mac-specific headers (because this header uses Mac types such as */ * Mac-specific headers (because this header uses Mac types such as
/* Handle, FSSpec, FSRef, etc.) */ * Handle, FSSpec, FSRef, etc.)
/* */ *
/***************************************************************************/ */
#ifndef FTMAC_H_ #ifndef FTMAC_H_
@ -47,56 +47,60 @@ FT_BEGIN_HEADER
#endif #endif
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* mac_specific */ * mac_specific
/* */ *
/* <Title> */ * @Title:
/* Mac Specific Interface */ * Mac Specific Interface
/* */ *
/* <Abstract> */ * @Abstract:
/* Only available on the Macintosh. */ * Only available on the Macintosh.
/* */ *
/* <Description> */ * @Description:
/* The following definitions are only available if FreeType is */ * The following definitions are only available if FreeType is
/* compiled on a Macintosh. */ * compiled on a Macintosh.
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_New_Face_From_FOND */ * FT_New_Face_From_FOND
/* */ *
/* <Description> */ * @Description:
/* Create a new face object from a FOND resource. */ * Create a new face object from a FOND resource.
/* */ *
/* <InOut> */ * @InOut:
/* library :: A handle to the library resource. */ * library ::
/* */ * A handle to the library resource.
/* <Input> */ *
/* fond :: A FOND resource. */ * @Input:
/* */ * fond ::
/* face_index :: Only supported for the -1 `sanity check' special */ * A FOND resource.
/* case. */ *
/* */ * face_index ::
/* <Output> */ * Only supported for the -1 `sanity check' special
/* aface :: A handle to a new face object. */ * case.
/* */ *
/* <Return> */ * @Output:
/* FreeType error code. 0~means success. */ * aface ::
/* */ * A handle to a new face object.
/* <Notes> */ *
/* This function can be used to create @FT_Face objects from fonts */ * @Return:
/* that are installed in the system as follows. */ * FreeType error code. 0~means success.
/* */ *
/* { */ * @Notes:
/* fond = GetResource( 'FOND', fontName ); */ * This function can be used to create @FT_Face objects from fonts
/* error = FT_New_Face_From_FOND( library, fond, 0, &face ); */ * 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_EXPORT( FT_Error )
FT_New_Face_From_FOND( FT_Library library, FT_New_Face_From_FOND( FT_Library library,
Handle fond, Handle fond,
@ -105,28 +109,31 @@ FT_BEGIN_HEADER
FT_DEPRECATED_ATTRIBUTE; FT_DEPRECATED_ATTRIBUTE;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_GetFile_From_Mac_Name */ * FT_GetFile_From_Mac_Name
/* */ *
/* <Description> */ * @Description:
/* Return an FSSpec for the disk file containing the named font. */ * Return an FSSpec for the disk file containing the named font.
/* */ *
/* <Input> */ * @Input:
/* fontName :: Mac OS name of the font (e.g., Times New Roman */ * fontName ::
/* Bold). */ * Mac OS name of the font (e.g., Times New Roman
/* */ * Bold).
/* <Output> */ *
/* pathSpec :: FSSpec to the file. For passing to */ * @Output:
/* @FT_New_Face_From_FSSpec. */ * pathSpec ::
/* */ * FSSpec to the file. For passing to
/* face_index :: Index of the face. For passing to */ * @FT_New_Face_From_FSSpec.
/* @FT_New_Face_From_FSSpec. */ *
/* */ * face_index ::
/* <Return> */ * Index of the face. For passing to
/* FreeType error code. 0~means success. */ * @FT_New_Face_From_FSSpec.
/* */ *
* @Return:
* FreeType error code. 0~means success.
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_GetFile_From_Mac_Name( const char* fontName, FT_GetFile_From_Mac_Name( const char* fontName,
FSSpec* pathSpec, FSSpec* pathSpec,
@ -134,27 +141,30 @@ FT_BEGIN_HEADER
FT_DEPRECATED_ATTRIBUTE; FT_DEPRECATED_ATTRIBUTE;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_GetFile_From_Mac_ATS_Name */ * FT_GetFile_From_Mac_ATS_Name
/* */ *
/* <Description> */ * @Description:
/* Return an FSSpec for the disk file containing the named font. */ * Return an FSSpec for the disk file containing the named font.
/* */ *
/* <Input> */ * @Input:
/* fontName :: Mac OS name of the font in ATS framework. */ * fontName ::
/* */ * Mac OS name of the font in ATS framework.
/* <Output> */ *
/* pathSpec :: FSSpec to the file. For passing to */ * @Output:
/* @FT_New_Face_From_FSSpec. */ * pathSpec ::
/* */ * FSSpec to the file. For passing to
/* face_index :: Index of the face. For passing to */ * @FT_New_Face_From_FSSpec.
/* @FT_New_Face_From_FSSpec. */ *
/* */ * face_index ::
/* <Return> */ * Index of the face. For passing to
/* FreeType error code. 0~means success. */ * @FT_New_Face_From_FSSpec.
/* */ *
* @Return:
* FreeType error code. 0~means success.
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_GetFile_From_Mac_ATS_Name( const char* fontName, FT_GetFile_From_Mac_ATS_Name( const char* fontName,
FSSpec* pathSpec, FSSpec* pathSpec,
@ -162,30 +172,34 @@ FT_BEGIN_HEADER
FT_DEPRECATED_ATTRIBUTE; FT_DEPRECATED_ATTRIBUTE;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_GetFilePath_From_Mac_ATS_Name */ * FT_GetFilePath_From_Mac_ATS_Name
/* */ *
/* <Description> */ * @Description:
/* Return a pathname of the disk file and face index for given font */ * Return a pathname of the disk file and face index for given font
/* name that is handled by ATS framework. */ * name that is handled by ATS framework.
/* */ *
/* <Input> */ * @Input:
/* fontName :: Mac OS name of the font in ATS framework. */ * fontName ::
/* */ * Mac OS name of the font in ATS framework.
/* <Output> */ *
/* path :: Buffer to store pathname of the file. For passing */ * @Output:
/* to @FT_New_Face. The client must allocate this */ * path ::
/* buffer before calling this function. */ * Buffer to store pathname of the file. For passing
/* */ * to @FT_New_Face. The client must allocate this
/* maxPathSize :: Lengths of the buffer `path' that client allocated. */ * buffer before calling this function.
/* */ *
/* face_index :: Index of the face. For passing to @FT_New_Face. */ * maxPathSize ::
/* */ * Lengths of the buffer `path' that client allocated.
/* <Return> */ *
/* FreeType error code. 0~means success. */ * face_index ::
/* */ * Index of the face. For passing to @FT_New_Face.
*
* @Return:
* FreeType error code. 0~means success.
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_GetFilePath_From_Mac_ATS_Name( const char* fontName, FT_GetFilePath_From_Mac_ATS_Name( const char* fontName,
UInt8* path, UInt8* path,
@ -194,33 +208,37 @@ FT_BEGIN_HEADER
FT_DEPRECATED_ATTRIBUTE; FT_DEPRECATED_ATTRIBUTE;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_New_Face_From_FSSpec */ * FT_New_Face_From_FSSpec
/* */ *
/* <Description> */ * @Description:
/* Create a new face object from a given resource and typeface index */ * Create a new face object from a given resource and typeface index
/* using an FSSpec to the font file. */ * using an FSSpec to the font file.
/* */ *
/* <InOut> */ * @InOut:
/* library :: A handle to the library resource. */ * library ::
/* */ * A handle to the library resource.
/* <Input> */ *
/* spec :: FSSpec to the font file. */ * @Input:
/* */ * spec ::
/* face_index :: The index of the face within the resource. The */ * FSSpec to the font file.
/* first face has index~0. */ *
/* <Output> */ * face_index ::
/* aface :: A handle to a new face object. */ * The index of the face within the resource. The
/* */ * first face has index~0.
/* <Return> */ * @Output:
/* FreeType error code. 0~means success. */ * aface ::
/* */ * A handle to a new face object.
/* <Note> */ *
/* @FT_New_Face_From_FSSpec is identical to @FT_New_Face except */ * @Return:
/* it accepts an FSSpec instead of a path. */ * 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_EXPORT( FT_Error )
FT_New_Face_From_FSSpec( FT_Library library, FT_New_Face_From_FSSpec( FT_Library library,
const FSSpec *spec, const FSSpec *spec,
@ -229,33 +247,37 @@ FT_BEGIN_HEADER
FT_DEPRECATED_ATTRIBUTE; FT_DEPRECATED_ATTRIBUTE;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_New_Face_From_FSRef */ * FT_New_Face_From_FSRef
/* */ *
/* <Description> */ * @Description:
/* Create a new face object from a given resource and typeface index */ * Create a new face object from a given resource and typeface index
/* using an FSRef to the font file. */ * using an FSRef to the font file.
/* */ *
/* <InOut> */ * @InOut:
/* library :: A handle to the library resource. */ * library ::
/* */ * A handle to the library resource.
/* <Input> */ *
/* spec :: FSRef to the font file. */ * @Input:
/* */ * spec ::
/* face_index :: The index of the face within the resource. The */ * FSRef to the font file.
/* first face has index~0. */ *
/* <Output> */ * face_index ::
/* aface :: A handle to a new face object. */ * The index of the face within the resource. The
/* */ * first face has index~0.
/* <Return> */ * @Output:
/* FreeType error code. 0~means success. */ * aface ::
/* */ * A handle to a new face object.
/* <Note> */ *
/* @FT_New_Face_From_FSRef is identical to @FT_New_Face except */ * @Return:
/* it accepts an FSRef instead of a path. */ * 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_EXPORT( FT_Error )
FT_New_Face_From_FSRef( FT_Library library, FT_New_Face_From_FSRef( FT_Library library,
const FSRef *ref, const FSRef *ref,

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftmodapi.h */ * ftmodapi.h
/* */ *
/* FreeType modules public interface (specification). */ * FreeType modules public interface (specification).
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTMODAPI_H_ #ifndef FTMODAPI_H_
@ -33,77 +33,77 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* module_management */ * module_management
/* */ *
/* <Title> */ * @Title:
/* Module Management */ * Module Management
/* */ *
/* <Abstract> */ * @Abstract:
/* How to add, upgrade, remove, and control modules from FreeType. */ * How to add, upgrade, remove, and control modules from FreeType.
/* */ *
/* <Description> */ * @Description:
/* The definitions below are used to manage modules within FreeType. */ * The definitions below are used to manage modules within FreeType.
/* Modules can be added, upgraded, and removed at runtime. */ * Modules can be added, upgraded, and removed at runtime.
/* Additionally, some module properties can be controlled also. */ * Additionally, some module properties can be controlled also.
/* */ *
/* Here is a list of possible values of the `module_name' field in */ * Here is a list of possible values of the `module_name' field in
/* the @FT_Module_Class structure. */ * the @FT_Module_Class structure.
/* */ *
/* { */ * {
/* autofitter */ * autofitter
/* bdf */ * bdf
/* cff */ * cff
/* gxvalid */ * gxvalid
/* otvalid */ * otvalid
/* pcf */ * pcf
/* pfr */ * pfr
/* psaux */ * psaux
/* pshinter */ * pshinter
/* psnames */ * psnames
/* raster1 */ * raster1
/* sfnt */ * sfnt
/* smooth, smooth-lcd, smooth-lcdv */ * smooth, smooth-lcd, smooth-lcdv
/* truetype */ * truetype
/* type1 */ * type1
/* type42 */ * type42
/* t1cid */ * t1cid
/* winfonts */ * winfonts
/* } */ * }
/* */ *
/* Note that the FreeType Cache sub-system is not a FreeType module. */ * Note that the FreeType Cache sub-system is not a FreeType module.
/* */ *
/* <Order> */ * @Order:
/* FT_Module */ * FT_Module
/* FT_Module_Constructor */ * FT_Module_Constructor
/* FT_Module_Destructor */ * FT_Module_Destructor
/* FT_Module_Requester */ * FT_Module_Requester
/* FT_Module_Class */ * FT_Module_Class
/* */ *
/* FT_Add_Module */ * FT_Add_Module
/* FT_Get_Module */ * FT_Get_Module
/* FT_Remove_Module */ * FT_Remove_Module
/* FT_Add_Default_Modules */ * FT_Add_Default_Modules
/* */ *
/* FT_Property_Set */ * FT_Property_Set
/* FT_Property_Get */ * FT_Property_Get
/* FT_Set_Default_Properties */ * FT_Set_Default_Properties
/* */ *
/* FT_New_Library */ * FT_New_Library
/* FT_Done_Library */ * FT_Done_Library
/* FT_Reference_Library */ * FT_Reference_Library
/* */ *
/* FT_Renderer */ * FT_Renderer
/* FT_Renderer_Class */ * FT_Renderer_Class
/* */ *
/* FT_Get_Renderer */ * FT_Get_Renderer
/* FT_Set_Renderer */ * FT_Set_Renderer
/* */ *
/* FT_Set_Debug_Hook */ * FT_Set_Debug_Hook
/* */ *
/*************************************************************************/ */
/* module bit flags */ /* module bit flags */
@ -137,83 +137,95 @@ FT_BEGIN_HEADER
typedef FT_Pointer FT_Module_Interface; typedef FT_Pointer FT_Module_Interface;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <FuncType> */ * @FuncType:
/* FT_Module_Constructor */ * FT_Module_Constructor
/* */ *
/* <Description> */ * @Description:
/* A function used to initialize (not create) a new module object. */ * A function used to initialize (not create) a new module object.
/* */ *
/* <Input> */ * @Input:
/* module :: The module to initialize. */ * module ::
/* */ * The module to initialize.
*/
typedef FT_Error typedef FT_Error
(*FT_Module_Constructor)( FT_Module module ); (*FT_Module_Constructor)( FT_Module module );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <FuncType> */ * @FuncType:
/* FT_Module_Destructor */ * FT_Module_Destructor
/* */ *
/* <Description> */ * @Description:
/* A function used to finalize (not destroy) a given module object. */ * A function used to finalize (not destroy) a given module object.
/* */ *
/* <Input> */ * @Input:
/* module :: The module to finalize. */ * module ::
/* */ * The module to finalize.
*/
typedef void typedef void
(*FT_Module_Destructor)( FT_Module module ); (*FT_Module_Destructor)( FT_Module module );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <FuncType> */ * @FuncType:
/* FT_Module_Requester */ * FT_Module_Requester
/* */ *
/* <Description> */ * @Description:
/* A function used to query a given module for a specific interface. */ * A function used to query a given module for a specific interface.
/* */ *
/* <Input> */ * @Input:
/* module :: The module to be searched. */ * module ::
/* */ * The module to be searched.
/* name :: The name of the interface in the module. */ *
/* */ * name ::
* The name of the interface in the module.
*/
typedef FT_Module_Interface typedef FT_Module_Interface
(*FT_Module_Requester)( FT_Module module, (*FT_Module_Requester)( FT_Module module,
const char* name ); const char* name );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* FT_Module_Class */ * FT_Module_Class
/* */ *
/* <Description> */ * @Description:
/* The module class descriptor. */ * The module class descriptor.
/* */ *
/* <Fields> */ * @Fields:
/* module_flags :: Bit flags describing the module. */ * module_flags ::
/* */ * Bit flags describing the module.
/* module_size :: The size of one module object/instance in */ *
/* bytes. */ * module_size ::
/* */ * The size of one module object/instance in
/* module_name :: The name of the module. */ * bytes.
/* */ *
/* module_version :: The version, as a 16.16 fixed number */ * module_name ::
/* (major.minor). */ * The name of the module.
/* */ *
/* module_requires :: The version of FreeType this module requires, */ * module_version ::
/* as a 16.16 fixed number (major.minor). Starts */ * The version, as a 16.16 fixed number
/* at version 2.0, i.e., 0x20000. */ * (major.minor).
/* */ *
/* module_init :: The initializing function. */ * module_requires ::
/* */ * The version of FreeType this module requires,
/* module_done :: The finalizing function. */ * as a 16.16 fixed number (major.minor). Starts
/* */ * at version 2.0, i.e., 0x20000.
/* get_interface :: The interface requesting function. */ *
/* */ * module_init ::
* The initializing function.
*
* module_done ::
* The finalizing function.
*
* get_interface ::
* The interface requesting function.
*/
typedef struct FT_Module_Class_ typedef struct FT_Module_Class_
{ {
FT_ULong module_flags; FT_ULong module_flags;
@ -231,77 +243,83 @@ FT_BEGIN_HEADER
} FT_Module_Class; } FT_Module_Class;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Add_Module */ * FT_Add_Module
/* */ *
/* <Description> */ * @Description:
/* Add a new module to a given library instance. */ * Add a new module to a given library instance.
/* */ *
/* <InOut> */ * @InOut:
/* library :: A handle to the library object. */ * library ::
/* */ * A handle to the library object.
/* <Input> */ *
/* clazz :: A pointer to class descriptor for the module. */ * @Input:
/* */ * clazz ::
/* <Return> */ * A pointer to class descriptor for the module.
/* FreeType error code. 0~means success. */ *
/* */ * @Return:
/* <Note> */ * FreeType error code. 0~means success.
/* 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. */ * @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_EXPORT( FT_Error )
FT_Add_Module( FT_Library library, FT_Add_Module( FT_Library library,
const FT_Module_Class* clazz ); const FT_Module_Class* clazz );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Get_Module */ * FT_Get_Module
/* */ *
/* <Description> */ * @Description:
/* Find a module by its name. */ * Find a module by its name.
/* */ *
/* <Input> */ * @Input:
/* library :: A handle to the library object. */ * library ::
/* */ * A handle to the library object.
/* module_name :: The module's name (as an ASCII string). */ *
/* */ * module_name ::
/* <Return> */ * The module's name (as an ASCII string).
/* A module handle. 0~if none was found. */ *
/* */ * @Return:
/* <Note> */ * A module handle. 0~if none was found.
/* FreeType's internal modules aren't documented very well, and you */ *
/* should look up the source code for details. */ * @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_EXPORT( FT_Module )
FT_Get_Module( FT_Library library, FT_Get_Module( FT_Library library,
const char* module_name ); const char* module_name );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Remove_Module */ * FT_Remove_Module
/* */ *
/* <Description> */ * @Description:
/* Remove a given module from a library instance. */ * Remove a given module from a library instance.
/* */ *
/* <InOut> */ * @InOut:
/* library :: A handle to a library object. */ * library ::
/* */ * A handle to a library object.
/* <Input> */ *
/* module :: A handle to a module object. */ * @Input:
/* */ * module ::
/* <Return> */ * A handle to a module object.
/* FreeType error code. 0~means success. */ *
/* */ * @Return:
/* <Note> */ * FreeType error code. 0~means success.
/* The module object is destroyed by the function in case of success. */ *
/* */ * @Note:
* The module object is destroyed by the function in case of success.
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Remove_Module( FT_Library library, FT_Remove_Module( FT_Library library,
FT_Module module ); FT_Module module );
@ -317,21 +335,21 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* library :: * library ::
* A handle to the library the module is part of. * A handle to the library the module is part of.
* *
* module_name :: * module_name ::
* The module name. * The module name.
* *
* property_name :: * property_name ::
* The property name. Properties are described in section * The property name. Properties are described in section
* @properties. * @properties.
* *
* Note that only a few modules have properties. * Note that only a few modules have properties.
* *
* value :: * value ::
* A generic pointer to a variable or structure that gives the new * A generic pointer to a variable or structure that gives the new
* value of the property. The exact definition of `value' is * value of the property. The exact definition of `value' is
* dependent on the property; see section @properties. * dependent on the property; see section @properties.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
@ -383,20 +401,20 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* library :: * library ::
* A handle to the library the module is part of. * A handle to the library the module is part of.
* *
* module_name :: * module_name ::
* The module name. * The module name.
* *
* property_name :: * property_name ::
* The property name. Properties are described in section * The property name. Properties are described in section
* @properties. * @properties.
* *
* @inout: * @inout:
* value :: * value ::
* A generic pointer to a variable or structure that gives the * A generic pointer to a variable or structure that gives the
* value of the property. The exact definition of `value' is * value of the property. The exact definition of `value' is
* dependent on the property; see section @properties. * dependent on the property; see section @properties.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
@ -436,134 +454,139 @@ FT_BEGIN_HEADER
void* value ); void* value );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Set_Default_Properties */ * FT_Set_Default_Properties
/* */ *
/* <Description> */ * @Description:
/* If compilation option FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES is */ * If compilation option FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES is
/* set, this function reads the `FREETYPE_PROPERTIES' environment */ * set, this function reads the `FREETYPE_PROPERTIES' environment
/* variable to control driver properties. See section @properties */ * variable to control driver properties. See section @properties
/* for more. */ * for more.
/* */ *
/* If the compilation option is not set, this function does nothing. */ * If the compilation option is not set, this function does nothing.
/* */ *
/* `FREETYPE_PROPERTIES' has the following syntax form (broken here */ * `FREETYPE_PROPERTIES' has the following syntax form (broken here
/* into multiple lines for better readability). */ * into multiple lines for better readability).
/* */ *
/* { */ * {
/* <optional whitespace> */ * <optional whitespace>
/* <module-name1> ':' */ * <module-name1> ':'
/* <property-name1> '=' <property-value1> */ * <property-name1> '=' <property-value1>
/* <whitespace> */ * <whitespace>
/* <module-name2> ':' */ * <module-name2> ':'
/* <property-name2> '=' <property-value2> */ * <property-name2> '=' <property-value2>
/* ... */ * ...
/* } */ * }
/* */ *
/* Example: */ * Example:
/* */ *
/* { */ * {
/* FREETYPE_PROPERTIES=truetype:interpreter-version=35 \ */ * FREETYPE_PROPERTIES=truetype:interpreter-version=35 \
/* cff:no-stem-darkening=1 \ */ * cff:no-stem-darkening=1 \
/* autofitter:warping=1 */ * autofitter:warping=1
/* } */ * }
/* */ *
/* <InOut> */ * @InOut:
/* library :: A handle to a new library object. */ * library ::
/* */ * A handle to a new library object.
/* <Since> */ *
/* 2.8 */ * @Since:
/* */ * 2.8
*/
FT_EXPORT( void ) FT_EXPORT( void )
FT_Set_Default_Properties( FT_Library library ); FT_Set_Default_Properties( FT_Library library );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Reference_Library */ * FT_Reference_Library
/* */ *
/* <Description> */ * @Description:
/* A counter gets initialized to~1 at the time an @FT_Library */ * A counter gets initialized to~1 at the time an @FT_Library
/* structure is created. This function increments the counter. */ * structure is created. This function increments the counter.
/* @FT_Done_Library then only destroys a library if the counter is~1, */ * @FT_Done_Library then only destroys a library if the counter is~1,
/* otherwise it simply decrements the counter. */ * otherwise it simply decrements the counter.
/* */ *
/* This function helps in managing life-cycles of structures that */ * This function helps in managing life-cycles of structures that
/* reference @FT_Library objects. */ * reference @FT_Library objects.
/* */ *
/* <Input> */ * @Input:
/* library :: A handle to a target library object. */ * library ::
/* */ * A handle to a target library object.
/* <Return> */ *
/* FreeType error code. 0~means success. */ * @Return:
/* */ * FreeType error code. 0~means success.
/* <Since> */ *
/* 2.4.2 */ * @Since:
/* */ * 2.4.2
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Reference_Library( FT_Library library ); FT_Reference_Library( FT_Library library );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_New_Library */ * FT_New_Library
/* */ *
/* <Description> */ * @Description:
/* This function is used to create a new FreeType library instance */ * This function is used to create a new FreeType library instance
/* from a given memory object. It is thus possible to use libraries */ * from a given memory object. It is thus possible to use libraries
/* with distinct memory allocators within the same program. Note, */ * with distinct memory allocators within the same program. Note,
/* however, that the used @FT_Memory structure is expected to remain */ * however, that the used @FT_Memory structure is expected to remain
/* valid for the life of the @FT_Library object. */ * valid for the life of the @FT_Library object.
/* */ *
/* Normally, you would call this function (followed by a call to */ * Normally, you would call this function (followed by a call to
/* @FT_Add_Default_Modules or a series of calls to @FT_Add_Module, */ * @FT_Add_Default_Modules or a series of calls to @FT_Add_Module,
/* and a call to @FT_Set_Default_Properties) instead of */ * and a call to @FT_Set_Default_Properties) instead of
/* @FT_Init_FreeType to initialize the FreeType library. */ * @FT_Init_FreeType to initialize the FreeType library.
/* */ *
/* Don't use @FT_Done_FreeType but @FT_Done_Library to destroy a */ * Don't use @FT_Done_FreeType but @FT_Done_Library to destroy a
/* library instance. */ * library instance.
/* */ *
/* <Input> */ * @Input:
/* memory :: A handle to the original memory object. */ * memory ::
/* */ * A handle to the original memory object.
/* <Output> */ *
/* alibrary :: A pointer to handle of a new library object. */ * @Output:
/* */ * alibrary ::
/* <Return> */ * A pointer to handle of a new library object.
/* FreeType error code. 0~means success. */ *
/* */ * @Return:
/* <Note> */ * FreeType error code. 0~means success.
/* See the discussion of reference counters in the description of */ *
/* @FT_Reference_Library. */ * @Note:
/* */ * See the discussion of reference counters in the description of
* @FT_Reference_Library.
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_New_Library( FT_Memory memory, FT_New_Library( FT_Memory memory,
FT_Library *alibrary ); FT_Library *alibrary );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Done_Library */ * FT_Done_Library
/* */ *
/* <Description> */ * @Description:
/* Discard a given library object. This closes all drivers and */ * Discard a given library object. This closes all drivers and
/* discards all resource objects. */ * discards all resource objects.
/* */ *
/* <Input> */ * @Input:
/* library :: A handle to the target library. */ * library ::
/* */ * A handle to the target library.
/* <Return> */ *
/* FreeType error code. 0~means success. */ * @Return:
/* */ * FreeType error code. 0~means success.
/* <Note> */ *
/* See the discussion of reference counters in the description of */ * @Note:
/* @FT_Reference_Library. */ * See the discussion of reference counters in the description of
/* */ * @FT_Reference_Library.
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Done_Library( FT_Library library ); FT_Done_Library( FT_Library library );
@ -573,52 +596,56 @@ FT_BEGIN_HEADER
(*FT_DebugHook_Func)( void* arg ); (*FT_DebugHook_Func)( void* arg );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Set_Debug_Hook */ * FT_Set_Debug_Hook
/* */ *
/* <Description> */ * @Description:
/* Set a debug hook function for debugging the interpreter of a font */ * Set a debug hook function for debugging the interpreter of a font
/* format. */ * format.
/* */ *
/* <InOut> */ * @InOut:
/* library :: A handle to the library object. */ * library ::
/* */ * A handle to the library object.
/* <Input> */ *
/* hook_index :: The index of the debug hook. You should use the */ * @Input:
/* values defined in `ftobjs.h', e.g., */ * hook_index ::
/* `FT_DEBUG_HOOK_TRUETYPE'. */ * The index of the debug hook. You should use the
/* */ * values defined in `ftobjs.h', e.g.,
/* debug_hook :: The function used to debug the interpreter. */ * `FT_DEBUG_HOOK_TRUETYPE'.
/* */ *
/* <Note> */ * debug_hook ::
/* Currently, four debug hook slots are available, but only two (for */ * The function used to debug the interpreter.
/* the TrueType and the Type~1 interpreter) are defined. */ *
/* */ * @Note:
/* Since the internal headers of FreeType are no longer installed, */ * Currently, four debug hook slots are available, but only two (for
/* the symbol `FT_DEBUG_HOOK_TRUETYPE' isn't available publicly. */ * the TrueType and the Type~1 interpreter) are defined.
/* This is a bug and will be fixed in a forthcoming release. */ *
/* */ * 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_EXPORT( void )
FT_Set_Debug_Hook( FT_Library library, FT_Set_Debug_Hook( FT_Library library,
FT_UInt hook_index, FT_UInt hook_index,
FT_DebugHook_Func debug_hook ); FT_DebugHook_Func debug_hook );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Add_Default_Modules */ * FT_Add_Default_Modules
/* */ *
/* <Description> */ * @Description:
/* Add the set of default drivers to a given library object. */ * Add the set of default drivers to a given library object.
/* This is only useful when you create a library object with */ * This is only useful when you create a library object with
/* @FT_New_Library (usually to plug a custom memory manager). */ * @FT_New_Library (usually to plug a custom memory manager).
/* */ *
/* <InOut> */ * @InOut:
/* library :: A handle to a new library object. */ * library ::
/* */ * A handle to a new library object.
*/
FT_EXPORT( void ) FT_EXPORT( void )
FT_Add_Default_Modules( FT_Library library ); FT_Add_Default_Modules( FT_Library library );

View File

@ -1,94 +1,94 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftmoderr.h */ * ftmoderr.h
/* */ *
/* FreeType module error offsets (specification). */ * FreeType module error offsets (specification).
/* */ *
/* Copyright 2001-2018 by */ * Copyright 2001-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* This file is used to define the FreeType module error codes. */ * This file is used to define the FreeType module error codes.
/* */ *
/* If the macro FT_CONFIG_OPTION_USE_MODULE_ERRORS in `ftoption.h' is */ * 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 */ * set, the lower byte of an error value identifies the error code as
/* usual. In addition, the higher byte identifies the module. For */ * usual. In addition, the higher byte identifies the module. For
/* example, the error `FT_Err_Invalid_File_Format' has value 0x0003, the */ * example, the error `FT_Err_Invalid_File_Format' has value 0x0003, the
/* error `TT_Err_Invalid_File_Format' has value 0x1303, the error */ * error `TT_Err_Invalid_File_Format' has value 0x1303, the error
/* `T1_Err_Invalid_File_Format' has value 0x1403, etc. */ * `T1_Err_Invalid_File_Format' has value 0x1403, etc.
/* */ *
/* Note that `FT_Err_Ok', `TT_Err_Ok', etc. are always equal to zero, */ * Note that `FT_Err_Ok', `TT_Err_Ok', etc. are always equal to zero,
/* including the high byte. */ * including the high byte.
/* */ *
/* If FT_CONFIG_OPTION_USE_MODULE_ERRORS isn't set, the higher byte of */ * If FT_CONFIG_OPTION_USE_MODULE_ERRORS isn't set, the higher byte of
/* an error value is set to zero. */ * an error value is set to zero.
/* */ *
/* To hide the various `XXX_Err_' prefixes in the source code, FreeType */ * To hide the various `XXX_Err_' prefixes in the source code, FreeType
/* provides some macros in `fttypes.h'. */ * provides some macros in `fttypes.h'.
/* */ *
/* FT_ERR( err ) */ * FT_ERR( err )
/* Add current error module prefix (as defined with the */ * Add current error module prefix (as defined with the
/* `FT_ERR_PREFIX' macro) to `err'. For example, in the BDF module */ * `FT_ERR_PREFIX' macro) to `err'. For example, in the BDF module
/* the line */ * the line
/* */ *
/* error = FT_ERR( Invalid_Outline ); */ * error = FT_ERR( Invalid_Outline );
/* */ *
/* expands to */ * expands to
/* */ *
/* error = BDF_Err_Invalid_Outline; */ * error = BDF_Err_Invalid_Outline;
/* */ *
/* For simplicity, you can always use `FT_Err_Ok' directly instead */ * For simplicity, you can always use `FT_Err_Ok' directly instead
/* of `FT_ERR( Ok )'. */ * of `FT_ERR( Ok )'.
/* */ *
/* FT_ERR_EQ( errcode, err ) */ * FT_ERR_EQ( errcode, err )
/* FT_ERR_NEQ( errcode, err ) */ * FT_ERR_NEQ( errcode, err )
/* Compare error code `errcode' with the error `err' for equality */ * Compare error code `errcode' with the error `err' for equality
/* and inequality, respectively. Example: */ * and inequality, respectively. Example:
/* */ *
/* if ( FT_ERR_EQ( error, Invalid_Outline ) ) */ * if ( FT_ERR_EQ( error, Invalid_Outline ) )
/* ... */ * ...
/* */ *
/* Using this macro you don't have to think about error prefixes. */ * Using this macro you don't have to think about error prefixes.
/* Of course, if module errors are not active, the above example is */ * Of course, if module errors are not active, the above example is
/* the same as */ * the same as
/* */ *
/* if ( error == FT_Err_Invalid_Outline ) */ * if ( error == FT_Err_Invalid_Outline )
/* ... */ * ...
/* */ *
/* FT_ERROR_BASE( errcode ) */ * FT_ERROR_BASE( errcode )
/* FT_ERROR_MODULE( errcode ) */ * FT_ERROR_MODULE( errcode )
/* Get base error and module error code, respectively. */ * Get base error and module error code, respectively.
/* */ *
/* */ *
/* It can also be used to create a module error message table easily */ * It can also be used to create a module error message table easily
/* with something like */ * with something like
/* */ *
/* { */ * {
/* #undef FTMODERR_H_ */ * #undef FTMODERR_H_
/* #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s }, */ * #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s },
/* #define FT_MODERR_START_LIST { */ * #define FT_MODERR_START_LIST {
/* #define FT_MODERR_END_LIST { 0, 0 } }; */ * #define FT_MODERR_END_LIST { 0, 0 } };
/* */ *
/* const struct */ * const struct
/* { */ * {
/* int mod_err_offset; */ * int mod_err_offset;
/* const char* mod_err_msg */ * const char* mod_err_msg
/* } ft_mod_errors[] = */ * } ft_mod_errors[] =
/* */ *
/* #include FT_MODULE_ERRORS_H */ * #include FT_MODULE_ERRORS_H
/* } */ * }
/* */ *
/*************************************************************************/ */
#ifndef FTMODERR_H_ #ifndef FTMODERR_H_

View File

@ -1,30 +1,30 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftotval.h */ * ftotval.h
/* */ *
/* FreeType API for validating OpenType tables (specification). */ * FreeType API for validating OpenType tables (specification).
/* */ *
/* Copyright 2004-2018 by */ * Copyright 2004-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/***************************************************************************/ /****************************************************************************
/* */ *
/* */ *
/* Warning: This module might be moved to a different library in the */ * Warning: This module might be moved to a different library in the
/* future to avoid a tight dependency between FreeType and the */ * future to avoid a tight dependency between FreeType and the
/* OpenType specification. */ * OpenType specification.
/* */ *
/* */ *
/***************************************************************************/ */
#ifndef FTOTVAL_H_ #ifndef FTOTVAL_H_
@ -43,28 +43,28 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* ot_validation */ * ot_validation
/* */ *
/* <Title> */ * @Title:
/* OpenType Validation */ * OpenType Validation
/* */ *
/* <Abstract> */ * @Abstract:
/* An API to validate OpenType tables. */ * An API to validate OpenType tables.
/* */ *
/* <Description> */ * @Description:
/* This section contains the declaration of functions to validate */ * This section contains the declaration of functions to validate
/* some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). */ * some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH).
/* */ *
/* <Order> */ * @Order:
/* FT_OpenType_Validate */ * FT_OpenType_Validate
/* FT_OpenType_Free */ * FT_OpenType_Free
/* */ *
/* FT_VALIDATE_OTXXX */ * FT_VALIDATE_OTXXX
/* */ *
/*************************************************************************/ */
/********************************************************************** /**********************************************************************
@ -126,27 +126,27 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* A handle to the input face. * A handle to the input face.
* *
* validation_flags :: * validation_flags ::
* A bit field that specifies the tables to be validated. See * A bit field that specifies the tables to be validated. See
* @FT_VALIDATE_OTXXX for possible values. * @FT_VALIDATE_OTXXX for possible values.
* *
* @output: * @output:
* BASE_table :: * BASE_table ::
* A pointer to the BASE table. * A pointer to the BASE table.
* *
* GDEF_table :: * GDEF_table ::
* A pointer to the GDEF table. * A pointer to the GDEF table.
* *
* GPOS_table :: * GPOS_table ::
* A pointer to the GPOS table. * A pointer to the GPOS table.
* *
* GSUB_table :: * GSUB_table ::
* A pointer to the GSUB table. * A pointer to the GSUB table.
* *
* JSTF_table :: * JSTF_table ::
* A pointer to the JSTF table. * A pointer to the JSTF table.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
@ -179,11 +179,11 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* A handle to the input face. * A handle to the input face.
* *
* table :: * table ::
* The pointer to the buffer that is allocated by * The pointer to the buffer that is allocated by
* @FT_OpenType_Validate. * @FT_OpenType_Validate.
* *
* @note: * @note:
* This function must be used to free the buffer allocated by * This function must be used to free the buffer allocated by

View File

@ -1,20 +1,20 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftoutln.h */ * ftoutln.h
/* */ *
/* Support for the FT_Outline type used to store glyph shapes of */ * Support for the FT_Outline type used to store glyph shapes of
/* most scalable font formats (specification). */ * most scalable font formats (specification).
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTOUTLN_H_ #ifndef FTOUTLN_H_
@ -34,127 +34,134 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* outline_processing */ * outline_processing
/* */ *
/* <Title> */ * @Title:
/* Outline Processing */ * Outline Processing
/* */ *
/* <Abstract> */ * @Abstract:
/* Functions to create, transform, and render vectorial glyph images. */ * Functions to create, transform, and render vectorial glyph images.
/* */ *
/* <Description> */ * @Description:
/* This section contains routines used to create and destroy scalable */ * This section contains routines used to create and destroy scalable
/* glyph images known as `outlines'. These can also be measured, */ * glyph images known as `outlines'. These can also be measured,
/* transformed, and converted into bitmaps and pixmaps. */ * transformed, and converted into bitmaps and pixmaps.
/* */ *
/* <Order> */ * @Order:
/* FT_Outline */ * FT_Outline
/* FT_Outline_New */ * FT_Outline_New
/* FT_Outline_Done */ * FT_Outline_Done
/* FT_Outline_Copy */ * FT_Outline_Copy
/* FT_Outline_Translate */ * FT_Outline_Translate
/* FT_Outline_Transform */ * FT_Outline_Transform
/* FT_Outline_Embolden */ * FT_Outline_Embolden
/* FT_Outline_EmboldenXY */ * FT_Outline_EmboldenXY
/* FT_Outline_Reverse */ * FT_Outline_Reverse
/* FT_Outline_Check */ * FT_Outline_Check
/* */ *
/* FT_Outline_Get_CBox */ * FT_Outline_Get_CBox
/* FT_Outline_Get_BBox */ * FT_Outline_Get_BBox
/* */ *
/* FT_Outline_Get_Bitmap */ * FT_Outline_Get_Bitmap
/* FT_Outline_Render */ * FT_Outline_Render
/* FT_Outline_Decompose */ * FT_Outline_Decompose
/* FT_Outline_Funcs */ * FT_Outline_Funcs
/* FT_Outline_MoveToFunc */ * FT_Outline_MoveToFunc
/* FT_Outline_LineToFunc */ * FT_Outline_LineToFunc
/* FT_Outline_ConicToFunc */ * FT_Outline_ConicToFunc
/* FT_Outline_CubicToFunc */ * FT_Outline_CubicToFunc
/* */ *
/* FT_Orientation */ * FT_Orientation
/* FT_Outline_Get_Orientation */ * FT_Outline_Get_Orientation
/* */ *
/* FT_OUTLINE_XXX */ * FT_OUTLINE_XXX
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Outline_Decompose */ * FT_Outline_Decompose
/* */ *
/* <Description> */ * @Description:
/* Walk over an outline's structure to decompose it into individual */ * Walk over an outline's structure to decompose it into individual
/* segments and Bezier arcs. This function also emits `move to' */ * segments and Bezier arcs. This function also emits `move to'
/* operations to indicate the start of new contours in the outline. */ * operations to indicate the start of new contours in the outline.
/* */ *
/* <Input> */ * @Input:
/* outline :: A pointer to the source target. */ * outline ::
/* */ * A pointer to the source target.
/* func_interface :: A table of `emitters', i.e., function pointers */ *
/* called during decomposition to indicate path */ * func_interface ::
/* operations. */ * A table of `emitters', i.e., function pointers
/* */ * called during decomposition to indicate path
/* <InOut> */ * operations.
/* user :: A typeless pointer that is passed to each */ *
/* emitter during the decomposition. It can be */ * @InOut:
/* used to store the state during the */ * user ::
/* decomposition. */ * A typeless pointer that is passed to each
/* */ * emitter during the decomposition. It can be
/* <Return> */ * used to store the state during the
/* FreeType error code. 0~means success. */ * decomposition.
/* */ *
/* <Note> */ * @Return:
/* A contour that contains a single point only is represented by a */ * FreeType error code. 0~means success.
/* `move to' operation followed by `line to' to the same point. In */ *
/* most cases, it is best to filter this out before using the */ * @Note:
/* outline for stroking purposes (otherwise it would result in a */ * A contour that contains a single point only is represented by a
/* visible dot when round caps are used). */ * `move to' operation followed by `line to' to the same point. In
/* */ * most cases, it is best to filter this out before using the
/* Similarly, the function returns success for an empty outline also */ * outline for stroking purposes (otherwise it would result in a
/* (doing nothing, this is, not calling any emitter); if necessary, */ * visible dot when round caps are used).
/* you should filter this out, too. */ *
/* */ * 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_EXPORT( FT_Error )
FT_Outline_Decompose( FT_Outline* outline, FT_Outline_Decompose( FT_Outline* outline,
const FT_Outline_Funcs* func_interface, const FT_Outline_Funcs* func_interface,
void* user ); void* user );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Outline_New */ * FT_Outline_New
/* */ *
/* <Description> */ * @Description:
/* Create a new outline of a given size. */ * Create a new outline of a given size.
/* */ *
/* <Input> */ * @Input:
/* library :: A handle to the library object from where the */ * library ::
/* outline is allocated. Note however that the new */ * A handle to the library object from where the
/* outline will *not* necessarily be *freed*, when */ * outline is allocated. Note however that the new
/* destroying the library, by @FT_Done_FreeType. */ * 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). */ * numPoints ::
/* */ * The maximum number of points within the outline.
/* numContours :: The maximum number of contours within the outline. */ * Must be smaller than or equal to 0xFFFF (65535).
/* This value must be in the range 0 to `numPoints'. */ *
/* */ * numContours ::
/* <Output> */ * The maximum number of contours within the outline.
/* anoutline :: A handle to the new outline. */ * This value must be in the range 0 to `numPoints'.
/* */ *
/* <Return> */ * @Output:
/* FreeType error code. 0~means success. */ * anoutline ::
/* */ * A handle to the new outline.
/* <Note> */ *
/* The reason why this function takes a `library' parameter is simply */ * @Return:
/* to use the library's memory allocator. */ * 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_EXPORT( FT_Error )
FT_Outline_New( FT_Library library, FT_Outline_New( FT_Library library,
FT_UInt numPoints, FT_UInt numPoints,
@ -169,27 +176,29 @@ FT_BEGIN_HEADER
FT_Outline *anoutline ); FT_Outline *anoutline );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Outline_Done */ * FT_Outline_Done
/* */ *
/* <Description> */ * @Description:
/* Destroy an outline created with @FT_Outline_New. */ * Destroy an outline created with @FT_Outline_New.
/* */ *
/* <Input> */ * @Input:
/* library :: A handle of the library object used to allocate the */ * library ::
/* outline. */ * A handle of the library object used to allocate the
/* */ * outline.
/* outline :: A pointer to the outline object to be discarded. */ *
/* */ * outline ::
/* <Return> */ * A pointer to the outline object to be discarded.
/* FreeType error code. 0~means success. */ *
/* */ * @Return:
/* <Note> */ * FreeType error code. 0~means success.
/* If the outline's `owner' field is not set, only the outline */ *
/* descriptor will be released. */ * @Note:
/* */ * If the outline's `owner' field is not set, only the outline
* descriptor will be released.
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Outline_Done( FT_Library library, FT_Outline_Done( FT_Library library,
FT_Outline* outline ); FT_Outline* outline );
@ -200,293 +209,312 @@ FT_BEGIN_HEADER
FT_Outline* outline ); FT_Outline* outline );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Outline_Check */ * FT_Outline_Check
/* */ *
/* <Description> */ * @Description:
/* Check the contents of an outline descriptor. */ * Check the contents of an outline descriptor.
/* */ *
/* <Input> */ * @Input:
/* outline :: A handle to a source outline. */ * outline ::
/* */ * A handle to a source outline.
/* <Return> */ *
/* FreeType error code. 0~means success. */ * @Return:
/* */ * FreeType error code. 0~means success.
/* <Note> */ *
/* An empty outline, or an outline with a single point only is also */ * @Note:
/* valid. */ * An empty outline, or an outline with a single point only is also
/* */ * valid.
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Outline_Check( FT_Outline* outline ); FT_Outline_Check( FT_Outline* outline );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Outline_Get_CBox */ * FT_Outline_Get_CBox
/* */ *
/* <Description> */ * @Description:
/* Return an outline's `control box'. The control box encloses all */ * Return an outline's `control box'. The control box encloses all
/* the outline's points, including Bezier control points. Though it */ * the outline's points, including Bezier control points. Though it
/* coincides with the exact bounding box for most glyphs, it can be */ * coincides with the exact bounding box for most glyphs, it can be
/* slightly larger in some situations (like when rotating an outline */ * slightly larger in some situations (like when rotating an outline
/* that contains Bezier outside arcs). */ * that contains Bezier outside arcs).
/* */ *
/* Computing the control box is very fast, while getting the bounding */ * 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 */ * 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 */ * and arcs in the outline. To get the latter, you can use the
/* `ftbbox' component, which is dedicated to this single task. */ * `ftbbox' component, which is dedicated to this single task.
/* */ *
/* <Input> */ * @Input:
/* outline :: A pointer to the source outline descriptor. */ * outline ::
/* */ * A pointer to the source outline descriptor.
/* <Output> */ *
/* acbox :: The outline's control box. */ * @Output:
/* */ * acbox ::
/* <Note> */ * The outline's control box.
/* See @FT_Glyph_Get_CBox for a discussion of tricky fonts. */ *
/* */ * @Note:
* See @FT_Glyph_Get_CBox for a discussion of tricky fonts.
*/
FT_EXPORT( void ) FT_EXPORT( void )
FT_Outline_Get_CBox( const FT_Outline* outline, FT_Outline_Get_CBox( const FT_Outline* outline,
FT_BBox *acbox ); FT_BBox *acbox );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Outline_Translate */ * FT_Outline_Translate
/* */ *
/* <Description> */ * @Description:
/* Apply a simple translation to the points of an outline. */ * Apply a simple translation to the points of an outline.
/* */ *
/* <InOut> */ * @InOut:
/* outline :: A pointer to the target outline descriptor. */ * outline ::
/* */ * A pointer to the target outline descriptor.
/* <Input> */ *
/* xOffset :: The horizontal offset. */ * @Input:
/* */ * xOffset ::
/* yOffset :: The vertical offset. */ * The horizontal offset.
/* */ *
* yOffset ::
* The vertical offset.
*/
FT_EXPORT( void ) FT_EXPORT( void )
FT_Outline_Translate( const FT_Outline* outline, FT_Outline_Translate( const FT_Outline* outline,
FT_Pos xOffset, FT_Pos xOffset,
FT_Pos yOffset ); FT_Pos yOffset );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Outline_Copy */ * FT_Outline_Copy
/* */ *
/* <Description> */ * @Description:
/* Copy an outline into another one. Both objects must have the */ * Copy an outline into another one. Both objects must have the
/* same sizes (number of points & number of contours) when this */ * same sizes (number of points & number of contours) when this
/* function is called. */ * function is called.
/* */ *
/* <Input> */ * @Input:
/* source :: A handle to the source outline. */ * source ::
/* */ * A handle to the source outline.
/* <Output> */ *
/* target :: A handle to the target outline. */ * @Output:
/* */ * target ::
/* <Return> */ * A handle to the target outline.
/* FreeType error code. 0~means success. */ *
/* */ * @Return:
* FreeType error code. 0~means success.
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Outline_Copy( const FT_Outline* source, FT_Outline_Copy( const FT_Outline* source,
FT_Outline *target ); FT_Outline *target );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Outline_Transform */ * FT_Outline_Transform
/* */ *
/* <Description> */ * @Description:
/* Apply a simple 2x2 matrix to all of an outline's points. Useful */ * Apply a simple 2x2 matrix to all of an outline's points. Useful
/* for applying rotations, slanting, flipping, etc. */ * for applying rotations, slanting, flipping, etc.
/* */ *
/* <InOut> */ * @InOut:
/* outline :: A pointer to the target outline descriptor. */ * outline ::
/* */ * A pointer to the target outline descriptor.
/* <Input> */ *
/* matrix :: A pointer to the transformation matrix. */ * @Input:
/* */ * matrix ::
/* <Note> */ * A pointer to the transformation matrix.
/* You can use @FT_Outline_Translate if you need to translate the */ *
/* outline's points. */ * @Note:
/* */ * You can use @FT_Outline_Translate if you need to translate the
* outline's points.
*/
FT_EXPORT( void ) FT_EXPORT( void )
FT_Outline_Transform( const FT_Outline* outline, FT_Outline_Transform( const FT_Outline* outline,
const FT_Matrix* matrix ); const FT_Matrix* matrix );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Outline_Embolden */ * FT_Outline_Embolden
/* */ *
/* <Description> */ * @Description:
/* Embolden an outline. The new outline will be at most 4~times */ * Embolden an outline. The new outline will be at most 4~times
/* `strength' pixels wider and higher. You may think of the left and */ * `strength' pixels wider and higher. You may think of the left and
/* bottom borders as unchanged. */ * bottom borders as unchanged.
/* */ *
/* Negative `strength' values to reduce the outline thickness are */ * Negative `strength' values to reduce the outline thickness are
/* possible also. */ * possible also.
/* */ *
/* <InOut> */ * @InOut:
/* outline :: A handle to the target outline. */ * outline ::
/* */ * A handle to the target outline.
/* <Input> */ *
/* strength :: How strong the glyph is emboldened. Expressed in */ * @Input:
/* 26.6 pixel format. */ * strength ::
/* */ * How strong the glyph is emboldened. Expressed in
/* <Return> */ * 26.6 pixel format.
/* FreeType error code. 0~means success. */ *
/* */ * @Return:
/* <Note> */ * FreeType error code. 0~means success.
/* The used algorithm to increase or decrease the thickness of the */ *
/* glyph doesn't change the number of points; this means that certain */ * @Note:
/* situations like acute angles or intersections are sometimes */ * The used algorithm to increase or decrease the thickness of the
/* handled incorrectly. */ * glyph doesn't change the number of points; this means that certain
/* */ * situations like acute angles or intersections are sometimes
/* If you need `better' metrics values you should call */ * handled incorrectly.
/* @FT_Outline_Get_CBox or @FT_Outline_Get_BBox. */ *
/* */ * If you need `better' metrics values you should call
/* Example 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 ); */ * 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. */ *
/* */ * 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_EXPORT( FT_Error )
FT_Outline_Embolden( FT_Outline* outline, FT_Outline_Embolden( FT_Outline* outline,
FT_Pos strength ); FT_Pos strength );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Outline_EmboldenXY */ * FT_Outline_EmboldenXY
/* */ *
/* <Description> */ * @Description:
/* Embolden an outline. The new outline will be `xstrength' pixels */ * Embolden an outline. The new outline will be `xstrength' pixels
/* wider and `ystrength' pixels higher. Otherwise, it is similar to */ * wider and `ystrength' pixels higher. Otherwise, it is similar to
/* @FT_Outline_Embolden, which uses the same strength in both */ * @FT_Outline_Embolden, which uses the same strength in both
/* directions. */ * directions.
/* */ *
/* <Since> */ * @Since:
/* 2.4.10 */ * 2.4.10
/* */ */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Outline_EmboldenXY( FT_Outline* outline, FT_Outline_EmboldenXY( FT_Outline* outline,
FT_Pos xstrength, FT_Pos xstrength,
FT_Pos ystrength ); FT_Pos ystrength );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Outline_Reverse */ * FT_Outline_Reverse
/* */ *
/* <Description> */ * @Description:
/* Reverse the drawing direction of an outline. This is used to */ * Reverse the drawing direction of an outline. This is used to
/* ensure consistent fill conventions for mirrored glyphs. */ * ensure consistent fill conventions for mirrored glyphs.
/* */ *
/* <InOut> */ * @InOut:
/* outline :: A pointer to the target outline descriptor. */ * outline ::
/* */ * A pointer to the target outline descriptor.
/* <Note> */ *
/* This function toggles the bit flag @FT_OUTLINE_REVERSE_FILL in */ * @Note:
/* the outline's `flags' field. */ * 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. */ * It shouldn't be used by a normal client application, unless it
/* */ * knows what it is doing.
*/
FT_EXPORT( void ) FT_EXPORT( void )
FT_Outline_Reverse( FT_Outline* outline ); FT_Outline_Reverse( FT_Outline* outline );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Outline_Get_Bitmap */ * FT_Outline_Get_Bitmap
/* */ *
/* <Description> */ * @Description:
/* Render an outline within a bitmap. The outline's image is simply */ * Render an outline within a bitmap. The outline's image is simply
/* OR-ed to the target bitmap. */ * OR-ed to the target bitmap.
/* */ *
/* <Input> */ * @Input:
/* library :: A handle to a FreeType library object. */ * library ::
/* */ * A handle to a FreeType library object.
/* outline :: A pointer to the source outline descriptor. */ *
/* */ * outline ::
/* <InOut> */ * A pointer to the source outline descriptor.
/* abitmap :: A pointer to the target bitmap descriptor. */ *
/* */ * @InOut:
/* <Return> */ * abitmap ::
/* FreeType error code. 0~means success. */ * A pointer to the target bitmap descriptor.
/* */ *
/* <Note> */ * @Return:
/* This function does NOT CREATE the bitmap, it only renders an */ * FreeType error code. 0~means success.
/* outline image within the one you pass to it! Consequently, the */ *
/* various fields in `abitmap' should be set accordingly. */ * @Note:
/* */ * This function does NOT CREATE the bitmap, it only renders an
/* It will use the raster corresponding to the default glyph format. */ * outline image within the one you pass to it! Consequently, the
/* */ * various fields in `abitmap' should be set accordingly.
/* The value of the `num_grays' field in `abitmap' is ignored. If */ *
/* you select the gray-level rasterizer, and you want less than 256 */ * It will use the raster corresponding to the default glyph format.
/* gray levels, you have to use @FT_Outline_Render directly. */ *
/* */ * 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_EXPORT( FT_Error )
FT_Outline_Get_Bitmap( FT_Library library, FT_Outline_Get_Bitmap( FT_Library library,
FT_Outline* outline, FT_Outline* outline,
const FT_Bitmap *abitmap ); const FT_Bitmap *abitmap );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Outline_Render */ * FT_Outline_Render
/* */ *
/* <Description> */ * @Description:
/* Render an outline within a bitmap using the current scan-convert. */ * Render an outline within a bitmap using the current scan-convert.
/* This function uses an @FT_Raster_Params structure as an argument, */ * This function uses an @FT_Raster_Params structure as an argument,
/* allowing advanced features like direct composition, translucency, */ * allowing advanced features like direct composition, translucency,
/* etc. */ * etc.
/* */ *
/* <Input> */ * @Input:
/* library :: A handle to a FreeType library object. */ * library ::
/* */ * A handle to a FreeType library object.
/* outline :: A pointer to the source outline descriptor. */ *
/* */ * outline ::
/* <InOut> */ * A pointer to the source outline descriptor.
/* params :: A pointer to an @FT_Raster_Params structure used to */ *
/* describe the rendering operation. */ * @InOut:
/* */ * params ::
/* <Return> */ * A pointer to an @FT_Raster_Params structure used to
/* FreeType error code. 0~means success. */ * describe the rendering operation.
/* */ *
/* <Note> */ * @Return:
/* You should know what you are doing and how @FT_Raster_Params works */ * FreeType error code. 0~means success.
/* to use this function. */ *
/* */ * @Note:
/* The field `params.source' will be set to `outline' before the scan */ * You should know what you are doing and how @FT_Raster_Params works
/* converter is called, which means that the value you give to it is */ * to use this function.
/* actually ignored. */ *
/* */ * The field `params.source' will be set to `outline' before the scan
/* The gray-level rasterizer always uses 256 gray levels. If you */ * converter is called, which means that the value you give to it is
/* want less gray levels, you have to provide your own span callback. */ * actually ignored.
/* See the @FT_RASTER_FLAG_DIRECT value of the `flags' field in the */ *
/* @FT_Raster_Params structure for more details. */ * 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_EXPORT( FT_Error )
FT_Outline_Render( FT_Library library, FT_Outline_Render( FT_Library library,
FT_Outline* outline, FT_Outline* outline,

View File

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

View File

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

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftrender.h */ * ftrender.h
/* */ *
/* FreeType renderer modules public interface (specification). */ * FreeType renderer modules public interface (specification).
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTRENDER_H_ #ifndef FTRENDER_H_
@ -28,12 +28,12 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* module_management */ * module_management
/* */ *
/*************************************************************************/ */
/* create a new glyph object */ /* create a new glyph object */
@ -116,32 +116,39 @@ FT_BEGIN_HEADER
#define FTRenderer_setMode FT_Renderer_SetModeFunc #define FTRenderer_setMode FT_Renderer_SetModeFunc
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* FT_Renderer_Class */ * FT_Renderer_Class
/* */ *
/* <Description> */ * @Description:
/* The renderer module class descriptor. */ * The renderer module class descriptor.
/* */ *
/* <Fields> */ * @Fields:
/* root :: The root @FT_Module_Class fields. */ * root ::
/* */ * The root @FT_Module_Class fields.
/* glyph_format :: The glyph image format this renderer handles. */ *
/* */ * glyph_format ::
/* render_glyph :: A method used to render the image that is in a */ * The glyph image format this renderer handles.
/* given glyph slot into a bitmap. */ *
/* */ * render_glyph ::
/* transform_glyph :: A method used to transform the image that is in */ * A method used to render the image that is in a
/* a given glyph slot. */ * given glyph slot into a bitmap.
/* */ *
/* get_glyph_cbox :: A method used to access the glyph's cbox. */ * transform_glyph ::
/* */ * A method used to transform the image that is in
/* set_mode :: A method used to pass additional parameters. */ * a given glyph slot.
/* */ *
/* raster_class :: For @FT_GLYPH_FORMAT_OUTLINE renderers only. */ * get_glyph_cbox ::
/* This is a pointer to its raster's class. */ * 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_ typedef struct FT_Renderer_Class_
{ {
FT_Module_Class root; FT_Module_Class root;
@ -158,64 +165,70 @@ FT_BEGIN_HEADER
} FT_Renderer_Class; } FT_Renderer_Class;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Get_Renderer */ * FT_Get_Renderer
/* */ *
/* <Description> */ * @Description:
/* Retrieve the current renderer for a given glyph format. */ * Retrieve the current renderer for a given glyph format.
/* */ *
/* <Input> */ * @Input:
/* library :: A handle to the library object. */ * library ::
/* */ * A handle to the library object.
/* format :: The glyph format. */ *
/* */ * format ::
/* <Return> */ * The glyph format.
/* A renderer handle. 0~if none found. */ *
/* */ * @Return:
/* <Note> */ * A renderer handle. 0~if none found.
/* 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. */ * @Note:
/* */ * An error will be returned if a module already exists by that name,
/* To add a new renderer, simply use @FT_Add_Module. To retrieve a */ * or if the module requires a version of FreeType that is too great.
/* renderer by its name, use @FT_Get_Module. */ *
/* */ * 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_EXPORT( FT_Renderer )
FT_Get_Renderer( FT_Library library, FT_Get_Renderer( FT_Library library,
FT_Glyph_Format format ); FT_Glyph_Format format );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Set_Renderer */ * FT_Set_Renderer
/* */ *
/* <Description> */ * @Description:
/* Set the current renderer to use, and set additional mode. */ * Set the current renderer to use, and set additional mode.
/* */ *
/* <InOut> */ * @InOut:
/* library :: A handle to the library object. */ * library ::
/* */ * A handle to the library object.
/* <Input> */ *
/* renderer :: A handle to the renderer object. */ * @Input:
/* */ * renderer ::
/* num_params :: The number of additional parameters. */ * A handle to the renderer object.
/* */ *
/* parameters :: Additional parameters. */ * num_params ::
/* */ * The number of additional parameters.
/* <Return> */ *
/* FreeType error code. 0~means success. */ * parameters ::
/* */ * Additional parameters.
/* <Note> */ *
/* In case of success, the renderer will be used to convert glyph */ * @Return:
/* images in the renderer's known format into bitmaps. */ * FreeType error code. 0~means success.
/* */ *
/* This doesn't change the current renderer for other formats. */ * @Note:
/* */ * In case of success, the renderer will be used to convert glyph
/* Currently, no FreeType renderer module uses `parameters'; you */ * images in the renderer's known format into bitmaps.
/* should thus always pass NULL as the value. */ *
/* */ * 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_EXPORT( FT_Error )
FT_Set_Renderer( FT_Library library, FT_Set_Renderer( FT_Library library,
FT_Renderer renderer, FT_Renderer renderer,

View File

@ -1,28 +1,28 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftsizes.h */ * ftsizes.h
/* */ *
/* FreeType size objects management (specification). */ * FreeType size objects management (specification).
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* Typical application would normally not need to use these functions. */ * Typical application would normally not need to use these functions.
/* However, they have been placed in a public API for the rare cases */ * However, they have been placed in a public API for the rare cases
/* where they are needed. */ * where they are needed.
/* */ *
/*************************************************************************/ */
#ifndef FTSIZES_H_ #ifndef FTSIZES_H_
@ -42,109 +42,113 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* sizes_management */ * sizes_management
/* */ *
/* <Title> */ * @Title:
/* Size Management */ * Size Management
/* */ *
/* <Abstract> */ * @Abstract:
/* Managing multiple sizes per face. */ * Managing multiple sizes per face.
/* */ *
/* <Description> */ * @Description:
/* When creating a new face object (e.g., with @FT_New_Face), an */ * When creating a new face object (e.g., with @FT_New_Face), an
/* @FT_Size object is automatically created and used to store all */ * @FT_Size object is automatically created and used to store all
/* pixel-size dependent information, available in the `face->size' */ * pixel-size dependent information, available in the `face->size'
/* field. */ * field.
/* */ *
/* It is however possible to create more sizes for a given face, */ * It is however possible to create more sizes for a given face,
/* mostly in order to manage several character pixel sizes of the */ * mostly in order to manage several character pixel sizes of the
/* same font family and style. See @FT_New_Size and @FT_Done_Size. */ * 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 */ * Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only
/* modify the contents of the current `active' size; you thus need */ * modify the contents of the current `active' size; you thus need
/* to use @FT_Activate_Size to change it. */ * to use @FT_Activate_Size to change it.
/* */ *
/* 99% of applications won't need the functions provided here, */ * 99% of applications won't need the functions provided here,
/* especially if they use the caching sub-system, so be cautious */ * especially if they use the caching sub-system, so be cautious
/* when using these. */ * when using these.
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_New_Size */ * FT_New_Size
/* */ *
/* <Description> */ * @Description:
/* Create a new size object from a given face object. */ * Create a new size object from a given face object.
/* */ *
/* <Input> */ * @Input:
/* face :: A handle to a parent face object. */ * face ::
/* */ * A handle to a parent face object.
/* <Output> */ *
/* asize :: A handle to a new size object. */ * @Output:
/* */ * asize ::
/* <Return> */ * A handle to a new size object.
/* FreeType error code. 0~means success. */ *
/* */ * @Return:
/* <Note> */ * FreeType error code. 0~means success.
/* 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, */ * @Note:
/* @FT_Load_Glyph, @FT_Load_Char, etc. */ * 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_EXPORT( FT_Error )
FT_New_Size( FT_Face face, FT_New_Size( FT_Face face,
FT_Size* size ); FT_Size* size );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Done_Size */ * FT_Done_Size
/* */ *
/* <Description> */ * @Description:
/* Discard a given size object. Note that @FT_Done_Face */ * Discard a given size object. Note that @FT_Done_Face
/* automatically discards all size objects allocated with */ * automatically discards all size objects allocated with
/* @FT_New_Size. */ * @FT_New_Size.
/* */ *
/* <Input> */ * @Input:
/* size :: A handle to a target size object. */ * size ::
/* */ * A handle to a target size object.
/* <Return> */ *
/* FreeType error code. 0~means success. */ * @Return:
/* */ * FreeType error code. 0~means success.
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Done_Size( FT_Size size ); FT_Done_Size( FT_Size size );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Activate_Size */ * FT_Activate_Size
/* */ *
/* <Description> */ * @Description:
/* Even though it is possible to create several size objects for a */ * Even though it is possible to create several size objects for a
/* given face (see @FT_New_Size for details), functions like */ * given face (see @FT_New_Size for details), functions like
/* @FT_Load_Glyph or @FT_Load_Char only use the one that has been */ * @FT_Load_Glyph or @FT_Load_Char only use the one that has been
/* activated last to determine the `current character pixel size'. */ * activated last to determine the `current character pixel size'.
/* */ *
/* This function can be used to `activate' a previously created size */ * This function can be used to `activate' a previously created size
/* object. */ * object.
/* */ *
/* <Input> */ * @Input:
/* size :: A handle to a target size object. */ * size ::
/* */ * A handle to a target size object.
/* <Return> */ *
/* FreeType error code. 0~means success. */ * @Return:
/* */ * FreeType error code. 0~means success.
/* <Note> */ *
/* If `face' is the size's parent face object, this function changes */ * @Note:
/* the value of `face->size' to the input size handle. */ * 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_EXPORT( FT_Error )
FT_Activate_Size( FT_Size size ); FT_Activate_Size( FT_Size size );

View File

@ -1,22 +1,22 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftsnames.h */ * ftsnames.h
/* */ *
/* Simple interface to access SFNT `name' tables (which are used */ * Simple interface to access SFNT `name' tables (which are used
/* to hold font names, copyright info, notices, etc.) (specification). */ * to hold font names, copyright info, notices, etc.) (specification).
/* */ *
/* This is _not_ used to retrieve glyph names! */ * This is _not_ used to retrieve glyph names!
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTSNAMES_H_ #ifndef FTSNAMES_H_
@ -37,72 +37,78 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* sfnt_names */ * sfnt_names
/* */ *
/* <Title> */ * @Title:
/* SFNT Names */ * SFNT Names
/* */ *
/* <Abstract> */ * @Abstract:
/* Access the names embedded in TrueType and OpenType files. */ * Access the names embedded in TrueType and OpenType files.
/* */ *
/* <Description> */ * @Description:
/* The TrueType and OpenType specifications allow the inclusion of */ * The TrueType and OpenType specifications allow the inclusion of
/* a special names table (`name') in font files. This table contains */ * a special names table (`name') in font files. This table contains
/* textual (and internationalized) information regarding the font, */ * textual (and internationalized) information regarding the font,
/* like family name, copyright, version, etc. */ * like family name, copyright, version, etc.
/* */ *
/* The definitions below are used to access them if available. */ * The definitions below are used to access them if available.
/* */ *
/* Note that this has nothing to do with glyph names! */ * Note that this has nothing to do with glyph names!
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* FT_SfntName */ * FT_SfntName
/* */ *
/* <Description> */ * @Description:
/* A structure used to model an SFNT `name' table entry. */ * A structure used to model an SFNT `name' table entry.
/* */ *
/* <Fields> */ * @Fields:
/* platform_id :: The platform ID for `string'. */ * platform_id ::
/* See @TT_PLATFORM_XXX for possible values. */ * 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, */ * encoding_id ::
/* @TT_ISO_ID_XXX, @TT_MS_ID_XXX, and @TT_ADOBE_ID_XXX */ * The encoding ID for `string'.
/* for possible values. */ * See @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX,
/* */ * @TT_ISO_ID_XXX, @TT_MS_ID_XXX, and @TT_ADOBE_ID_XXX
/* language_id :: The language ID for `string'. */ * for possible values.
/* See @TT_MAC_LANGID_XXX and @TT_MS_LANGID_XXX for */ *
/* possible values. */ * language_id ::
/* */ * The language ID for `string'.
/* Registered OpenType values for `language_id' are */ * See @TT_MAC_LANGID_XXX and @TT_MS_LANGID_XXX for
/* always smaller than 0x8000; values equal or larger */ * possible values.
/* than 0x8000 usually indicate a language tag string */ *
/* (introduced in OpenType version 1.6). Use function */ * Registered OpenType values for `language_id' are
/* @FT_Get_Sfnt_LangTag with `language_id' as its */ * always smaller than 0x8000; values equal or larger
/* argument to retrieve the associated language tag. */ * than 0x8000 usually indicate a language tag string
/* */ * (introduced in OpenType version 1.6). Use function
/* name_id :: An identifier for `string'. */ * @FT_Get_Sfnt_LangTag with `language_id' as its
/* See @TT_NAME_ID_XXX for possible values. */ * argument to retrieve the associated language tag.
/* */ *
/* string :: The `name' string. Note that its format differs */ * name_id ::
/* depending on the (platform,encoding) pair, being */ * An identifier for `string'.
/* either a string of bytes (without a terminating */ * See @TT_NAME_ID_XXX for possible values.
/* NULL byte) or containing UTF-16BE entities. */ *
/* */ * string ::
/* string_len :: The length of `string' in bytes. */ * The `name' string. Note that its format differs
/* */ * depending on the (platform,encoding) pair, being
/* <Note> */ * either a string of bytes (without a terminating
/* Please refer to the TrueType or OpenType specification for more */ * NULL byte) or containing UTF-16BE entities.
/* details. */ *
/* */ * string_len ::
* The length of `string' in bytes.
*
* @Note:
* Please refer to the TrueType or OpenType specification for more
* details.
*/
typedef struct FT_SfntName_ typedef struct FT_SfntName_
{ {
FT_UShort platform_id; FT_UShort platform_id;
@ -116,90 +122,96 @@ FT_BEGIN_HEADER
} FT_SfntName; } FT_SfntName;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Get_Sfnt_Name_Count */ * FT_Get_Sfnt_Name_Count
/* */ *
/* <Description> */ * @Description:
/* Retrieve the number of name strings in the SFNT `name' table. */ * Retrieve the number of name strings in the SFNT `name' table.
/* */ *
/* <Input> */ * @Input:
/* face :: A handle to the source face. */ * face ::
/* */ * A handle to the source face.
/* <Return> */ *
/* The number of strings in the `name' table. */ * @Return:
/* */ * The number of strings in the `name' table.
/* <Note> */ *
/* This function always returns an error if the config macro */ * @Note:
/* `TT_CONFIG_OPTION_SFNT_NAMES' is not defined in `ftoption.h'. */ * 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_EXPORT( FT_UInt )
FT_Get_Sfnt_Name_Count( FT_Face face ); FT_Get_Sfnt_Name_Count( FT_Face face );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Get_Sfnt_Name */ * FT_Get_Sfnt_Name
/* */ *
/* <Description> */ * @Description:
/* Retrieve a string of the SFNT `name' table for a given index. */ * Retrieve a string of the SFNT `name' table for a given index.
/* */ *
/* <Input> */ * @Input:
/* face :: A handle to the source face. */ * face ::
/* */ * A handle to the source face.
/* idx :: The index of the `name' string. */ *
/* */ * idx ::
/* <Output> */ * The index of the `name' string.
/* aname :: The indexed @FT_SfntName structure. */ *
/* */ * @Output:
/* <Return> */ * aname ::
/* FreeType error code. 0~means success. */ * The indexed @FT_SfntName structure.
/* */ *
/* <Note> */ * @Return:
/* The `string' array returned in the `aname' structure is not */ * FreeType error code. 0~means success.
/* null-terminated. Note that you don't have to deallocate `string' */ *
/* by yourself; FreeType takes care of it if you call @FT_Done_Face. */ * @Note:
/* */ * The `string' array returned in the `aname' structure is not
/* Use @FT_Get_Sfnt_Name_Count to get the total number of available */ * null-terminated. Note that you don't have to deallocate `string'
/* `name' table entries, then do a loop until you get the right */ * by yourself; FreeType takes care of it if you call @FT_Done_Face.
/* platform, encoding, and name ID. */ *
/* */ * Use @FT_Get_Sfnt_Name_Count to get the total number of available
/* `name' table format~1 entries can use language tags also, see */ * `name' table entries, then do a loop until you get the right
/* @FT_Get_Sfnt_LangTag. */ * platform, encoding, and name ID.
/* */ *
/* This function always returns an error if the config macro */ * `name' table format~1 entries can use language tags also, see
/* `TT_CONFIG_OPTION_SFNT_NAMES' is not defined in `ftoption.h'. */ * @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_EXPORT( FT_Error )
FT_Get_Sfnt_Name( FT_Face face, FT_Get_Sfnt_Name( FT_Face face,
FT_UInt idx, FT_UInt idx,
FT_SfntName *aname ); FT_SfntName *aname );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* FT_SfntLangTag */ * FT_SfntLangTag
/* */ *
/* <Description> */ * @Description:
/* A structure to model a language tag entry from an SFNT `name' */ * A structure to model a language tag entry from an SFNT `name'
/* table. */ * table.
/* */ *
/* <Fields> */ * @Fields:
/* string :: The language tag string, encoded in UTF-16BE */ * string ::
/* (without trailing NULL bytes). */ * The language tag string, encoded in UTF-16BE
/* */ * (without trailing NULL bytes).
/* string_len :: The length of `string' in *bytes*. */ *
/* */ * string_len ::
/* <Note> */ * The length of `string' in *bytes*.
/* Please refer to the TrueType or OpenType specification for more */ *
/* details. */ * @Note:
/* */ * Please refer to the TrueType or OpenType specification for more
/* <Since> */ * details.
/* 2.8 */ *
/* */ * @Since:
* 2.8
*/
typedef struct FT_SfntLangTag_ typedef struct FT_SfntLangTag_
{ {
FT_Byte* string; /* this string is *not* null-terminated! */ FT_Byte* string; /* this string is *not* null-terminated! */
@ -208,44 +220,47 @@ FT_BEGIN_HEADER
} FT_SfntLangTag; } FT_SfntLangTag;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_Get_Sfnt_LangTag */ * FT_Get_Sfnt_LangTag
/* */ *
/* <Description> */ * @Description:
/* Retrieve the language tag associated with a language ID of an SFNT */ * Retrieve the language tag associated with a language ID of an SFNT
/* `name' table entry. */ * `name' table entry.
/* */ *
/* <Input> */ * @Input:
/* face :: A handle to the source face. */ * 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. */ * langID ::
/* */ * The language ID, as returned by @FT_Get_Sfnt_Name.
/* <Output> */ * This is always a value larger than 0x8000.
/* alangTag :: The language tag associated with the `name' table */ *
/* entry's language ID. */ * @Output:
/* */ * alangTag ::
/* <Return> */ * The language tag associated with the `name' table
/* FreeType error code. 0~means success. */ * entry's language ID.
/* */ *
/* <Note> */ * @Return:
/* The `string' array returned in the `alangTag' structure is not */ * FreeType error code. 0~means success.
/* null-terminated. Note that you don't have to deallocate `string' */ *
/* by yourself; FreeType takes care of it if you call @FT_Done_Face. */ * @Note:
/* */ * The `string' array returned in the `alangTag' structure is not
/* Only `name' table format~1 supports language tags. For format~0 */ * null-terminated. Note that you don't have to deallocate `string'
/* tables, this function always returns FT_Err_Invalid_Table. For */ * by yourself; FreeType takes care of it if you call @FT_Done_Face.
/* invalid format~1 language ID values, FT_Err_Invalid_Argument is */ *
/* returned. */ * Only `name' table format~1 supports language tags. For format~0
/* */ * tables, this function always returns FT_Err_Invalid_Table. For
/* This function always returns an error if the config macro */ * invalid format~1 language ID values, FT_Err_Invalid_Argument is
/* `TT_CONFIG_OPTION_SFNT_NAMES' is not defined in `ftoption.h'. */ * returned.
/* */ *
/* <Since> */ * This function always returns an error if the config macro
/* 2.8 */ * `TT_CONFIG_OPTION_SFNT_NAMES' is not defined in `ftoption.h'.
/* */ *
* @Since:
* 2.8
*/
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Get_Sfnt_LangTag( FT_Face face, FT_Get_Sfnt_LangTag( FT_Face face,
FT_UInt langID, FT_UInt langID,

View File

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

View File

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

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftsystem.h */ * ftsystem.h
/* */ *
/* FreeType low-level system interface definition (specification). */ * FreeType low-level system interface definition (specification).
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTSYSTEM_H_ #ifndef FTSYSTEM_H_
@ -26,31 +26,31 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* system_interface */ * system_interface
/* */ *
/* <Title> */ * @Title:
/* System Interface */ * System Interface
/* */ *
/* <Abstract> */ * @Abstract:
/* How FreeType manages memory and i/o. */ * How FreeType manages memory and i/o.
/* */ *
/* <Description> */ * @Description:
/* This section contains various definitions related to memory */ * This section contains various definitions related to memory
/* management and i/o access. You need to understand this */ * management and i/o access. You need to understand this
/* information if you want to use a custom memory manager or you own */ * information if you want to use a custom memory manager or you own
/* i/o streams. */ * 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
/* */ *
/*************************************************************************/ */
/************************************************************************* /*************************************************************************
@ -265,7 +265,7 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* stream :: * stream ::
* A handle to the target stream. * A handle to the target stream.
* *
*/ */
typedef void typedef void

View File

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

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* fttypes.h */ * fttypes.h
/* */ *
/* FreeType simple types definitions (specification only). */ * FreeType simple types definitions (specification only).
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTTYPES_H_ #ifndef FTTYPES_H_
@ -31,326 +31,328 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* basic_types */ * basic_types
/* */ *
/* <Title> */ * @Title:
/* Basic Data Types */ * Basic Data Types
/* */ *
/* <Abstract> */ * @Abstract:
/* The basic data types defined by the library. */ * The basic data types defined by the library.
/* */ *
/* <Description> */ * @Description:
/* This section contains the basic data types defined by FreeType~2, */ * This section contains the basic data types defined by FreeType~2,
/* ranging from simple scalar types to bitmap descriptors. More */ * ranging from simple scalar types to bitmap descriptors. More
/* font-specific structures are defined in a different section. */ * font-specific structures are defined in a different section.
/* */ *
/* <Order> */ * @Order:
/* FT_Byte */ * FT_Byte
/* FT_Bytes */ * FT_Bytes
/* FT_Char */ * FT_Char
/* FT_Int */ * FT_Int
/* FT_UInt */ * FT_UInt
/* FT_Int16 */ * FT_Int16
/* FT_UInt16 */ * FT_UInt16
/* FT_Int32 */ * FT_Int32
/* FT_UInt32 */ * FT_UInt32
/* FT_Int64 */ * FT_Int64
/* FT_UInt64 */ * FT_UInt64
/* FT_Short */ * FT_Short
/* FT_UShort */ * FT_UShort
/* FT_Long */ * FT_Long
/* FT_ULong */ * FT_ULong
/* FT_Bool */ * FT_Bool
/* FT_Offset */ * FT_Offset
/* FT_PtrDist */ * FT_PtrDist
/* FT_String */ * FT_String
/* FT_Tag */ * FT_Tag
/* FT_Error */ * FT_Error
/* FT_Fixed */ * FT_Fixed
/* FT_Pointer */ * FT_Pointer
/* FT_Pos */ * FT_Pos
/* FT_Vector */ * FT_Vector
/* FT_BBox */ * FT_BBox
/* FT_Matrix */ * FT_Matrix
/* FT_FWord */ * FT_FWord
/* FT_UFWord */ * FT_UFWord
/* FT_F2Dot14 */ * FT_F2Dot14
/* FT_UnitVector */ * FT_UnitVector
/* FT_F26Dot6 */ * FT_F26Dot6
/* FT_Data */ * FT_Data
/* */ *
/* FT_MAKE_TAG */ * FT_MAKE_TAG
/* */ *
/* FT_Generic */ * FT_Generic
/* FT_Generic_Finalizer */ * FT_Generic_Finalizer
/* */ *
/* FT_Bitmap */ * FT_Bitmap
/* FT_Pixel_Mode */ * FT_Pixel_Mode
/* FT_Palette_Mode */ * FT_Palette_Mode
/* FT_Glyph_Format */ * FT_Glyph_Format
/* FT_IMAGE_TAG */ * FT_IMAGE_TAG
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Bool */ * FT_Bool
/* */ *
/* <Description> */ * @Description:
/* A typedef of unsigned char, used for simple booleans. As usual, */ * A typedef of unsigned char, used for simple booleans. As usual,
/* values 1 and~0 represent true and false, respectively. */ * values 1 and~0 represent true and false, respectively.
/* */ */
typedef unsigned char FT_Bool; typedef unsigned char FT_Bool;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_FWord */ * FT_FWord
/* */ *
/* <Description> */ * @Description:
/* A signed 16-bit integer used to store a distance in original font */ * A signed 16-bit integer used to store a distance in original font
/* units. */ * units.
/* */ */
typedef signed short FT_FWord; /* distance in FUnits */ typedef signed short FT_FWord; /* distance in FUnits */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_UFWord */ * FT_UFWord
/* */ *
/* <Description> */ * @Description:
/* An unsigned 16-bit integer used to store a distance in original */ * An unsigned 16-bit integer used to store a distance in original
/* font units. */ * font units.
/* */ */
typedef unsigned short FT_UFWord; /* unsigned distance */ typedef unsigned short FT_UFWord; /* unsigned distance */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Char */ * FT_Char
/* */ *
/* <Description> */ * @Description:
/* A simple typedef for the _signed_ char type. */ * A simple typedef for the _signed_ char type.
/* */ */
typedef signed char FT_Char; typedef signed char FT_Char;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Byte */ * FT_Byte
/* */ *
/* <Description> */ * @Description:
/* A simple typedef for the _unsigned_ char type. */ * A simple typedef for the _unsigned_ char type.
/* */ */
typedef unsigned char FT_Byte; typedef unsigned char FT_Byte;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Bytes */ * FT_Bytes
/* */ *
/* <Description> */ * @Description:
/* A typedef for constant memory areas. */ * A typedef for constant memory areas.
/* */ */
typedef const FT_Byte* FT_Bytes; typedef const FT_Byte* FT_Bytes;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Tag */ * FT_Tag
/* */ *
/* <Description> */ * @Description:
/* A typedef for 32-bit tags (as used in the SFNT format). */ * A typedef for 32-bit tags (as used in the SFNT format).
/* */ */
typedef FT_UInt32 FT_Tag; typedef FT_UInt32 FT_Tag;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_String */ * FT_String
/* */ *
/* <Description> */ * @Description:
/* A simple typedef for the char type, usually used for strings. */ * A simple typedef for the char type, usually used for strings.
/* */ */
typedef char FT_String; typedef char FT_String;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Short */ * FT_Short
/* */ *
/* <Description> */ * @Description:
/* A typedef for signed short. */ * A typedef for signed short.
/* */ */
typedef signed short FT_Short; typedef signed short FT_Short;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_UShort */ * FT_UShort
/* */ *
/* <Description> */ * @Description:
/* A typedef for unsigned short. */ * A typedef for unsigned short.
/* */ */
typedef unsigned short FT_UShort; typedef unsigned short FT_UShort;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Int */ * FT_Int
/* */ *
/* <Description> */ * @Description:
/* A typedef for the int type. */ * A typedef for the int type.
/* */ */
typedef signed int FT_Int; typedef signed int FT_Int;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_UInt */ * FT_UInt
/* */ *
/* <Description> */ * @Description:
/* A typedef for the unsigned int type. */ * A typedef for the unsigned int type.
/* */ */
typedef unsigned int FT_UInt; typedef unsigned int FT_UInt;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Long */ * FT_Long
/* */ *
/* <Description> */ * @Description:
/* A typedef for signed long. */ * A typedef for signed long.
/* */ */
typedef signed long FT_Long; typedef signed long FT_Long;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_ULong */ * FT_ULong
/* */ *
/* <Description> */ * @Description:
/* A typedef for unsigned long. */ * A typedef for unsigned long.
/* */ */
typedef unsigned long FT_ULong; typedef unsigned long FT_ULong;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_F2Dot14 */ * FT_F2Dot14
/* */ *
/* <Description> */ * @Description:
/* A signed 2.14 fixed-point type used for unit vectors. */ * A signed 2.14 fixed-point type used for unit vectors.
/* */ */
typedef signed short FT_F2Dot14; typedef signed short FT_F2Dot14;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_F26Dot6 */ * FT_F26Dot6
/* */ *
/* <Description> */ * @Description:
/* A signed 26.6 fixed-point type used for vectorial pixel */ * A signed 26.6 fixed-point type used for vectorial pixel
/* coordinates. */ * coordinates.
/* */ */
typedef signed long FT_F26Dot6; typedef signed long FT_F26Dot6;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Fixed */ * FT_Fixed
/* */ *
/* <Description> */ * @Description:
/* This type is used to store 16.16 fixed-point values, like scaling */ * This type is used to store 16.16 fixed-point values, like scaling
/* values or matrix coefficients. */ * values or matrix coefficients.
/* */ */
typedef signed long FT_Fixed; typedef signed long FT_Fixed;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Error */ * FT_Error
/* */ *
/* <Description> */ * @Description:
/* The FreeType error code type. A value of~0 is always interpreted */ * The FreeType error code type. A value of~0 is always interpreted
/* as a successful operation. */ * as a successful operation.
/* */ */
typedef int FT_Error; typedef int FT_Error;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Pointer */ * FT_Pointer
/* */ *
/* <Description> */ * @Description:
/* A simple typedef for a typeless pointer. */ * A simple typedef for a typeless pointer.
/* */ */
typedef void* FT_Pointer; typedef void* FT_Pointer;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_Offset */ * FT_Offset
/* */ *
/* <Description> */ * @Description:
/* This is equivalent to the ANSI~C `size_t' type, i.e., the largest */ * 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, */ * _unsigned_ integer type used to express a file size or position,
/* or a memory block size. */ * or a memory block size.
/* */ */
typedef size_t FT_Offset; typedef size_t FT_Offset;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_PtrDist */ * FT_PtrDist
/* */ *
/* <Description> */ * @Description:
/* This is equivalent to the ANSI~C `ptrdiff_t' type, i.e., the */ * This is equivalent to the ANSI~C `ptrdiff_t' type, i.e., the
/* largest _signed_ integer type used to express the distance */ * largest _signed_ integer type used to express the distance
/* between two pointers. */ * between two pointers.
/* */ */
typedef ft_ptrdiff_t FT_PtrDist; typedef ft_ptrdiff_t FT_PtrDist;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* FT_UnitVector */ * FT_UnitVector
/* */ *
/* <Description> */ * @Description:
/* A simple structure used to store a 2D vector unit vector. Uses */ * A simple structure used to store a 2D vector unit vector. Uses
/* FT_F2Dot14 types. */ * FT_F2Dot14 types.
/* */ *
/* <Fields> */ * @Fields:
/* x :: Horizontal coordinate. */ * x ::
/* */ * Horizontal coordinate.
/* y :: Vertical coordinate. */ *
/* */ * y ::
* Vertical coordinate.
*/
typedef struct FT_UnitVector_ typedef struct FT_UnitVector_
{ {
FT_F2Dot14 x; FT_F2Dot14 x;
@ -359,29 +361,33 @@ FT_BEGIN_HEADER
} FT_UnitVector; } FT_UnitVector;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* FT_Matrix */ * FT_Matrix
/* */ *
/* <Description> */ * @Description:
/* A simple structure used to store a 2x2 matrix. Coefficients are */ * A simple structure used to store a 2x2 matrix. Coefficients are
/* in 16.16 fixed-point format. The computation performed is: */ * in 16.16 fixed-point format. The computation performed is:
/* */ *
/* { */ * {
/* x' = x*xx + y*xy */ * x' = x*xx + y*xy
/* y' = x*yx + y*yy */ * y' = x*yx + y*yy
/* } */ * }
/* */ *
/* <Fields> */ * @Fields:
/* xx :: Matrix coefficient. */ * xx ::
/* */ * Matrix coefficient.
/* xy :: Matrix coefficient. */ *
/* */ * xy ::
/* yx :: Matrix coefficient. */ * Matrix coefficient.
/* */ *
/* yy :: Matrix coefficient. */ * yx ::
/* */ * Matrix coefficient.
*
* yy ::
* Matrix coefficient.
*/
typedef struct FT_Matrix_ typedef struct FT_Matrix_
{ {
FT_Fixed xx, xy; FT_Fixed xx, xy;
@ -390,19 +396,21 @@ FT_BEGIN_HEADER
} FT_Matrix; } FT_Matrix;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* FT_Data */ * FT_Data
/* */ *
/* <Description> */ * @Description:
/* Read-only binary data represented as a pointer and a length. */ * Read-only binary data represented as a pointer and a length.
/* */ *
/* <Fields> */ * @Fields:
/* pointer :: The data. */ * pointer ::
/* */ * The data.
/* length :: The length of the data in bytes. */ *
/* */ * length ::
* The length of the data in bytes.
*/
typedef struct FT_Data_ typedef struct FT_Data_
{ {
const FT_Byte* pointer; const FT_Byte* pointer;
@ -411,51 +419,53 @@ FT_BEGIN_HEADER
} FT_Data; } FT_Data;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <FuncType> */ * @FuncType:
/* FT_Generic_Finalizer */ * FT_Generic_Finalizer
/* */ *
/* <Description> */ * @Description:
/* Describe a function used to destroy the `client' data of any */ * Describe a function used to destroy the `client' data of any
/* FreeType object. See the description of the @FT_Generic type for */ * FreeType object. See the description of the @FT_Generic type for
/* details of usage. */ * details of usage.
/* */ *
/* <Input> */ * @Input:
/* The address of the FreeType object that is under finalization. */ * The address of the FreeType object that is under finalization.
/* Its client data is accessed through its `generic' field. */ * Its client data is accessed through its `generic' field.
/* */ */
typedef void (*FT_Generic_Finalizer)( void* object ); typedef void (*FT_Generic_Finalizer)( void* object );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* FT_Generic */ * FT_Generic
/* */ *
/* <Description> */ * @Description:
/* Client applications often need to associate their own data to a */ * Client applications often need to associate their own data to a
/* variety of FreeType core objects. For example, a text layout API */ * variety of FreeType core objects. For example, a text layout API
/* might want to associate a glyph cache to a given size object. */ * might want to associate a glyph cache to a given size object.
/* */ *
/* Some FreeType object contains a `generic' field, of type */ * Some FreeType object contains a `generic' field, of type
/* FT_Generic, which usage is left to client applications and font */ * FT_Generic, which usage is left to client applications and font
/* servers. */ * servers.
/* */ *
/* It can be used to store a pointer to client-specific data, as well */ * 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 */ * as the address of a `finalizer' function, which will be called by
/* FreeType when the object is destroyed (for example, the previous */ * FreeType when the object is destroyed (for example, the previous
/* client example would put the address of the glyph cache destructor */ * client example would put the address of the glyph cache destructor
/* in the `finalizer' field). */ * in the `finalizer' field).
/* */ *
/* <Fields> */ * @Fields:
/* data :: A typeless pointer to any client-specified data. This */ * data ::
/* field is completely ignored by the FreeType library. */ * 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 */ * finalizer ::
/* field is set to NULL, no code will be called. */ * 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_ typedef struct FT_Generic_
{ {
void* data; void* data;
@ -464,19 +474,19 @@ FT_BEGIN_HEADER
} FT_Generic; } FT_Generic;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Macro> */ * @Macro:
/* FT_MAKE_TAG */ * FT_MAKE_TAG
/* */ *
/* <Description> */ * @Description:
/* This macro converts four-letter tags that are used to label */ * This macro converts four-letter tags that are used to label
/* TrueType tables into an unsigned long, to be used within FreeType. */ * TrueType tables into an unsigned long, to be used within FreeType.
/* */ *
/* <Note> */ * @Note:
/* The produced values *must* be 32-bit integers. Don't redefine */ * The produced values *must* be 32-bit integers. Don't redefine
/* this macro. */ * this macro.
/* */ */
#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \ #define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \
(FT_Tag) \ (FT_Tag) \
( ( (FT_ULong)_x1 << 24 ) | \ ( ( (FT_ULong)_x1 << 24 ) | \
@ -494,53 +504,56 @@ FT_BEGIN_HEADER
/*************************************************************************/ /*************************************************************************/
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* list_processing */ * list_processing
/* */ *
/*************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_ListNode */ * FT_ListNode
/* */ *
/* <Description> */ * @Description:
/* Many elements and objects in FreeType are listed through an */ * Many elements and objects in FreeType are listed through an
/* @FT_List record (see @FT_ListRec). As its name suggests, an */ * @FT_List record (see @FT_ListRec). As its name suggests, an
/* FT_ListNode is a handle to a single list element. */ * FT_ListNode is a handle to a single list element.
/* */ */
typedef struct FT_ListNodeRec_* FT_ListNode; typedef struct FT_ListNodeRec_* FT_ListNode;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Type> */ * @Type:
/* FT_List */ * FT_List
/* */ *
/* <Description> */ * @Description:
/* A handle to a list record (see @FT_ListRec). */ * A handle to a list record (see @FT_ListRec).
/* */ */
typedef struct FT_ListRec_* FT_List; typedef struct FT_ListRec_* FT_List;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* FT_ListNodeRec */ * FT_ListNodeRec
/* */ *
/* <Description> */ * @Description:
/* A structure used to hold a single list element. */ * A structure used to hold a single list element.
/* */ *
/* <Fields> */ * @Fields:
/* prev :: The previous element in the list. NULL if first. */ * prev ::
/* */ * The previous element in the list. NULL if first.
/* next :: The next element in the list. NULL if last. */ *
/* */ * next ::
/* data :: A typeless pointer to the listed object. */ * The next element in the list. NULL if last.
/* */ *
* data ::
* A typeless pointer to the listed object.
*/
typedef struct FT_ListNodeRec_ typedef struct FT_ListNodeRec_
{ {
FT_ListNode prev; FT_ListNode prev;
@ -550,20 +563,22 @@ FT_BEGIN_HEADER
} FT_ListNodeRec; } FT_ListNodeRec;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* FT_ListRec */ * FT_ListRec
/* */ *
/* <Description> */ * @Description:
/* A structure used to hold a simple doubly-linked list. These are */ * A structure used to hold a simple doubly-linked list. These are
/* used in many parts of FreeType. */ * used in many parts of FreeType.
/* */ *
/* <Fields> */ * @Fields:
/* head :: The head (first element) of doubly-linked list. */ * head ::
/* */ * The head (first element) of doubly-linked list.
/* tail :: The tail (last element) of doubly-linked list. */ *
/* */ * tail ::
* The tail (last element) of doubly-linked list.
*/
typedef struct FT_ListRec_ typedef struct FT_ListRec_
{ {
FT_ListNode head; FT_ListNode head;

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftwinfnt.h */ * ftwinfnt.h
/* */ *
/* FreeType API for accessing Windows fnt-specific data. */ * FreeType API for accessing Windows fnt-specific data.
/* */ *
/* Copyright 2003-2018 by */ * Copyright 2003-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTWINFNT_H_ #ifndef FTWINFNT_H_
@ -32,22 +32,22 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* winfnt_fonts */ * winfnt_fonts
/* */ *
/* <Title> */ * @Title:
/* Window FNT Files */ * Window FNT Files
/* */ *
/* <Abstract> */ * @Abstract:
/* Windows FNT specific API. */ * Windows FNT specific API.
/* */ *
/* <Description> */ * @Description:
/* This section contains the declaration of Windows FNT specific */ * This section contains the declaration of Windows FNT specific
/* functions. */ * functions.
/* */ *
/*************************************************************************/ */
/************************************************************************* /*************************************************************************
@ -80,26 +80,26 @@ FT_BEGIN_HEADER
* FT_WinFNT_ID_OEM :: * FT_WinFNT_ID_OEM ::
* From Michael Poettgen <michael@poettgen.de>: * From Michael Poettgen <michael@poettgen.de>:
* *
* The `Windows Font Mapping' article says that FT_WinFNT_ID_OEM * The `Windows Font Mapping' article says that FT_WinFNT_ID_OEM
* is used for the charset of vector fonts, like `modern.fon', * is used for the charset of vector fonts, like `modern.fon',
* `roman.fon', and `script.fon' on Windows. * `roman.fon', and `script.fon' on Windows.
* *
* The `CreateFont' documentation says: The FT_WinFNT_ID_OEM value * The `CreateFont' documentation says: The FT_WinFNT_ID_OEM value
* specifies a character set that is operating-system dependent. * specifies a character set that is operating-system dependent.
* *
* The `IFIMETRICS' documentation from the `Windows Driver * The `IFIMETRICS' documentation from the `Windows Driver
* Development Kit' says: This font supports an OEM-specific * Development Kit' says: This font supports an OEM-specific
* character set. The OEM character set is system dependent. * character set. The OEM character set is system dependent.
* *
* In general OEM, as opposed to ANSI (i.e., cp1252), denotes the * In general OEM, as opposed to ANSI (i.e., cp1252), denotes the
* second default codepage that most international versions of * second default codepage that most international versions of
* Windows have. It is one of the OEM codepages from * Windows have. It is one of the OEM codepages from
* *
* https://msdn.microsoft.com/en-us/goglobal/bb964655, * https://msdn.microsoft.com/en-us/goglobal/bb964655,
* *
* and is used for the `DOS boxes', to support legacy applications. * and is used for the `DOS boxes', to support legacy applications.
* A German Windows version for example usually uses ANSI codepage * A German Windows version for example usually uses ANSI codepage
* 1252 and OEM codepage 850. * 1252 and OEM codepage 850.
* *
* FT_WinFNT_ID_CP874 :: * FT_WinFNT_ID_CP874 ::
* A superset of Thai TIS 620 and ISO 8859-11. * A superset of Thai TIS 620 and ISO 8859-11.
@ -173,14 +173,14 @@ FT_BEGIN_HEADER
#define FT_WinFNT_ID_OEM 255 #define FT_WinFNT_ID_OEM 255
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* FT_WinFNT_HeaderRec */ * FT_WinFNT_HeaderRec
/* */ *
/* <Description> */ * @Description:
/* Windows FNT Header info. */ * Windows FNT Header info.
/* */ */
typedef struct FT_WinFNT_HeaderRec_ typedef struct FT_WinFNT_HeaderRec_
{ {
FT_UShort version; FT_UShort version;
@ -223,14 +223,14 @@ FT_BEGIN_HEADER
} FT_WinFNT_HeaderRec; } FT_WinFNT_HeaderRec;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* FT_WinFNT_Header */ * FT_WinFNT_Header
/* */ *
/* <Description> */ * @Description:
/* A handle to an @FT_WinFNT_HeaderRec structure. */ * A handle to an @FT_WinFNT_HeaderRec structure.
/* */ */
typedef struct FT_WinFNT_HeaderRec_* FT_WinFNT_Header; typedef struct FT_WinFNT_HeaderRec_* FT_WinFNT_Header;
@ -243,10 +243,12 @@ FT_BEGIN_HEADER
* Retrieve a Windows FNT font info header. * Retrieve a Windows FNT font info header.
* *
* @input: * @input:
* face :: A handle to the input face. * face ::
* A handle to the input face.
* *
* @output: * @output:
* aheader :: The WinFNT header. * aheader ::
* The WinFNT header.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.

View File

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

View File

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

View File

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

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftcalc.h */ * ftcalc.h
/* */ *
/* Arithmetic computations (specification). */ * Arithmetic computations (specification).
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTCALC_H_ #ifndef FTCALC_H_
@ -27,11 +27,11 @@
FT_BEGIN_HEADER 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 #ifndef FT_CONFIG_OPTION_NO_ASSEMBLER
/* Provide assembler fragments for performance-critical functions. */ /* Provide assembler fragments for performance-critical functions. */
@ -246,29 +246,32 @@ FT_BEGIN_HEADER
#endif #endif
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_MulDiv_No_Round */ * FT_MulDiv_No_Round
/* */ *
/* <Description> */ * @Description:
/* A very simple function used to perform the computation `(a*b)/c' */ * A very simple function used to perform the computation `(a*b)/c'
/* (without rounding) with maximum accuracy (it uses a 64-bit */ * (without rounding) with maximum accuracy (it uses a 64-bit
/* intermediate integer whenever necessary). */ * intermediate integer whenever necessary).
/* */ *
/* This function isn't necessarily as fast as some processor specific */ * This function isn't necessarily as fast as some processor specific
/* operations, but is at least completely portable. */ * operations, but is at least completely portable.
/* */ *
/* <Input> */ * @Input:
/* a :: The first multiplier. */ * a ::
/* b :: The second multiplier. */ * The first multiplier.
/* c :: The divisor. */ * b ::
/* */ * The second multiplier.
/* <Return> */ * c ::
/* The result of `(a*b)/c'. This function never traps when trying to */ * The divisor.
/* divide by zero; it simply returns `MaxInt' or `MinInt' depending */ *
/* on the signs of `a' and `b'. */ * @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_BASE( FT_Long )
FT_MulDiv_No_Round( FT_Long a, FT_MulDiv_No_Round( FT_Long a,
FT_Long b, FT_Long b,
@ -276,12 +279,12 @@ FT_BEGIN_HEADER
/* /*
* A variant of FT_Matrix_Multiply which scales its result afterwards. * A variant of FT_Matrix_Multiply which scales its result afterwards.
* The idea is that both `a' and `b' are scaled by factors of 10 so that * The idea is that both `a' and `b' are scaled by factors of 10 so that
* the values are as precise as possible to get a correct result during * the values are as precise as possible to get a correct result during
* the 64bit multiplication. Let `sa' and `sb' be the scaling factors of * the 64bit multiplication. Let `sa' and `sb' be the scaling factors of
* `a' and `b', respectively, then the scaling factor of the result is * `a' and `b', respectively, then the scaling factor of the result is
* `sa*sb'. * `sa*sb'.
*/ */
FT_BASE( void ) FT_BASE( void )
FT_Matrix_Multiply_Scaled( const FT_Matrix* a, FT_Matrix_Multiply_Scaled( const FT_Matrix* a,
@ -290,8 +293,8 @@ FT_BEGIN_HEADER
/* /*
* A variant of FT_Vector_Transform. See comments for * A variant of FT_Vector_Transform. See comments for
* FT_Matrix_Multiply_Scaled. * FT_Matrix_Multiply_Scaled.
*/ */
FT_BASE( void ) FT_BASE( void )
FT_Vector_Transform_Scaled( FT_Vector* vector, FT_Vector_Transform_Scaled( FT_Vector* vector,
@ -300,22 +303,22 @@ FT_BEGIN_HEADER
/* /*
* This function normalizes a vector and returns its original length. * This function normalizes a vector and returns its original length.
* The normalized vector is a 16.16 fixed-point unit vector with length * The normalized vector is a 16.16 fixed-point unit vector with length
* close to 0x10000. The accuracy of the returned length is limited to * close to 0x10000. The accuracy of the returned length is limited to
* 16 bits also. The function utilizes quick inverse square root * 16 bits also. The function utilizes quick inverse square root
* approximation without divisions and square roots relying on Newton's * approximation without divisions and square roots relying on Newton's
* iterations instead. * iterations instead.
*/ */
FT_BASE( FT_UInt32 ) FT_BASE( FT_UInt32 )
FT_Vector_NormLen( FT_Vector* vector ); FT_Vector_NormLen( FT_Vector* vector );
/* /*
* Return -1, 0, or +1, depending on the orientation of a given corner. * Return -1, 0, or +1, depending on the orientation of a given corner.
* We use the Cartesian coordinate system, with positive vertical values * We use the Cartesian coordinate system, with positive vertical values
* going upwards. The function returns +1 if the corner turns to the * going upwards. The function returns +1 if the corner turns to the
* left, -1 to the right, and 0 for undecidable cases. * left, -1 to the right, and 0 for undecidable cases.
*/ */
FT_BASE( FT_Int ) FT_BASE( FT_Int )
ft_corner_orientation( FT_Pos in_x, ft_corner_orientation( FT_Pos in_x,
@ -325,9 +328,9 @@ FT_BEGIN_HEADER
/* /*
* Return TRUE if a corner is flat or nearly flat. This is equivalent to * Return TRUE if a corner is flat or nearly flat. This is equivalent to
* saying that the corner point is close to its neighbors, or inside an * saying that the corner point is close to its neighbors, or inside an
* ellipse defined by the neighbor focal points to be more precise. * ellipse defined by the neighbor focal points to be more precise.
*/ */
FT_BASE( FT_Int ) FT_BASE( FT_Int )
ft_corner_is_flat( FT_Pos in_x, ft_corner_is_flat( FT_Pos in_x,
@ -337,7 +340,7 @@ FT_BEGIN_HEADER
/* /*
* Return the most significant bit index. * Return the most significant bit index.
*/ */
#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER #ifndef FT_CONFIG_OPTION_NO_ASSEMBLER
@ -392,8 +395,8 @@ FT_BEGIN_HEADER
/* /*
* Return sqrt(x*x+y*y), which is the same as `FT_Vector_Length' but uses * Return sqrt(x*x+y*y), which is the same as `FT_Vector_Length' but uses
* two fixed-point arguments instead. * two fixed-point arguments instead.
*/ */
FT_BASE( FT_Fixed ) FT_BASE( FT_Fixed )
FT_Hypot( FT_Fixed x, FT_Hypot( FT_Fixed x,
@ -402,23 +405,24 @@ FT_BEGIN_HEADER
#if 0 #if 0
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Function> */ * @Function:
/* FT_SqrtFixed */ * FT_SqrtFixed
/* */ *
/* <Description> */ * @Description:
/* Computes the square root of a 16.16 fixed-point value. */ * Computes the square root of a 16.16 fixed-point value.
/* */ *
/* <Input> */ * @Input:
/* x :: The value to compute the root for. */ * x ::
/* */ * The value to compute the root for.
/* <Return> */ *
/* The result of `sqrt(x)'. */ * @Return:
/* */ * The result of `sqrt(x)'.
/* <Note> */ *
/* This function is not very fast. */ * @Note:
/* */ * This function is not very fast.
*/
FT_BASE( FT_Int32 ) FT_BASE( FT_Int32 )
FT_SqrtFixed( FT_Int32 x ); FT_SqrtFixed( FT_Int32 x );
@ -435,13 +439,13 @@ FT_BEGIN_HEADER
: ( -( ( 32 - (x) ) & -64 ) ) ) : ( -( ( 32 - (x) ) & -64 ) ) )
/* /*
* The following macros have two purposes. * 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! * Use with care!
*/ */
#define ADD_LONG( a, b ) \ #define ADD_LONG( a, b ) \
(FT_Long)( (FT_ULong)(a) + (FT_ULong)(b) ) (FT_Long)( (FT_ULong)(a) + (FT_ULong)(b) )

View File

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

View File

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

View File

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

View File

@ -1,10 +1,10 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* fthash.h */ * fthash.h
/* */ *
/* Hashing functions (specification). */ * Hashing functions (specification).
/* */ *
/***************************************************************************/ */
/* /*
* Copyright 2000 Computing Research Labs, New Mexico State University * Copyright 2000 Computing Research Labs, New Mexico State University
@ -30,13 +30,13 @@
* THE USE OR OTHER DEALINGS IN THE SOFTWARE. * 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 */ * 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 */ * taken from Mark Leisher's xmbdfed package
/* */ *
/*************************************************************************/ */
#ifndef FTHASH_H_ #ifndef FTHASH_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftmemory.h */ * ftmemory.h
/* */ *
/* The FreeType memory management macros (specification). */ * The FreeType memory management macros (specification).
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg */ * David Turner, Robert Wilhelm, and Werner Lemberg
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef FTMEMORY_H_ #ifndef FTMEMORY_H_
@ -28,16 +28,16 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Macro> */ * @Macro:
/* FT_SET_ERROR */ * FT_SET_ERROR
/* */ *
/* <Description> */ * @Description:
/* This macro is used to set an implicit `error' variable to a given */ * 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 */ * expression's value (usually a function call), and convert it to a
/* boolean which is set whenever the value is != 0. */ * boolean which is set whenever the value is != 0.
/* */ */
#undef FT_SET_ERROR #undef FT_SET_ERROR
#define FT_SET_ERROR( expression ) \ #define FT_SET_ERROR( expression ) \
( ( error = (expression) ) != 0 ) ( ( error = (expression) ) != 0 )
@ -58,9 +58,9 @@ FT_BEGIN_HEADER
/* /*
* C++ refuses to handle statements like p = (void*)anything, with `p' a * C++ refuses to handle statements like p = (void*)anything, with `p' a
* typed pointer. Since we don't have a `typeof' operator in standard * typed pointer. Since we don't have a `typeof' operator in standard
* C++, we have to use a template to emulate it. * C++, we have to use a template to emulate it.
*/ */
#ifdef __cplusplus #ifdef __cplusplus
@ -107,8 +107,8 @@ extern "C++"
/* /*
* The allocation functions return a pointer, and the error code * The allocation functions return a pointer, and the error code
* is written to through the `p_error' parameter. * is written to through the `p_error' parameter.
*/ */
/* The `q' variants of the functions below (`q' for `quick') don't fill */ /* The `q' variants of the functions below (`q' for `quick') don't fill */
@ -253,20 +253,20 @@ extern "C++"
/* /*
* Return the maximum number of addressable elements in an array. * Return the maximum number of addressable elements in an array.
* We limit ourselves to INT_MAX, rather than UINT_MAX, to avoid * We limit ourselves to INT_MAX, rather than UINT_MAX, to avoid
* any problems. * any problems.
*/ */
#define FT_ARRAY_MAX( ptr ) ( FT_INT_MAX / sizeof ( *(ptr) ) ) #define FT_ARRAY_MAX( ptr ) ( FT_INT_MAX / sizeof ( *(ptr) ) )
#define FT_ARRAY_CHECK( ptr, count ) ( (count) <= FT_ARRAY_MAX( ptr ) ) #define FT_ARRAY_CHECK( ptr, count ) ( (count) <= FT_ARRAY_MAX( ptr ) )
/*************************************************************************/ /**************************************************************************
/* */ *
/* The following functions macros expect that their pointer argument is */ * The following functions macros expect that their pointer argument is
/* _typed_ in order to automatically compute array element sizes. */ * _typed_ in order to automatically compute array element sizes.
/* */ */
#define FT_MEM_NEW_ARRAY( ptr, count ) \ #define FT_MEM_NEW_ARRAY( ptr, count ) \
FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \

View File

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

View File

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

View File

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

View File

@ -1,31 +1,31 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ftserv.h */ * ftserv.h
/* */ *
/* The FreeType services (specification only). */ * The FreeType services (specification only).
/* */ *
/* Copyright 2003-2018 by */ * Copyright 2003-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* Each module can export one or more `services'. Each service is */ * Each module can export one or more `services'. Each service is
/* identified by a constant string and modeled by a pointer; the latter */ * identified by a constant string and modeled by a pointer; the latter
/* generally corresponds to a structure containing function pointers. */ * generally corresponds to a structure containing function pointers.
/* */ *
/* Note that a service's data cannot be a mere function pointer because */ * Note that a service's data cannot be a mere function pointer because
/* in C it is possible that function pointers might be implemented */ * in C it is possible that function pointers might be implemented
/* differently than data pointers (e.g. 48 bits instead of 32). */ * differently than data pointers (e.g. 48 bits instead of 32).
/* */ *
/*************************************************************************/ */
#ifndef FTSERV_H_ #ifndef FTSERV_H_
@ -34,7 +34,8 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/* /**************************************************************************
*
* @macro: * @macro:
* FT_FACE_FIND_SERVICE * FT_FACE_FIND_SERVICE
* *
@ -85,7 +86,8 @@ FT_BEGIN_HEADER
#endif /* !C++ */ #endif /* !C++ */
/* /**************************************************************************
*
* @macro: * @macro:
* FT_FACE_FIND_GLOBAL_SERVICE * FT_FACE_FIND_GLOBAL_SERVICE
* *
@ -144,8 +146,8 @@ FT_BEGIN_HEADER
/*************************************************************************/ /*************************************************************************/
/* /*
* The following structure is used to _describe_ a given service * The following structure is used to _describe_ a given service
* to the library. This is useful to build simple static service lists. * to the library. This is useful to build simple static service lists.
*/ */
typedef struct FT_ServiceDescRec_ typedef struct FT_ServiceDescRec_
{ {
@ -157,26 +159,26 @@ FT_BEGIN_HEADER
typedef const FT_ServiceDescRec* FT_ServiceDesc; typedef const FT_ServiceDescRec* FT_ServiceDesc;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Macro> */ * @Macro:
/* FT_DEFINE_SERVICEDESCREC1 */ * FT_DEFINE_SERVICEDESCREC1
/* FT_DEFINE_SERVICEDESCREC2 */ * FT_DEFINE_SERVICEDESCREC2
/* FT_DEFINE_SERVICEDESCREC3 */ * FT_DEFINE_SERVICEDESCREC3
/* FT_DEFINE_SERVICEDESCREC4 */ * FT_DEFINE_SERVICEDESCREC4
/* FT_DEFINE_SERVICEDESCREC5 */ * FT_DEFINE_SERVICEDESCREC5
/* FT_DEFINE_SERVICEDESCREC6 */ * FT_DEFINE_SERVICEDESCREC6
/* FT_DEFINE_SERVICEDESCREC7 */ * FT_DEFINE_SERVICEDESCREC7
/* FT_DEFINE_SERVICEDESCREC8 */ * FT_DEFINE_SERVICEDESCREC8
/* FT_DEFINE_SERVICEDESCREC9 */ * FT_DEFINE_SERVICEDESCREC9
/* FT_DEFINE_SERVICEDESCREC10 */ * FT_DEFINE_SERVICEDESCREC10
/* */ *
/* <Description> */ * @Description:
/* Used to initialize an array of FT_ServiceDescRec structures. */ * Used to initialize an array of FT_ServiceDescRec structures.
/* */ *
/* The array will be allocated in the global scope (or the scope */ * The array will be allocated in the global scope (or the scope
/* where the macro is used). */ * where the macro is used).
/* */ */
#define FT_DEFINE_SERVICEDESCREC1( class_, \ #define FT_DEFINE_SERVICEDESCREC1( class_, \
serv_id_1, serv_data_1 ) \ serv_id_1, serv_data_1 ) \
static const FT_ServiceDescRec class_[] = \ static const FT_ServiceDescRec class_[] = \
@ -349,13 +351,13 @@ FT_BEGIN_HEADER
/* /*
* Parse a list of FT_ServiceDescRec descriptors and look for * Parse a list of FT_ServiceDescRec descriptors and look for
* a specific service by ID. Note that the last element in the * a specific service by ID. Note that the last element in the
* array must be { NULL, NULL }, and that the function should * array must be { NULL, NULL }, and that the function should
* return NULL if the service isn't available. * return NULL if the service isn't available.
* *
* This function can be used by modules to implement their * This function can be used by modules to implement their
* `get_service' method. * `get_service' method.
*/ */
FT_BASE( FT_Pointer ) FT_BASE( FT_Pointer )
ft_service_list_lookup( FT_ServiceDesc service_descriptors, ft_service_list_lookup( FT_ServiceDesc service_descriptors,
@ -371,16 +373,16 @@ FT_BEGIN_HEADER
/*************************************************************************/ /*************************************************************************/
/* /*
* This structure is used to store a cache for several frequently used * This structure is used to store a cache for several frequently used
* services. It is the type of `face->internal->services'. You * services. It is the type of `face->internal->services'. You
* should only use FT_FACE_LOOKUP_SERVICE to access it. * should only use FT_FACE_LOOKUP_SERVICE to access it.
* *
* All fields should have the type FT_Pointer to relax compilation * All fields should have the type FT_Pointer to relax compilation
* dependencies. We assume the developer isn't completely stupid. * dependencies. We assume the developer isn't completely stupid.
* *
* Each field must be named `service_XXXX' where `XXX' corresponds to * Each field must be named `service_XXXX' where `XXX' corresponds to
* the correct FT_SERVICE_ID_XXXX macro. See the definition of * the correct FT_SERVICE_ID_XXXX macro. See the definition of
* FT_FACE_LOOKUP_SERVICE below how this is implemented. * FT_FACE_LOOKUP_SERVICE below how this is implemented.
* *
*/ */
typedef struct FT_ServiceCacheRec_ typedef struct FT_ServiceCacheRec_
@ -396,14 +398,15 @@ FT_BEGIN_HEADER
/* /*
* A magic number used within the services cache. * A magic number used within the services cache.
*/ */
/* ensure that value `1' has the same width as a pointer */ /* ensure that value `1' has the same width as a pointer */
#define FT_SERVICE_UNAVAILABLE ((FT_Pointer)~(FT_PtrDist)1) #define FT_SERVICE_UNAVAILABLE ((FT_Pointer)~(FT_PtrDist)1)
/* /**************************************************************************
*
* @macro: * @macro:
* FT_FACE_LOOKUP_SERVICE * FT_FACE_LOOKUP_SERVICE
* *
@ -471,7 +474,7 @@ FT_BEGIN_HEADER
#endif /* !C++ */ #endif /* !C++ */
/* /*
* A macro used to define new service structure types. * A macro used to define new service structure types.
*/ */
#define FT_DEFINE_SERVICE( name ) \ #define FT_DEFINE_SERVICE( name ) \
@ -484,7 +487,7 @@ FT_BEGIN_HEADER
/* */ /* */
/* /*
* The header files containing the services. * The header files containing the services.
*/ */
#define FT_SERVICE_BDF_H <freetype/internal/services/svbdf.h> #define FT_SERVICE_BDF_H <freetype/internal/services/svbdf.h>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* svcid.h */ * svcid.h
/* */ *
/* The FreeType CID font services (specification). */ * The FreeType CID font services (specification).
/* */ *
/* Copyright 2007-2018 by */ * Copyright 2007-2018 by
/* Derek Clegg and Michael Toftdal. */ * Derek Clegg and Michael Toftdal.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef SVCID_H_ #ifndef SVCID_H_

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* svfntfmt.h */ * svfntfmt.h
/* */ *
/* The FreeType font format service (specification only). */ * The FreeType font format service (specification only).
/* */ *
/* Copyright 2003-2018 by */ * Copyright 2003-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef SVFNTFMT_H_ #ifndef SVFNTFMT_H_
@ -26,9 +26,9 @@ FT_BEGIN_HEADER
/* /*
* A trivial service used to return the name of a face's font driver, * A trivial service used to return the name of a face's font driver,
* according to the XFree86 nomenclature. Note that the service data * according to the XFree86 nomenclature. Note that the service data
* is a simple constant string pointer. * is a simple constant string pointer.
*/ */
#define FT_SERVICE_ID_FONT_FORMAT "font-format" #define FT_SERVICE_ID_FONT_FORMAT "font-format"

View File

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

View File

@ -1,28 +1,28 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* svgxval.h */ * svgxval.h
/* */ *
/* FreeType API for validating TrueTypeGX/AAT tables (specification). */ * FreeType API for validating TrueTypeGX/AAT tables (specification).
/* */ *
/* Copyright 2004-2018 by */ * Copyright 2004-2018 by
/* Masatake YAMATO, Red Hat K.K., */ * Masatake YAMATO, Red Hat K.K.,
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/***************************************************************************/ /****************************************************************************
/* */ *
/* gxvalid is derived from both gxlayout module and otvalid module. */ * gxvalid is derived from both gxlayout module and otvalid module.
/* Development of gxlayout is supported by the Information-technology */ * Development of gxlayout is supported by the Information-technology
/* Promotion Agency(IPA), Japan. */ * Promotion Agency(IPA), Japan.
/* */ *
/***************************************************************************/ */
#ifndef SVGXVAL_H_ #ifndef SVGXVAL_H_

View File

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

View File

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

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* svmm.h */ * svmm.h
/* */ *
/* The FreeType Multiple Masters and GX var services (specification). */ * The FreeType Multiple Masters and GX var services (specification).
/* */ *
/* Copyright 2003-2018 by */ * Copyright 2003-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef SVMM_H_ #ifndef SVMM_H_
@ -26,9 +26,9 @@ FT_BEGIN_HEADER
/* /*
* A service used to manage multiple-masters data in a given face. * A service used to manage multiple-masters data in a given face.
* *
* See the related APIs in `ftmm.h' (FT_MULTIPLE_MASTERS_H). * See the related APIs in `ftmm.h' (FT_MULTIPLE_MASTERS_H).
* *
*/ */

View File

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

View File

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

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* svpostnm.h */ * svpostnm.h
/* */ *
/* The FreeType PostScript name services (specification). */ * The FreeType PostScript name services (specification).
/* */ *
/* Copyright 2003-2018 by */ * Copyright 2003-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef SVPOSTNM_H_ #ifndef SVPOSTNM_H_
@ -25,13 +25,13 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/* /*
* A trivial service used to retrieve the PostScript name of a given * A trivial service used to retrieve the PostScript name of a given
* font when available. The `get_name' field should never be NULL. * font when available. The `get_name' field should never be NULL.
* *
* The corresponding function can return NULL to indicate that the * The corresponding function can return NULL to indicate that the
* PostScript name is not available. * PostScript name is not available.
* *
* The name is owned by the face and will be destroyed with it. * The name is owned by the face and will be destroyed with it.
*/ */
#define FT_SERVICE_ID_POSTSCRIPT_FONT_NAME "postscript-font-name" #define FT_SERVICE_ID_POSTSCRIPT_FONT_NAME "postscript-font-name"

View File

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

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* svpscmap.h */ * svpscmap.h
/* */ *
/* The FreeType PostScript charmap service (specification). */ * The FreeType PostScript charmap service (specification).
/* */ *
/* Copyright 2003-2018 by */ * Copyright 2003-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef SVPSCMAP_H_ #ifndef SVPSCMAP_H_
@ -29,27 +29,27 @@ FT_BEGIN_HEADER
/* /*
* Adobe glyph name to unicode value. * Adobe glyph name to unicode value.
*/ */
typedef FT_UInt32 typedef FT_UInt32
(*PS_Unicode_ValueFunc)( const char* glyph_name ); (*PS_Unicode_ValueFunc)( const char* glyph_name );
/* /*
* Macintosh name id to glyph name. NULL if invalid index. * Macintosh name id to glyph name. NULL if invalid index.
*/ */
typedef const char* typedef const char*
(*PS_Macintosh_NameFunc)( FT_UInt name_index ); (*PS_Macintosh_NameFunc)( FT_UInt name_index );
/* /*
* Adobe standard string ID to glyph name. NULL if invalid index. * Adobe standard string ID to glyph name. NULL if invalid index.
*/ */
typedef const char* typedef const char*
(*PS_Adobe_Std_StringsFunc)( FT_UInt string_index ); (*PS_Adobe_Std_StringsFunc)( FT_UInt string_index );
/* /*
* Simple unicode -> glyph index charmap built from font glyph names * Simple unicode -> glyph index charmap built from font glyph names
* table. * table.
*/ */
typedef struct PS_UniMap_ typedef struct PS_UniMap_
{ {
@ -71,16 +71,16 @@ FT_BEGIN_HEADER
/* /*
* A function which returns a glyph name for a given index. Returns * A function which returns a glyph name for a given index. Returns
* NULL if invalid index. * NULL if invalid index.
*/ */
typedef const char* typedef const char*
(*PS_GetGlyphNameFunc)( FT_Pointer data, (*PS_GetGlyphNameFunc)( FT_Pointer data,
FT_UInt string_index ); FT_UInt string_index );
/* /*
* A function used to release the glyph name returned by * A function used to release the glyph name returned by
* PS_GetGlyphNameFunc, when needed * PS_GetGlyphNameFunc, when needed
*/ */
typedef void typedef void
(*PS_FreeGlyphNameFunc)( FT_Pointer data, (*PS_FreeGlyphNameFunc)( FT_Pointer data,

View File

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

View File

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

View File

@ -1,20 +1,20 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* svttcmap.h */ * svttcmap.h
/* */ *
/* The FreeType TrueType/sfnt cmap extra information service. */ * The FreeType TrueType/sfnt cmap extra information service.
/* */ *
/* Copyright 2003-2018 by */ * Copyright 2003-2018 by
/* Masatake YAMATO, Redhat K.K., */ * Masatake YAMATO, Redhat K.K.,
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/* Development of this service is support of /* Development of this service is support of
Information-technology Promotion Agency, Japan. */ Information-technology Promotion Agency, Japan. */
@ -32,29 +32,29 @@ FT_BEGIN_HEADER
#define FT_SERVICE_ID_TT_CMAP "tt-cmaps" #define FT_SERVICE_ID_TT_CMAP "tt-cmaps"
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* TT_CMapInfo */ * TT_CMapInfo
/* */ *
/* <Description> */ * @Description:
/* A structure used to store TrueType/sfnt specific cmap information */ * A structure used to store TrueType/sfnt specific cmap information
/* which is not covered by the generic @FT_CharMap structure. This */ * which is not covered by the generic @FT_CharMap structure. This
/* structure can be accessed with the @FT_Get_TT_CMap_Info function. */ * structure can be accessed with the @FT_Get_TT_CMap_Info function.
/* */ *
/* <Fields> */ * @Fields:
/* language :: */ * language ::
/* The language ID used in Mac fonts. Definitions of values are in */ * The language ID used in Mac fonts. Definitions of values are in
/* `ttnameid.h'. */ * `ttnameid.h'.
/* */ *
/* format :: */ * format ::
/* The cmap format. OpenType 1.6 defines the formats 0 (byte */ * The cmap format. OpenType 1.6 defines the formats 0 (byte
/* encoding table), 2~(high-byte mapping through table), 4~(segment */ * encoding table), 2~(high-byte mapping through table), 4~(segment
/* mapping to delta values), 6~(trimmed table mapping), 8~(mixed */ * mapping to delta values), 6~(trimmed table mapping), 8~(mixed
/* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented */ * 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented
/* coverage), 13~(last resort font), and 14 (Unicode Variation */ * coverage), 13~(last resort font), and 14 (Unicode Variation
/* Sequences). */ * Sequences).
/* */ */
typedef struct TT_CMapInfo_ typedef struct TT_CMapInfo_
{ {
FT_ULong language; FT_ULong language;

View File

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

View File

@ -1,19 +1,19 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* svttglyf.h */ * svttglyf.h
/* */ *
/* The FreeType TrueType glyph service. */ * The FreeType TrueType glyph service.
/* */ *
/* Copyright 2007-2018 by */ * Copyright 2007-2018 by
/* David Turner. */ * David Turner.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef SVTTGLYF_H_ #ifndef SVTTGLYF_H_
#define SVTTGLYF_H_ #define SVTTGLYF_H_

View File

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

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -1,20 +1,20 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* t1tables.h */ * t1tables.h
/* */ *
/* Basic Type 1/Type 2 tables definitions and interface (specification */ * Basic Type 1/Type 2 tables definitions and interface (specification
/* only). */ * only).
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
#ifndef T1TABLES_H_ #ifndef T1TABLES_H_
@ -34,58 +34,58 @@
FT_BEGIN_HEADER FT_BEGIN_HEADER
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Section> */ * @Section:
/* type1_tables */ * type1_tables
/* */ *
/* <Title> */ * @Title:
/* Type 1 Tables */ * Type 1 Tables
/* */ *
/* <Abstract> */ * @Abstract:
/* Type~1 (PostScript) specific font tables. */ * Type~1 (PostScript) specific font tables.
/* */ *
/* <Description> */ * @Description:
/* This section contains the definition of Type 1-specific tables, */ * This section contains the definition of Type 1-specific tables,
/* including structures related to other PostScript font formats. */ * including structures related to other PostScript font formats.
/* */ *
/* <Order> */ * @Order:
/* PS_FontInfoRec */ * PS_FontInfoRec
/* PS_FontInfo */ * PS_FontInfo
/* PS_PrivateRec */ * PS_PrivateRec
/* PS_Private */ * PS_Private
/* */ *
/* CID_FaceDictRec */ * CID_FaceDictRec
/* CID_FaceDict */ * CID_FaceDict
/* CID_FaceInfoRec */ * CID_FaceInfoRec
/* CID_FaceInfo */ * CID_FaceInfo
/* */ *
/* FT_Has_PS_Glyph_Names */ * FT_Has_PS_Glyph_Names
/* FT_Get_PS_Font_Info */ * FT_Get_PS_Font_Info
/* FT_Get_PS_Font_Private */ * FT_Get_PS_Font_Private
/* FT_Get_PS_Font_Value */ * FT_Get_PS_Font_Value
/* */ *
/* T1_Blend_Flags */ * T1_Blend_Flags
/* T1_EncodingType */ * T1_EncodingType
/* PS_Dict_Keys */ * PS_Dict_Keys
/* */ *
/*************************************************************************/ */
/* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */ /* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */
/* structures in order to support Multiple Master fonts. */ /* structures in order to support Multiple Master fonts. */
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* PS_FontInfoRec */ * PS_FontInfoRec
/* */ *
/* <Description> */ * @Description:
/* A structure used to model a Type~1 or Type~2 FontInfo dictionary. */ * A structure used to model a Type~1 or Type~2 FontInfo dictionary.
/* Note that for Multiple Master fonts, each instance has its own */ * Note that for Multiple Master fonts, each instance has its own
/* FontInfo dictionary. */ * FontInfo dictionary.
/* */ */
typedef struct PS_FontInfoRec_ typedef struct PS_FontInfoRec_
{ {
FT_String* version; FT_String* version;
@ -101,40 +101,40 @@ FT_BEGIN_HEADER
} PS_FontInfoRec; } PS_FontInfoRec;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* PS_FontInfo */ * PS_FontInfo
/* */ *
/* <Description> */ * @Description:
/* A handle to a @PS_FontInfoRec structure. */ * A handle to a @PS_FontInfoRec structure.
/* */ */
typedef struct PS_FontInfoRec_* PS_FontInfo; typedef struct PS_FontInfoRec_* PS_FontInfo;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* T1_FontInfo */ * T1_FontInfo
/* */ *
/* <Description> */ * @Description:
/* This type is equivalent to @PS_FontInfoRec. It is deprecated but */ * This type is equivalent to @PS_FontInfoRec. It is deprecated but
/* kept to maintain source compatibility between various versions of */ * kept to maintain source compatibility between various versions of
/* FreeType. */ * FreeType.
/* */ */
typedef PS_FontInfoRec T1_FontInfo; typedef PS_FontInfoRec T1_FontInfo;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* PS_PrivateRec */ * PS_PrivateRec
/* */ *
/* <Description> */ * @Description:
/* A structure used to model a Type~1 or Type~2 private dictionary. */ * A structure used to model a Type~1 or Type~2 private dictionary.
/* Note that for Multiple Master fonts, each instance has its own */ * Note that for Multiple Master fonts, each instance has its own
/* Private dictionary. */ * Private dictionary.
/* */ */
typedef struct PS_PrivateRec_ typedef struct PS_PrivateRec_
{ {
FT_Int unique_id; FT_Int unique_id;
@ -176,56 +176,56 @@ FT_BEGIN_HEADER
} PS_PrivateRec; } PS_PrivateRec;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* PS_Private */ * PS_Private
/* */ *
/* <Description> */ * @Description:
/* A handle to a @PS_PrivateRec structure. */ * A handle to a @PS_PrivateRec structure.
/* */ */
typedef struct PS_PrivateRec_* PS_Private; typedef struct PS_PrivateRec_* PS_Private;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* T1_Private */ * T1_Private
/* */ *
/* <Description> */ * @Description:
/* This type is equivalent to @PS_PrivateRec. It is deprecated but */ * This type is equivalent to @PS_PrivateRec. It is deprecated but
/* kept to maintain source compatibility between various versions of */ * kept to maintain source compatibility between various versions of
/* FreeType. */ * FreeType.
/* */ */
typedef PS_PrivateRec T1_Private; typedef PS_PrivateRec T1_Private;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Enum> */ * @Enum:
/* T1_Blend_Flags */ * T1_Blend_Flags
/* */ *
/* <Description> */ * @Description:
/* A set of flags used to indicate which fields are present in a */ * A set of flags used to indicate which fields are present in a
/* given blend dictionary (font info or private). Used to support */ * given blend dictionary (font info or private). Used to support
/* Multiple Masters fonts. */ * Multiple Masters fonts.
/* */ *
/* <Values> */ * @Values:
/* T1_BLEND_UNDERLINE_POSITION :: */ * T1_BLEND_UNDERLINE_POSITION ::
/* T1_BLEND_UNDERLINE_THICKNESS :: */ * T1_BLEND_UNDERLINE_THICKNESS ::
/* T1_BLEND_ITALIC_ANGLE :: */ * T1_BLEND_ITALIC_ANGLE ::
/* T1_BLEND_BLUE_VALUES :: */ * T1_BLEND_BLUE_VALUES ::
/* T1_BLEND_OTHER_BLUES :: */ * T1_BLEND_OTHER_BLUES ::
/* T1_BLEND_STANDARD_WIDTH :: */ * T1_BLEND_STANDARD_WIDTH ::
/* T1_BLEND_STANDARD_HEIGHT :: */ * T1_BLEND_STANDARD_HEIGHT ::
/* T1_BLEND_STEM_SNAP_WIDTHS :: */ * T1_BLEND_STEM_SNAP_WIDTHS ::
/* T1_BLEND_STEM_SNAP_HEIGHTS :: */ * T1_BLEND_STEM_SNAP_HEIGHTS ::
/* T1_BLEND_BLUE_SCALE :: */ * T1_BLEND_BLUE_SCALE ::
/* T1_BLEND_BLUE_SHIFT :: */ * T1_BLEND_BLUE_SHIFT ::
/* T1_BLEND_FAMILY_BLUES :: */ * T1_BLEND_FAMILY_BLUES ::
/* T1_BLEND_FAMILY_OTHER_BLUES :: */ * T1_BLEND_FAMILY_OTHER_BLUES ::
/* T1_BLEND_FORCE_BOLD :: */ * T1_BLEND_FORCE_BOLD ::
/* */ */
typedef enum T1_Blend_Flags_ typedef enum T1_Blend_Flags_
{ {
/* required fields in a FontInfo blend dictionary */ /* required fields in a FontInfo blend dictionary */
@ -330,14 +330,14 @@ FT_BEGIN_HEADER
typedef PS_BlendRec T1_Blend; typedef PS_BlendRec T1_Blend;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* CID_FaceDictRec */ * CID_FaceDictRec
/* */ *
/* <Description> */ * @Description:
/* A structure used to represent data in a CID top-level dictionary. */ * A structure used to represent data in a CID top-level dictionary.
/* */ */
typedef struct CID_FaceDictRec_ typedef struct CID_FaceDictRec_
{ {
PS_PrivateRec private_dict; PS_PrivateRec private_dict;
@ -359,38 +359,38 @@ FT_BEGIN_HEADER
} CID_FaceDictRec; } CID_FaceDictRec;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* CID_FaceDict */ * CID_FaceDict
/* */ *
/* <Description> */ * @Description:
/* A handle to a @CID_FaceDictRec structure. */ * A handle to a @CID_FaceDictRec structure.
/* */ */
typedef struct CID_FaceDictRec_* CID_FaceDict; typedef struct CID_FaceDictRec_* CID_FaceDict;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* CID_FontDict */ * CID_FontDict
/* */ *
/* <Description> */ * @Description:
/* This type is equivalent to @CID_FaceDictRec. It is deprecated but */ * This type is equivalent to @CID_FaceDictRec. It is deprecated but
/* kept to maintain source compatibility between various versions of */ * kept to maintain source compatibility between various versions of
/* FreeType. */ * FreeType.
/* */ */
typedef CID_FaceDictRec CID_FontDict; typedef CID_FaceDictRec CID_FontDict;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* CID_FaceInfoRec */ * CID_FaceInfoRec
/* */ *
/* <Description> */ * @Description:
/* A structure used to represent CID Face information. */ * A structure used to represent CID Face information.
/* */ */
typedef struct CID_FaceInfoRec_ typedef struct CID_FaceInfoRec_
{ {
FT_String* cid_font_name; FT_String* cid_font_name;
@ -421,27 +421,27 @@ FT_BEGIN_HEADER
} CID_FaceInfoRec; } CID_FaceInfoRec;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* CID_FaceInfo */ * CID_FaceInfo
/* */ *
/* <Description> */ * @Description:
/* A handle to a @CID_FaceInfoRec structure. */ * A handle to a @CID_FaceInfoRec structure.
/* */ */
typedef struct CID_FaceInfoRec_* CID_FaceInfo; typedef struct CID_FaceInfoRec_* CID_FaceInfo;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Struct> */ * @Struct:
/* CID_Info */ * CID_Info
/* */ *
/* <Description> */ * @Description:
/* This type is equivalent to @CID_FaceInfoRec. It is deprecated but */ * This type is equivalent to @CID_FaceInfoRec. It is deprecated but
/* kept to maintain source compatibility between various versions of */ * kept to maintain source compatibility between various versions of
/* FreeType. */ * FreeType.
/* */ */
typedef CID_FaceInfoRec CID_Info; typedef CID_FaceInfoRec CID_Info;
@ -461,7 +461,7 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* face handle * face handle
* *
* @return: * @return:
* Boolean. True if glyph names are reliable. * Boolean. True if glyph names are reliable.
@ -482,11 +482,11 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* PostScript face handle. * PostScript face handle.
* *
* @output: * @output:
* afont_info :: * afont_info ::
* Output font info structure pointer. * Output font info structure pointer.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
@ -516,11 +516,11 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* PostScript face handle. * PostScript face handle.
* *
* @output: * @output:
* afont_private :: * afont_private ::
* Output private dictionary structure pointer. * Output private dictionary structure pointer.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
@ -538,25 +538,25 @@ FT_BEGIN_HEADER
PS_Private afont_private ); PS_Private afont_private );
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Enum> */ * @Enum:
/* T1_EncodingType */ * T1_EncodingType
/* */ *
/* <Description> */ * @Description:
/* An enumeration describing the `Encoding' entry in a Type 1 */ * An enumeration describing the `Encoding' entry in a Type 1
/* dictionary. */ * dictionary.
/* */ *
/* <Values> */ * @Values:
/* T1_ENCODING_TYPE_NONE :: */ * T1_ENCODING_TYPE_NONE ::
/* T1_ENCODING_TYPE_ARRAY :: */ * T1_ENCODING_TYPE_ARRAY ::
/* T1_ENCODING_TYPE_STANDARD :: */ * T1_ENCODING_TYPE_STANDARD ::
/* T1_ENCODING_TYPE_ISOLATIN1 :: */ * T1_ENCODING_TYPE_ISOLATIN1 ::
/* T1_ENCODING_TYPE_EXPERT :: */ * T1_ENCODING_TYPE_EXPERT ::
/* */ *
/* <Since> */ * @Since:
/* 2.4.8 */ * 2.4.8
/* */ */
typedef enum T1_EncodingType_ typedef enum T1_EncodingType_
{ {
T1_ENCODING_TYPE_NONE = 0, T1_ENCODING_TYPE_NONE = 0,
@ -568,66 +568,66 @@ FT_BEGIN_HEADER
} T1_EncodingType; } T1_EncodingType;
/*************************************************************************/ /**************************************************************************
/* */ *
/* <Enum> */ * @Enum:
/* PS_Dict_Keys */ * PS_Dict_Keys
/* */ *
/* <Description> */ * @Description:
/* An enumeration used in calls to @FT_Get_PS_Font_Value to identify */ * An enumeration used in calls to @FT_Get_PS_Font_Value to identify
/* the Type~1 dictionary entry to retrieve. */ * the Type~1 dictionary entry to retrieve.
/* */ *
/* <Values> */ * @Values:
/* PS_DICT_FONT_TYPE :: */ * PS_DICT_FONT_TYPE ::
/* PS_DICT_FONT_MATRIX :: */ * PS_DICT_FONT_MATRIX ::
/* PS_DICT_FONT_BBOX :: */ * PS_DICT_FONT_BBOX ::
/* PS_DICT_PAINT_TYPE :: */ * PS_DICT_PAINT_TYPE ::
/* PS_DICT_FONT_NAME :: */ * PS_DICT_FONT_NAME ::
/* PS_DICT_UNIQUE_ID :: */ * PS_DICT_UNIQUE_ID ::
/* PS_DICT_NUM_CHAR_STRINGS :: */ * PS_DICT_NUM_CHAR_STRINGS ::
/* PS_DICT_CHAR_STRING_KEY :: */ * PS_DICT_CHAR_STRING_KEY ::
/* PS_DICT_CHAR_STRING :: */ * PS_DICT_CHAR_STRING ::
/* PS_DICT_ENCODING_TYPE :: */ * PS_DICT_ENCODING_TYPE ::
/* PS_DICT_ENCODING_ENTRY :: */ * PS_DICT_ENCODING_ENTRY ::
/* PS_DICT_NUM_SUBRS :: */ * PS_DICT_NUM_SUBRS ::
/* PS_DICT_SUBR :: */ * PS_DICT_SUBR ::
/* PS_DICT_STD_HW :: */ * PS_DICT_STD_HW ::
/* PS_DICT_STD_VW :: */ * PS_DICT_STD_VW ::
/* PS_DICT_NUM_BLUE_VALUES :: */ * PS_DICT_NUM_BLUE_VALUES ::
/* PS_DICT_BLUE_VALUE :: */ * PS_DICT_BLUE_VALUE ::
/* PS_DICT_BLUE_FUZZ :: */ * PS_DICT_BLUE_FUZZ ::
/* PS_DICT_NUM_OTHER_BLUES :: */ * PS_DICT_NUM_OTHER_BLUES ::
/* PS_DICT_OTHER_BLUE :: */ * PS_DICT_OTHER_BLUE ::
/* PS_DICT_NUM_FAMILY_BLUES :: */ * PS_DICT_NUM_FAMILY_BLUES ::
/* PS_DICT_FAMILY_BLUE :: */ * PS_DICT_FAMILY_BLUE ::
/* PS_DICT_NUM_FAMILY_OTHER_BLUES :: */ * PS_DICT_NUM_FAMILY_OTHER_BLUES ::
/* PS_DICT_FAMILY_OTHER_BLUE :: */ * PS_DICT_FAMILY_OTHER_BLUE ::
/* PS_DICT_BLUE_SCALE :: */ * PS_DICT_BLUE_SCALE ::
/* PS_DICT_BLUE_SHIFT :: */ * PS_DICT_BLUE_SHIFT ::
/* PS_DICT_NUM_STEM_SNAP_H :: */ * PS_DICT_NUM_STEM_SNAP_H ::
/* PS_DICT_STEM_SNAP_H :: */ * PS_DICT_STEM_SNAP_H ::
/* PS_DICT_NUM_STEM_SNAP_V :: */ * PS_DICT_NUM_STEM_SNAP_V ::
/* PS_DICT_STEM_SNAP_V :: */ * PS_DICT_STEM_SNAP_V ::
/* PS_DICT_FORCE_BOLD :: */ * PS_DICT_FORCE_BOLD ::
/* PS_DICT_RND_STEM_UP :: */ * PS_DICT_RND_STEM_UP ::
/* PS_DICT_MIN_FEATURE :: */ * PS_DICT_MIN_FEATURE ::
/* PS_DICT_LEN_IV :: */ * PS_DICT_LEN_IV ::
/* PS_DICT_PASSWORD :: */ * PS_DICT_PASSWORD ::
/* PS_DICT_LANGUAGE_GROUP :: */ * PS_DICT_LANGUAGE_GROUP ::
/* PS_DICT_VERSION :: */ * PS_DICT_VERSION ::
/* PS_DICT_NOTICE :: */ * PS_DICT_NOTICE ::
/* PS_DICT_FULL_NAME :: */ * PS_DICT_FULL_NAME ::
/* PS_DICT_FAMILY_NAME :: */ * PS_DICT_FAMILY_NAME ::
/* PS_DICT_WEIGHT :: */ * PS_DICT_WEIGHT ::
/* PS_DICT_IS_FIXED_PITCH :: */ * PS_DICT_IS_FIXED_PITCH ::
/* PS_DICT_UNDERLINE_POSITION :: */ * PS_DICT_UNDERLINE_POSITION ::
/* PS_DICT_UNDERLINE_THICKNESS :: */ * PS_DICT_UNDERLINE_THICKNESS ::
/* PS_DICT_FS_TYPE :: */ * PS_DICT_FS_TYPE ::
/* PS_DICT_ITALIC_ANGLE :: */ * PS_DICT_ITALIC_ANGLE ::
/* */ *
/* <Since> */ * @Since:
/* 2.4.8 */ * 2.4.8
/* */ */
typedef enum PS_Dict_Keys_ typedef enum PS_Dict_Keys_
{ {
/* conventionally in the font dictionary */ /* conventionally in the font dictionary */
@ -697,23 +697,23 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* PostScript face handle. * PostScript face handle.
* *
* key :: * key ::
* An enumeration value representing the dictionary key to retrieve. * An enumeration value representing the dictionary key to retrieve.
* *
* idx :: * idx ::
* For array values, this specifies the index to be returned. * For array values, this specifies the index to be returned.
* *
* value :: * value ::
* A pointer to memory into which to write the value. * A pointer to memory into which to write the value.
* *
* valen_len :: * valen_len ::
* The size, in bytes, of the memory supplied for the value. * The size, in bytes, of the memory supplied for the value.
* *
* @output: * @output:
* value :: * value ::
* The value matching the above key, if it exists. * The value matching the above key, if it exists.
* *
* @return: * @return:
* The amount of memory (in bytes) required to hold the requested * The amount of memory (in bytes) required to hold the requested

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -1,34 +1,34 @@
/***************************************************************************/ /****************************************************************************
/* */ *
/* ft2build.h */ * ft2build.h
/* */ *
/* FreeType 2 build and setup macros. */ * FreeType 2 build and setup macros.
/* */ *
/* Copyright 1996-2018 by */ * Copyright 1996-2018 by
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ * David Turner, Robert Wilhelm, and Werner Lemberg.
/* */ *
/* This file is part of the FreeType project, and may only be used, */ * This file is part of the FreeType project, and may only be used,
/* modified, and distributed under the terms of the FreeType project */ * modified, and distributed under the terms of the FreeType project
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ * license, LICENSE.TXT. By continuing to use, modify, or distribute
/* this file you indicate that you have read the license and */ * this file you indicate that you have read the license and
/* understand and accept it fully. */ * understand and accept it fully.
/* */ *
/***************************************************************************/ */
/*************************************************************************/ /**************************************************************************
/* */ *
/* This is the `entry point' for FreeType header file inclusions. It is */ * This is the `entry point' for FreeType header file inclusions. It is
/* the only header file which should be included directly; all other */ * the only header file which should be included directly; all other
/* FreeType header files should be accessed with macro names (after */ * FreeType header files should be accessed with macro names (after
/* including `ft2build.h'). */ * including `ft2build.h').
/* */ *
/* A typical example is */ * A typical example is
/* */ *
/* #include <ft2build.h> */ * #include <ft2build.h>
/* #include FT_FREETYPE_H */ * #include FT_FREETYPE_H
/* */ *
/*************************************************************************/ */
#ifndef FT2BUILD_H_ #ifndef FT2BUILD_H_