/**************************************************************************** * * svmetric.h * * The FreeType services for metrics variations (specification). * * Copyright (C) 2016-2019 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * 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. * */ #ifndef SVMETRIC_H_ #define SVMETRIC_H_ #include FT_INTERNAL_SERVICE_H FT_BEGIN_HEADER /* * A service to manage the `HVAR, `MVAR', and `VVAR' OpenType tables. * */ #define FT_SERVICE_ID_METRICS_VARIATIONS "metrics-variations" /* HVAR */ typedef FT_Error (*FT_HAdvance_Adjust_Func)( FT_Face face, FT_UInt gindex, FT_Int *avalue ); typedef FT_Error (*FT_LSB_Adjust_Func)( FT_Face face, FT_UInt gindex, FT_Int *avalue ); typedef FT_Error (*FT_RSB_Adjust_Func)( FT_Face face, FT_UInt gindex, FT_Int *avalue ); /* VVAR */ typedef FT_Error (*FT_VAdvance_Adjust_Func)( FT_Face face, FT_UInt gindex, FT_Int *avalue ); typedef FT_Error (*FT_TSB_Adjust_Func)( FT_Face face, FT_UInt gindex, FT_Int *avalue ); typedef FT_Error (*FT_BSB_Adjust_Func)( FT_Face face, FT_UInt gindex, FT_Int *avalue ); typedef FT_Error (*FT_VOrg_Adjust_Func)( FT_Face face, FT_UInt gindex, FT_Int *avalue ); /* MVAR */ typedef void (*FT_Metrics_Adjust_Func)( FT_Face face ); FT_DEFINE_SERVICE( MetricsVariations ) { FT_HAdvance_Adjust_Func hadvance_adjust; FT_LSB_Adjust_Func lsb_adjust; FT_RSB_Adjust_Func rsb_adjust; FT_VAdvance_Adjust_Func vadvance_adjust; FT_TSB_Adjust_Func tsb_adjust; FT_BSB_Adjust_Func bsb_adjust; FT_VOrg_Adjust_Func vorg_adjust; FT_Metrics_Adjust_Func metrics_adjust; }; #define FT_DEFINE_SERVICE_METRICSVARIATIONSREC( class_, \ hadvance_adjust_, \ lsb_adjust_, \ rsb_adjust_, \ vadvance_adjust_, \ tsb_adjust_, \ bsb_adjust_, \ vorg_adjust_, \ metrics_adjust_ ) \ static const FT_Service_MetricsVariationsRec class_ = \ { \ hadvance_adjust_, \ lsb_adjust_, \ rsb_adjust_, \ vadvance_adjust_, \ tsb_adjust_, \ bsb_adjust_, \ vorg_adjust_, \ metrics_adjust_ \ }; /* */ FT_END_HEADER #endif /* SVMETRIC_H_ */ /* END */