| /***************************************************************************/ |
| /* */ |
| /* afindic.c */ |
| /* */ |
| /* Auto-fitter hinting routines for Indic scripts (body). */ |
| /* */ |
| /* Copyright 2007 by */ |
| /* Rahul Bhalerao <rahul.bhalerao@redhat.com>, <b.rahul.pm@gmail.com>. */ |
| /* */ |
| /* 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. */ |
| /* */ |
| /***************************************************************************/ |
| |
| |
| #include "aftypes.h" |
| #include "aflatin.h" |
| |
| |
| #ifdef AF_CONFIG_OPTION_INDIC |
| |
| #include "afindic.h" |
| #include "aferrors.h" |
| #include "afcjk.h" |
| |
| |
| #ifdef AF_USE_WARPER |
| #include "afwarp.h" |
| #endif |
| |
| |
| static FT_Error |
| af_indic_metrics_init( AF_LatinMetrics metrics, |
| FT_Face face ) |
| { |
| /* use CJK routines */ |
| return af_cjk_metrics_init( metrics, face ); |
| } |
| |
| |
| static void |
| af_indic_metrics_scale( AF_LatinMetrics metrics, |
| AF_Scaler scaler ) |
| { |
| /* use CJK routines */ |
| af_cjk_metrics_scale( metrics, scaler ); |
| } |
| |
| |
| static FT_Error |
| af_indic_hints_init( AF_GlyphHints hints, |
| AF_LatinMetrics metrics ) |
| { |
| /* use CJK routines */ |
| return af_cjk_hints_init( hints, metrics ); |
| } |
| |
| |
| static FT_Error |
| af_indic_hints_apply( AF_GlyphHints hints, |
| FT_Outline* outline, |
| AF_LatinMetrics metrics) |
| { |
| /* use CJK routines */ |
| return af_cjk_hints_apply( hints, outline, metrics ); |
| } |
| |
| |
| /*************************************************************************/ |
| /*************************************************************************/ |
| /***** *****/ |
| /***** I N D I C S C R I P T C L A S S *****/ |
| /***** *****/ |
| /*************************************************************************/ |
| /*************************************************************************/ |
| |
| |
| static const AF_Script_UniRangeRec af_indic_uniranges[] = |
| { |
| #if 0 |
| { 0x0100, 0xFFFF }, /* why this? */ |
| #endif |
| { 0x0900, 0x0DFF}, /* Indic Range */ |
| { 0, 0 } |
| }; |
| |
| |
| FT_CALLBACK_TABLE_DEF const AF_ScriptClassRec |
| af_indic_script_class = |
| { |
| AF_SCRIPT_INDIC, |
| af_indic_uniranges, |
| |
| sizeof( AF_LatinMetricsRec ), |
| |
| (AF_Script_InitMetricsFunc) af_indic_metrics_init, |
| (AF_Script_ScaleMetricsFunc)af_indic_metrics_scale, |
| (AF_Script_DoneMetricsFunc) NULL, |
| |
| (AF_Script_InitHintsFunc) af_indic_hints_init, |
| (AF_Script_ApplyHintsFunc) af_indic_hints_apply |
| }; |
| |
| #else /* !AF_CONFIG_OPTION_INDIC */ |
| |
| static const AF_Script_UniRangeRec af_indic_uniranges[] = |
| { |
| { 0, 0 } |
| }; |
| |
| |
| FT_CALLBACK_TABLE_DEF const AF_ScriptClassRec |
| af_indic_script_class = |
| { |
| AF_SCRIPT_INDIC, |
| af_indic_uniranges, |
| |
| sizeof( AF_LatinMetricsRec ), |
| |
| (AF_Script_InitMetricsFunc) NULL, |
| (AF_Script_ScaleMetricsFunc)NULL, |
| (AF_Script_DoneMetricsFunc) NULL, |
| |
| (AF_Script_InitHintsFunc) NULL, |
| (AF_Script_ApplyHintsFunc) NULL |
| }; |
| |
| #endif /* !AF_CONFIG_OPTION_INDIC */ |
| |
| |
| /* END */ |