/**************************************************************************** * * pshrec.h * * Postscript (Type1/Type2) hints recorder (specification). * * Copyright (C) 2001-2023 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. * */ /*************************************************************************** * * The functions defined here are called from the Type 1, CID and CFF * font drivers to record the hints of a given character/glyph. * * The hints are recorded in a unified format, and are later processed * by the `optimizer' and `fitter' to adjust the outlines to the pixel * grid. * */ #ifndef PSHREC_H_ #define PSHREC_H_ #include <freetype/internal/pshints.h> #include "pshglob.h" FT_BEGIN_HEADER /*************************************************************************/ /*************************************************************************/ /***** *****/ /***** GLYPH HINTS RECORDER INTERNALS *****/ /***** *****/ /*************************************************************************/ /*************************************************************************/ /* handle to hint record */ PS_Hint; /* hint types */ PS_Hint_Type; /* hint flags */ #define PS_HINT_FLAG_GHOST … #define PS_HINT_FLAG_BOTTOM … /* hint descriptor */ PS_HintRec; #define ps_hint_is_active( x ) … #define ps_hint_is_ghost( x ) … #define ps_hint_is_bottom( x ) … /* hints table descriptor */ PS_Hint_Table; /* hint and counter mask descriptor */ PS_Mask; /* masks and counters table descriptor */ PS_Mask_Table; /* dimension-specific hints descriptor */ PS_Dimension; /* glyph hints descriptor */ /* dimension 0 => X coordinates + vertical hints/stems */ /* dimension 1 => Y coordinates + horizontal hints/stems */ PS_Hints; /* */ /* initialize hints recorder */ FT_LOCAL( void ) ps_hints_init( PS_Hints hints, FT_Memory memory ); /* finalize hints recorder */ FT_LOCAL( void ) ps_hints_done( PS_Hints hints ); /* initialize Type1 hints recorder interface */ FT_LOCAL( void ) t1_hints_funcs_init( T1_Hints_FuncsRec* funcs ); /* initialize Type2 hints recorder interface */ FT_LOCAL( void ) t2_hints_funcs_init( T2_Hints_FuncsRec* funcs ); #ifdef DEBUG_HINTER extern PS_Hints ps_debug_hints; extern int ps_debug_no_horz_hints; extern int ps_debug_no_vert_hints; #endif /* */ FT_END_HEADER #endif /* PSHREC_H_ */ /* END */