/**************************************************************************** * * afcjk.h * * Auto-fitter hinting routines for CJK writing system (specification). * * Copyright (C) 2006-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 AFCJK_H_ #define AFCJK_H_ #include "afhints.h" #include "aflatin.h" FT_BEGIN_HEADER /* the CJK-specific writing system */ AF_DECLARE_WRITING_SYSTEM_CLASS( af_cjk_writing_system_class ) /*************************************************************************/ /*************************************************************************/ /***** *****/ /***** C J K G L O B A L M E T R I C S *****/ /***** *****/ /*************************************************************************/ /*************************************************************************/ /* * CJK glyphs tend to fill the square. So we have both vertical and * horizontal blue zones. But some glyphs have flat bounding strokes that * leave some space between neighbour glyphs. */ #define AF_CJK_IS_TOP_BLUE( b ) … #define AF_CJK_IS_HORIZ_BLUE( b ) … #define AF_CJK_IS_RIGHT_BLUE … #define AF_CJK_MAX_WIDTHS … #define AF_CJK_BLUE_ACTIVE … #define AF_CJK_BLUE_TOP … #define AF_CJK_BLUE_ADJUSTMENT … /* optimization */ AF_CJKBlue; AF_CJKAxis; AF_CJKMetrics; #ifdef AF_CONFIG_OPTION_CJK FT_LOCAL( FT_Error ) af_cjk_metrics_init( AF_StyleMetrics metrics, FT_Face face ); FT_LOCAL( void ) af_cjk_metrics_scale( AF_StyleMetrics metrics, AF_Scaler scaler ); FT_LOCAL( FT_Error ) af_cjk_hints_init( AF_GlyphHints hints, AF_StyleMetrics metrics ); FT_LOCAL( FT_Error ) af_cjk_hints_apply( FT_UInt glyph_index, AF_GlyphHints hints, FT_Outline* outline, AF_StyleMetrics metrics ); /* shared; called from afindic.c */ FT_LOCAL( void ) af_cjk_metrics_check_digits( AF_CJKMetrics metrics, FT_Face face ); FT_LOCAL( void ) af_cjk_metrics_init_widths( AF_CJKMetrics metrics, FT_Face face ); #endif /* AF_CONFIG_OPTION_CJK */ /* */ FT_END_HEADER #endif /* AFCJK_H_ */ /* END */