afindic.c revision 295ffce55e0198e7a9f7d46b33f5c2b4147bf821
1/***************************************************************************/
2/*                                                                         */
3/*  afindic.c                                                              */
4/*                                                                         */
5/*    Auto-fitter hinting routines for Indic scripts (body).               */
6/*                                                                         */
7/*  Copyright 2007 by                                                      */
8/*  Rahul Bhalerao <rahul.bhalerao@redhat.com>, <b.rahul.pm@gmail.com>.    */
9/*                                                                         */
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.                                        */
15/*                                                                         */
16/***************************************************************************/
17
18
19#include "aftypes.h"
20#include "aflatin.h"
21
22
23#ifdef AF_CONFIG_OPTION_INDIC
24
25#include "afindic.h"
26#include "aferrors.h"
27#include "afcjk.h"
28
29
30#ifdef AF_USE_WARPER
31#include "afwarp.h"
32#endif
33
34
35  static FT_Error
36  af_indic_metrics_init( AF_LatinMetrics  metrics,
37                         FT_Face          face )
38  {
39    /* use CJK routines */
40    return af_cjk_metrics_init( metrics, face );
41  }
42
43
44  static void
45  af_indic_metrics_scale( AF_LatinMetrics  metrics,
46                          AF_Scaler        scaler )
47  {
48    /* use CJK routines */
49    af_cjk_metrics_scale( metrics, scaler );
50  }
51
52
53  static FT_Error
54  af_indic_hints_init( AF_GlyphHints    hints,
55                       AF_LatinMetrics  metrics )
56  {
57    /* use CJK routines */
58    return af_cjk_hints_init( hints, metrics );
59  }
60
61
62  static FT_Error
63  af_indic_hints_apply( AF_GlyphHints    hints,
64                        FT_Outline*      outline,
65                        AF_LatinMetrics  metrics)
66  {
67    /* use CJK routines */
68    return af_cjk_hints_apply( hints, outline, metrics );
69  }
70
71
72  /*************************************************************************/
73  /*************************************************************************/
74  /*****                                                               *****/
75  /*****                I N D I C   S C R I P T   C L A S S            *****/
76  /*****                                                               *****/
77  /*************************************************************************/
78  /*************************************************************************/
79
80
81  static const AF_Script_UniRangeRec  af_indic_uniranges[] =
82  {
83#if 0
84    AF_UNIRANGE_REC( 0x0100UL, 0xFFFFUL ),  /* why this? */
85#endif
86    AF_UNIRANGE_REC( 0x0900UL, 0x0DFFUL),    /* Indic Range */
87    AF_UNIRANGE_REC(      0UL,      0UL)
88  };
89
90
91  AF_DEFINE_SCRIPT_CLASS(af_indic_script_class,
92    AF_SCRIPT_INDIC,
93    af_indic_uniranges,
94
95    sizeof( AF_LatinMetricsRec ),
96
97    (AF_Script_InitMetricsFunc) af_indic_metrics_init,
98    (AF_Script_ScaleMetricsFunc)af_indic_metrics_scale,
99    (AF_Script_DoneMetricsFunc) NULL,
100
101    (AF_Script_InitHintsFunc)   af_indic_hints_init,
102    (AF_Script_ApplyHintsFunc)  af_indic_hints_apply
103  )
104
105#else /* !AF_CONFIG_OPTION_INDIC */
106
107  static const AF_Script_UniRangeRec  af_indic_uniranges[] =
108  {
109    { 0, 0 }
110  };
111
112
113  AF_DEFINE_SCRIPT_CLASS(af_indic_script_class,
114    AF_SCRIPT_INDIC,
115    af_indic_uniranges,
116
117    sizeof( AF_LatinMetricsRec ),
118
119    (AF_Script_InitMetricsFunc) NULL,
120    (AF_Script_ScaleMetricsFunc)NULL,
121    (AF_Script_DoneMetricsFunc) NULL,
122
123    (AF_Script_InitHintsFunc)   NULL,
124    (AF_Script_ApplyHintsFunc)  NULL
125  )
126
127#endif /* !AF_CONFIG_OPTION_INDIC */
128
129
130/* END */
131