| /***************************************************************************/ |
| /* */ |
| /* afglobal.h */ |
| /* */ |
| /* Auto-fitter routines to compute global hinting values */ |
| /* (specification). */ |
| /* */ |
| /* Copyright 2003-2005, 2007, 2009, 2011-2012 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 __AFGLOBAL_H__ |
| #define __AFGLOBAL_H__ |
| |
| |
| #include "aftypes.h" |
| #include "afmodule.h" |
| |
| |
| FT_BEGIN_HEADER |
| |
| |
| /* |
| * Default values and flags for both autofitter globals (found in |
| * AF_ModuleRec) and face globals (in AF_FaceGlobalsRec). |
| */ |
| |
| /* index of fallback script in `af_script_classes' */ |
| #define AF_SCRIPT_FALLBACK 2 |
| /* a bit mask indicating an uncovered glyph */ |
| #define AF_SCRIPT_NONE 0x7F |
| /* if this flag is set, we have an ASCII digit */ |
| #define AF_DIGIT 0x80 |
| |
| /* `increase-x-height' property */ |
| #define AF_PROP_INCREASE_X_HEIGHT_MIN 6 |
| #define AF_PROP_INCREASE_X_HEIGHT_MAX 0 |
| |
| |
| /************************************************************************/ |
| /************************************************************************/ |
| /***** *****/ |
| /***** F A C E G L O B A L S *****/ |
| /***** *****/ |
| /************************************************************************/ |
| /************************************************************************/ |
| |
| |
| /* |
| * Note that glyph_scripts[] is used to map each glyph into |
| * an index into the `af_script_classes' array. |
| * |
| */ |
| typedef struct AF_FaceGlobalsRec_ |
| { |
| FT_Face face; |
| FT_Long glyph_count; /* same as face->num_glyphs */ |
| FT_Byte* glyph_scripts; |
| |
| /* per-face auto-hinter properties */ |
| FT_UInt increase_x_height; |
| |
| AF_ScriptMetrics metrics[AF_SCRIPT_MAX]; |
| |
| AF_Module module; /* to access global properties */ |
| |
| } AF_FaceGlobalsRec; |
| |
| |
| /* |
| * model the global hints data for a given face, decomposed into |
| * script-specific items |
| */ |
| |
| FT_LOCAL( FT_Error ) |
| af_face_globals_new( FT_Face face, |
| AF_FaceGlobals *aglobals, |
| AF_Module module ); |
| |
| FT_LOCAL( FT_Error ) |
| af_face_globals_get_metrics( AF_FaceGlobals globals, |
| FT_UInt gindex, |
| FT_UInt options, |
| AF_ScriptMetrics *ametrics ); |
| |
| FT_LOCAL( void ) |
| af_face_globals_free( AF_FaceGlobals globals ); |
| |
| FT_LOCAL_DEF( FT_Bool ) |
| af_face_globals_is_digit( AF_FaceGlobals globals, |
| FT_UInt gindex ); |
| |
| /* */ |
| |
| |
| FT_END_HEADER |
| |
| #endif /* __AFGLOBAL_H__ */ |
| |
| |
| /* END */ |