/**************************************************************************** * * pshglob.h * * PostScript hinter global hinting management. * * 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. * */ #ifndef PSHGLOB_H_ #define PSHGLOB_H_ #include <freetype/freetype.h> #include <freetype/internal/pshints.h> FT_BEGIN_HEADER /*************************************************************************/ /*************************************************************************/ /***** *****/ /***** GLOBAL HINTS INTERNALS *****/ /***** *****/ /*************************************************************************/ /*************************************************************************/ /************************************************************************** * * @constant: * PS_GLOBALS_MAX_BLUE_ZONES * * @description: * The maximum number of blue zones in a font global hints structure. * See @PS_Globals_BluesRec. */ #define PS_GLOBALS_MAX_BLUE_ZONES … /************************************************************************** * * @constant: * PS_GLOBALS_MAX_STD_WIDTHS * * @description: * The maximum number of standard and snap widths in either the * horizontal or vertical direction. See @PS_Globals_WidthsRec. */ #define PS_GLOBALS_MAX_STD_WIDTHS … /* standard and snap width */ PSH_Width; /* standard and snap widths table */ PSH_Widths; PSH_Dimension; /* blue zone descriptor */ PSH_Blue_Zone; PSH_Blue_Table; /* blue zones table */ PSH_Blues; /* font globals. */ /* dimension 0 => X coordinates + vertical hints/stems */ /* dimension 1 => Y coordinates + horizontal hints/stems */ PSH_GlobalsRec; #define PSH_BLUE_ALIGN_NONE … #define PSH_BLUE_ALIGN_TOP … #define PSH_BLUE_ALIGN_BOT … PSH_Alignment; FT_LOCAL( void ) psh_globals_funcs_init( PSH_Globals_FuncsRec* funcs ); #if 0 /* snap a stem width to fitter coordinates. `org_width' is in font */ /* units. The result is in device pixels (26.6 format). */ FT_LOCAL( FT_Pos ) psh_dimension_snap_width( PSH_Dimension dimension, FT_Int org_width ); #endif FT_LOCAL( void ) psh_globals_set_scale( PSH_Globals globals, FT_Fixed x_scale, FT_Fixed y_scale, FT_Fixed x_delta, FT_Fixed y_delta ); /* snap a stem to one or two blue zones */ FT_LOCAL( void ) psh_blues_snap_stem( PSH_Blues blues, FT_Int stem_top, FT_Int stem_bot, PSH_Alignment alignment ); /* */ #ifdef DEBUG_HINTER extern PSH_Globals ps_debug_globals; #endif FT_END_HEADER #endif /* PSHGLOB_H_ */ /* END */