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