diff options
Diffstat (limited to 'nx-X11/extras/freetype2/include/freetype/internal/pshints.h')
-rw-r--r-- | nx-X11/extras/freetype2/include/freetype/internal/pshints.h | 626 |
1 files changed, 0 insertions, 626 deletions
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/pshints.h b/nx-X11/extras/freetype2/include/freetype/internal/pshints.h deleted file mode 100644 index cd48f6cf3..000000000 --- a/nx-X11/extras/freetype2/include/freetype/internal/pshints.h +++ /dev/null @@ -1,626 +0,0 @@ -/***************************************************************************/ -/* */ -/* pshints.h */ -/* */ -/* Interface to Postscript-specific (Type 1 and Type 2) hints */ -/* recorders (specification only). These are used to support native */ -/* T1/T2 hints in the "type1", "cid" and "cff" font drivers. */ -/* */ -/* Copyright 2001, 2002, 2003 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __PSHINTS_H__ -#define __PSHINTS_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H -#include FT_TYPE1_TABLES_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** INTERNAL REPRESENTATION OF GLOBALS *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct PSH_GlobalsRec_* PSH_Globals; - - typedef FT_Error - (*PSH_Globals_NewFunc)( FT_Memory memory, - T1_Private* private_dict, - PSH_Globals* aglobals ); - - typedef FT_Error - (*PSH_Globals_SetScaleFunc)( PSH_Globals globals, - FT_Fixed x_scale, - FT_Fixed y_scale, - FT_Fixed x_delta, - FT_Fixed y_delta ); - - typedef void - (*PSH_Globals_DestroyFunc)( PSH_Globals globals ); - - - typedef struct PSH_Globals_FuncsRec_ - { - PSH_Globals_NewFunc create; - PSH_Globals_SetScaleFunc set_scale; - PSH_Globals_DestroyFunc destroy; - - } PSH_Globals_FuncsRec, *PSH_Globals_Funcs; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** PUBLIC TYPE 1 HINTS RECORDER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* @type: */ - /* T1_Hints */ - /* */ - /* @description: */ - /* This is a handle to an opaque structure used to record glyph hints */ - /* from a Type 1 character glyph character string. */ - /* */ - /* The methods used to operate on this object are defined by the */ - /* @T1_Hints_FuncsRec structure. Recording glyph hints is normally */ - /* achieved through the following scheme: */ - /* */ - /* - Open a new hint recording session by calling the "open" method. */ - /* This will rewind the recorder and prepare it for new input. */ - /* */ - /* - For each hint found in the glyph charstring, call the */ - /* corresponding method ("stem", "stem3", or "reset"). Note that */ - /* these functions do not return an error code. */ - /* */ - /* - Close the recording session by calling the "close" method. It */ - /* will return an error code if the hints were invalid or something */ - /* strange happened (e.g. memory shortage). */ - /* */ - /* The hints accumulated in the object can later be used by the */ - /* PostScript hinter. */ - /* */ - typedef struct T1_HintsRec_* T1_Hints; - - - /*************************************************************************/ - /* */ - /* @type: */ - /* T1_Hints_Funcs */ - /* */ - /* @description: */ - /* A pointer to the @T1_Hints_FuncsRec structure that defines the */ - /* API of a given @T1_Hints object. */ - /* */ - typedef const struct T1_Hints_FuncsRec_* T1_Hints_Funcs; - - - /*************************************************************************/ - /* */ - /* @functype: */ - /* T1_Hints_OpenFunc */ - /* */ - /* @description: */ - /* A method of the @T1_Hints class used to prepare it for a new */ - /* Type 1 hints recording session. */ - /* */ - /* @input: */ - /* hints :: A handle to the Type 1 hints recorder. */ - /* */ - /* @note: */ - /* You should always call the @T1_Hints_CloseFunc method in order to */ - /* close an opened recording session. */ - /* */ - typedef void - (*T1_Hints_OpenFunc)( T1_Hints hints ); - - - /*************************************************************************/ - /* */ - /* @functype: */ - /* T1_Hints_SetStemFunc */ - /* */ - /* @description: */ - /* A method of the @T1_Hints class used to record a new horizontal or */ - /* vertical stem. This corresponds to the Type 1 "hstem" and "vstem" */ - /* operators. */ - /* */ - /* @input: */ - /* hints :: A handle to the Type 1 hints recorder. */ - /* */ - /* dimension :: 0 for horizontal stems (hstem), 1 for vertical ones */ - /* (vstem). */ - /* */ - /* coords :: Array of 2 integers, used as (position,length) stem */ - /* descriptor. */ - /* */ - /* @note: */ - /* Use vertical coordinates (y) for horizontal stems (dim=0). Use */ - /* horizontal coordinates (x) for vertical stems (dim=1). */ - /* */ - /* "coords[0]" is the absolute stem position (lowest coordinate); */ - /* "coords[1]" is the length. */ - /* */ - /* The length can be negative, in which case it must be either -20 or */ - /* -21. It will be interpreted as a "ghost" stem, according to */ - /* Type 1 specification. */ - /* */ - /* If the length is -21 (corresponding to a bottom ghost stem), then */ - /* the real stem position is "coords[0]+coords[1]". */ - /* */ - typedef void - (*T1_Hints_SetStemFunc)( T1_Hints hints, - FT_UInt dimension, - FT_Long* coords ); - - - /*************************************************************************/ - /* */ - /* @functype: */ - /* T1_Hints_SetStem3Func */ - /* */ - /* @description: */ - /* A method of the @T1_Hints class used to record three */ - /* counter-controlled horizontal or vertical stems at once. */ - /* */ - /* @input: */ - /* hints :: A handle to the Type 1 hints recorder. */ - /* */ - /* dimension :: 0 for horizontal stems, 1 for vertical ones. */ - /* */ - /* coords :: An array of 6 integers, holding 3 (position,length) */ - /* pairs for the counter-controlled stems. */ - /* */ - /* @note: */ - /* Use vertical coordinates (y) for horizontal stems (dim=0). Use */ - /* horizontal coordinates (x) for vertical stems (dim=1). */ - /* */ - /* The lengths cannot be negative (ghost stems are never */ - /* counter-controlled). */ - /* */ - typedef void - (*T1_Hints_SetStem3Func)( T1_Hints hints, - FT_UInt dimension, - FT_Long* coords ); - - - /*************************************************************************/ - /* */ - /* @functype: */ - /* T1_Hints_ResetFunc */ - /* */ - /* @description: */ - /* A method of the @T1_Hints class used to reset the stems hints in a */ - /* recording session. */ - /* */ - /* @input: */ - /* hints :: A handle to the Type 1 hints recorder. */ - /* */ - /* end_point :: The index of the last point in the input glyph in */ - /* which the previously defined hints apply. */ - /* */ - typedef void - (*T1_Hints_ResetFunc)( T1_Hints hints, - FT_UInt end_point ); - - - /*************************************************************************/ - /* */ - /* @functype: */ - /* T1_Hints_CloseFunc */ - /* */ - /* @description: */ - /* A method of the @T1_Hints class used to close a hint recording */ - /* session. */ - /* */ - /* @input: */ - /* hints :: A handle to the Type 1 hints recorder. */ - /* */ - /* end_point :: The index of the last point in the input glyph. */ - /* */ - /* @return: */ - /* FreeType error code. 0 means success. */ - /* */ - /* @note: */ - /* The error code will be set to indicate that an error occured */ - /* during the recording session. */ - /* */ - typedef FT_Error - (*T1_Hints_CloseFunc)( T1_Hints hints, - FT_UInt end_point ); - - - /*************************************************************************/ - /* */ - /* @functype: */ - /* T1_Hints_ApplyFunc */ - /* */ - /* @description: */ - /* A method of the @T1_Hints class used to apply hints to the */ - /* corresponding glyph outline. Must be called once all hints have */ - /* been recorded. */ - /* */ - /* @input: */ - /* hints :: A handle to the Type 1 hints recorder. */ - /* */ - /* outline :: A pointer to the target outline descriptor. */ - /* */ - /* globals :: The hinter globals for this font. */ - /* */ - /* hint_mode :: Hinting information. */ - /* */ - /* @return: */ - /* FreeType error code. 0 means success. */ - /* */ - /* @note: */ - /* On input, all points within the outline are in font coordinates. */ - /* On output, they are in 1/64th of pixels. */ - /* */ - /* The scaling transformation is taken from the "globals" object */ - /* which must correspond to the same font as the glyph. */ - /* */ - typedef FT_Error - (*T1_Hints_ApplyFunc)( T1_Hints hints, - FT_Outline* outline, - PSH_Globals globals, - FT_Render_Mode hint_mode ); - - - /*************************************************************************/ - /* */ - /* @struct: */ - /* T1_Hints_FuncsRec */ - /* */ - /* @description: */ - /* The structure used to provide the API to @T1_Hints objects. */ - /* */ - /* @fields: */ - /* hints :: A handle to the T1 Hints recorder. */ - /* */ - /* open :: The function to open a recording session. */ - /* */ - /* close :: The function to close a recording session. */ - /* */ - /* stem :: The function to set a simple stem. */ - /* */ - /* stem3 :: The function to set counter-controlled stems. */ - /* */ - /* reset :: The function to reset stem hints. */ - /* */ - /* apply :: The function to apply the hints to the corresponding */ - /* glyph outline. */ - /* */ - typedef struct T1_Hints_FuncsRec_ - { - T1_Hints hints; - T1_Hints_OpenFunc open; - T1_Hints_CloseFunc close; - T1_Hints_SetStemFunc stem; - T1_Hints_SetStem3Func stem3; - T1_Hints_ResetFunc reset; - T1_Hints_ApplyFunc apply; - - } T1_Hints_FuncsRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** PUBLIC TYPE 2 HINTS RECORDER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* @type: */ - /* T2_Hints */ - /* */ - /* @description: */ - /* This is a handle to an opaque structure used to record glyph hints */ - /* from a Type 2 character glyph character string. */ - /* */ - /* The methods used to operate on this object are defined by the */ - /* @T2_Hints_FuncsRec structure. Recording glyph hints is normally */ - /* achieved through the following scheme: */ - /* */ - /* - Open a new hint recording session by calling the "open" method. */ - /* This will rewind the recorder and prepare it for new input. */ - /* */ - /* - For each hint found in the glyph charstring, call the */ - /* corresponding method ("stems", "hintmask", "counters"). Note */ - /* that these functions do not return an error code. */ - /* */ - /* - Close the recording session by calling the "close" method. It */ - /* will return an error code if the hints were invalid or something */ - /* strange happened (e.g. memory shortage). */ - /* */ - /* The hints accumulated in the object can later be used by the */ - /* Postscript hinter. */ - /* */ - typedef struct T2_HintsRec_* T2_Hints; - - - /*************************************************************************/ - /* */ - /* @type: */ - /* T2_Hints_Funcs */ - /* */ - /* @description: */ - /* A pointer to the @T2_Hints_FuncsRec structure that defines the API */ - /* of a given @T2_Hints object. */ - /* */ - typedef const struct T2_Hints_FuncsRec_* T2_Hints_Funcs; - - - /*************************************************************************/ - /* */ - /* @functype: */ - /* T2_Hints_OpenFunc */ - /* */ - /* @description: */ - /* A method of the @T2_Hints class used to prepare it for a new */ - /* Type 2 hints recording session. */ - /* */ - /* @input: */ - /* hints :: A handle to the Type 2 hints recorder. */ - /* */ - /* @note: */ - /* You should always call the @T2_Hints_CloseFunc method in order to */ - /* close an opened recording session. */ - /* */ - typedef void - (*T2_Hints_OpenFunc)( T2_Hints hints ); - - - /*************************************************************************/ - /* */ - /* @functype: */ - /* T2_Hints_StemsFunc */ - /* */ - /* @description: */ - /* A method of the @T2_Hints class used to set the table of stems in */ - /* either the vertical or horizontal dimension. Equivalent to the */ - /* "hstem", "vstem", "hstemhm", and "vstemhm" Type 2 operators. */ - /* */ - /* @input: */ - /* hints :: A handle to the Type 2 hints recorder. */ - /* */ - /* dimension :: 0 for horizontal stems (hstem), 1 for vertical ones */ - /* (vstem). */ - /* */ - /* count :: The number of stems. */ - /* */ - /* coords :: An array of "count" (position,length) pairs. */ - /* */ - /* @note: */ - /* Use vertical coordinates (y) for horizontal stems (dim=0). Use */ - /* horizontal coordinates (x) for vertical stems (dim=1). */ - /* */ - /* There are "2*count" elements in the "coords" aray. Each even */ - /* element is an absolute position in font units, each odd element is */ - /* a length in font units. */ - /* */ - /* A length can be negative, in which case it must be either -20 or */ - /* -21. It will be interpreted as a "ghost" stem, according to the */ - /* Type 1 specification. */ - /* */ - typedef void - (*T2_Hints_StemsFunc)( T2_Hints hints, - FT_UInt dimension, - FT_UInt count, - FT_Fixed* coordinates ); - - - /*************************************************************************/ - /* */ - /* @functype: */ - /* T2_Hints_MaskFunc */ - /* */ - /* @description: */ - /* A method of the @T2_Hints class used to set a given hintmask */ - /* (this corresponds to the "hintmask" Type 2 operator). */ - /* */ - /* @input: */ - /* hints :: A handle to the Type 2 hints recorder. */ - /* */ - /* end_point :: The glyph index of the last point to which the */ - /* previously defined/activated hints apply. */ - /* */ - /* bit_count :: The number of bits in the hint mask. */ - /* */ - /* bytes :: An array of bytes modelling the hint mask. */ - /* */ - /* @note: */ - /* If the hintmask starts the charstring (before any glyph point */ - /* definition), the value of "end_point" should be 0. */ - /* */ - /* "bit_count" is the number of meaningful bits in the "bytes" array; */ - /* it must be equal to the total number of hints defined so far */ - /* (i.e. horizontal+verticals). */ - /* */ - /* The "bytes" array can come directly from the Type 2 charstring and */ - /* respects the same format. */ - /* */ - typedef void - (*T2_Hints_MaskFunc)( T2_Hints hints, - FT_UInt end_point, - FT_UInt bit_count, - const FT_Byte* bytes ); - - - /*************************************************************************/ - /* */ - /* @functype: */ - /* T2_Hints_CounterFunc */ - /* */ - /* @description: */ - /* A method of the @T2_Hints class used to set a given counter mask */ - /* (this corresponds to the "hintmask" Type 2 operator). */ - /* */ - /* @input: */ - /* hints :: A handle to the Type 2 hints recorder. */ - /* */ - /* end_point :: A glyph index of the last point to which the */ - /* previously defined/active hints apply. */ - /* */ - /* bit_count :: The number of bits in the hint mask. */ - /* */ - /* bytes :: An array of bytes modelling the hint mask. */ - /* */ - /* @note: */ - /* If the hintmask starts the charstring (before any glyph point */ - /* definition), the value of "end_point" should be 0. */ - /* */ - /* "bit_count" is the number of meaningful bits in the "bytes" array; */ - /* it must be equal to the total number of hints defined so far */ - /* (i.e. horizontal+verticals). */ - /* */ - /* The "bytes" array can come directly from the Type 2 charstring and */ - /* respects the same format. */ - /* */ - typedef void - (*T2_Hints_CounterFunc)( T2_Hints hints, - FT_UInt bit_count, - const FT_Byte* bytes ); - - - /*************************************************************************/ - /* */ - /* @functype: */ - /* T2_Hints_CloseFunc */ - /* */ - /* @description: */ - /* A method of the @T2_Hints class used to close a hint recording */ - /* session. */ - /* */ - /* @input: */ - /* hints :: A handle to the Type 2 hints recorder. */ - /* */ - /* end_point :: The index of the last point in the input glyph. */ - /* */ - /* @return: */ - /* FreeType error code. 0 means success. */ - /* */ - /* @note: */ - /* The error code will be set to indicate that an error occured */ - /* during the recording session. */ - /* */ - typedef FT_Error - (*T2_Hints_CloseFunc)( T2_Hints hints, - FT_UInt end_point ); - - - /*************************************************************************/ - /* */ - /* @functype: */ - /* T2_Hints_ApplyFunc */ - /* */ - /* @description: */ - /* A method of the @T2_Hints class used to apply hints to the */ - /* corresponding glyph outline. Must be called after the "close" */ - /* method. */ - /* */ - /* @input: */ - /* hints :: A handle to the Type 2 hints recorder. */ - /* */ - /* outline :: A pointer to the target outline descriptor. */ - /* */ - /* globals :: The hinter globals for this font. */ - /* */ - /* hint_mode :: Hinting information. */ - /* */ - /* @return: */ - /* FreeType error code. 0 means success. */ - /* */ - /* @note: */ - /* On input, all points within the outline are in font coordinates. */ - /* On output, they are in 1/64th of pixels. */ - /* */ - /* The scaling transformation is taken from the "globals" object */ - /* which must correspond to the same font than the glyph. */ - /* */ - typedef FT_Error - (*T2_Hints_ApplyFunc)( T2_Hints hints, - FT_Outline* outline, - PSH_Globals globals, - FT_Render_Mode hint_mode ); - - - /*************************************************************************/ - /* */ - /* @struct: */ - /* T2_Hints_FuncsRec */ - /* */ - /* @description: */ - /* The structure used to provide the API to @T2_Hints objects. */ - /* */ - /* @fields: */ - /* hints :: A handle to the T2 hints recorder object. */ - /* */ - /* open :: The function to open a recording session. */ - /* */ - /* close :: The function to close a recording session. */ - /* */ - /* stems :: The function to set the dimension's stems table. */ - /* */ - /* hintmask :: The function to set hint masks. */ - /* */ - /* counter :: The function to set counter masks. */ - /* */ - /* apply :: The function to apply the hints on the corresponding */ - /* glyph outline. */ - /* */ - typedef struct T2_Hints_FuncsRec_ - { - T2_Hints hints; - T2_Hints_OpenFunc open; - T2_Hints_CloseFunc close; - T2_Hints_StemsFunc stems; - T2_Hints_MaskFunc hintmask; - T2_Hints_CounterFunc counter; - T2_Hints_ApplyFunc apply; - - } T2_Hints_FuncsRec; - - - /* */ - - - typedef struct PSHinter_Interface_ - { - PSH_Globals_Funcs (*get_globals_funcs)( FT_Module module ); - T1_Hints_Funcs (*get_t1_funcs) ( FT_Module module ); - T2_Hints_Funcs (*get_t2_funcs) ( FT_Module module ); - - } PSHinter_Interface; - - typedef PSHinter_Interface* PSHinter_Service; - - -FT_END_HEADER - -#endif /* __PSHINTS_H__ */ - - -/* END */ |