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 */