1 /***************************************************************************/
5 /* Auto-fitter hinting routines for Indic writing system (body). */
7 /* Copyright 2007, 2011-2013 by */
8 /* Rahul Bhalerao <rahul.bhalerao@redhat.com>, <b.rahul.pm@gmail.com>. */
10 /* This file is part of the FreeType project, and may only be used, */
11 /* modified, and distributed under the terms of the FreeType project */
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13 /* this file you indicate that you have read the license and */
14 /* understand and accept it fully. */
16 /***************************************************************************/
23 #ifdef AF_CONFIG_OPTION_INDIC
30 #ifdef AF_CONFIG_OPTION_USE_WARPER
36 af_indic_metrics_init( AF_CJKMetrics metrics,
39 /* skip blue zone init in CJK routines */
40 FT_CharMap oldmap = face->charmap;
43 metrics->units_per_em = face->units_per_EM;
45 if ( FT_Select_Charmap( face, FT_ENCODING_UNICODE ) )
49 af_cjk_metrics_init_widths( metrics, face );
51 /* either need indic specific blue_chars[] or just skip blue zones */
52 af_cjk_metrics_init_blues( metrics, face, af_cjk_blue_chars );
54 af_cjk_metrics_check_digits( metrics, face );
57 FT_Set_Charmap( face, oldmap );
64 af_indic_metrics_scale( AF_CJKMetrics metrics,
67 /* use CJK routines */
68 af_cjk_metrics_scale( metrics, scaler );
73 af_indic_hints_init( AF_GlyphHints hints,
74 AF_CJKMetrics metrics )
76 /* use CJK routines */
77 return af_cjk_hints_init( hints, metrics );
82 af_indic_hints_apply( AF_GlyphHints hints,
84 AF_CJKMetrics metrics )
86 /* use CJK routines */
87 return af_cjk_hints_apply( hints, outline, metrics );
91 /*************************************************************************/
92 /*************************************************************************/
94 /***** I N D I C S C R I P T C L A S S *****/
96 /*************************************************************************/
97 /*************************************************************************/
100 AF_DEFINE_WRITING_SYSTEM_CLASS(
101 af_indic_writing_system_class,
103 AF_WRITING_SYSTEM_INDIC,
105 sizeof ( AF_CJKMetricsRec ),
107 (AF_WritingSystem_InitMetricsFunc) af_indic_metrics_init,
108 (AF_WritingSystem_ScaleMetricsFunc)af_indic_metrics_scale,
109 (AF_WritingSystem_DoneMetricsFunc) NULL,
111 (AF_WritingSystem_InitHintsFunc) af_indic_hints_init,
112 (AF_WritingSystem_ApplyHintsFunc) af_indic_hints_apply
116 #else /* !AF_CONFIG_OPTION_INDIC */
119 AF_DEFINE_WRITING_SYSTEM_CLASS(
120 af_indic_writing_system_class,
122 AF_WRITING_SYSTEM_INDIC,
124 sizeof ( AF_CJKMetricsRec ),
126 (AF_WritingSystem_InitMetricsFunc) NULL,
127 (AF_WritingSystem_ScaleMetricsFunc)NULL,
128 (AF_WritingSystem_DoneMetricsFunc) NULL,
130 (AF_WritingSystem_InitHintsFunc) NULL,
131 (AF_WritingSystem_ApplyHintsFunc) NULL
135 #endif /* !AF_CONFIG_OPTION_INDIC */