2018-06-03 09:01:17 +02:00
|
|
|
/****************************************************************************
|
|
|
|
*
|
|
|
|
* psauxmod.c
|
|
|
|
*
|
|
|
|
* FreeType auxiliary PostScript module implementation (body).
|
|
|
|
*
|
2023-01-17 09:18:25 +01:00
|
|
|
* Copyright (C) 2000-2023 by
|
2018-06-03 09:01:17 +02:00
|
|
|
* 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.
|
|
|
|
*
|
|
|
|
*/
|
2000-08-24 18:29:15 +02:00
|
|
|
|
2000-12-08 17:17:16 +01:00
|
|
|
|
2001-03-20 12:14:24 +01:00
|
|
|
#include "psauxmod.h"
|
|
|
|
#include "psobjs.h"
|
|
|
|
#include "t1decode.h"
|
2002-03-21 16:02:54 +01:00
|
|
|
#include "t1cmap.h"
|
2017-09-24 22:40:07 +02:00
|
|
|
#include "psft.h"
|
2017-09-24 21:56:54 +02:00
|
|
|
#include "cffdecode.h"
|
2006-01-23 11:46:38 +01:00
|
|
|
|
|
|
|
#ifndef T1_CONFIG_OPTION_NO_AFM
|
* src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
implement an AFM parser. It is used to parse an AFM file.
* src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
conversion functions (e.g, PS real number => FT_Fixed) for the
PS_Parser and AFM_Parser. Some of the functions are taken, with some
modifications, from the psobjs.c
* src/psaux/psobjs.c: Use functions from psconv.c.
* include/freetype/internal/psaux.h, src/psaux/psauxmod.c:: Add
`AFM_Parser' to the `psaux' service.
* src/psaux/psaux.c, src/psaux/rules.mk: Include those new files.
* src/tools/test_afm.c: A test program for AFM parser.
* include/freetype/internal/services/svkern.h,
include/freetype/internal/ftserv.h: New service `Kerning'. It is
currently only used to get the track kerning information.
* src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
src/type1/t1afm.h: Update to use the AFM parser.
Provide the `Kerning' service.
* include/freetype/freetype.h, src/base/ftobjs.c: New API
`FT_Get_Track_Kerning'.
2006-01-16 16:35:56 +01:00
|
|
|
#include "afmparse.h"
|
2006-01-23 11:46:38 +01:00
|
|
|
#endif
|
2000-12-08 17:17:16 +01:00
|
|
|
|
2000-08-24 18:29:15 +02:00
|
|
|
|
2000-11-04 02:55:49 +01:00
|
|
|
FT_CALLBACK_TABLE_DEF
|
2002-02-28 17:10:29 +01:00
|
|
|
const PS_Table_FuncsRec ps_table_funcs =
|
2000-08-23 00:36:33 +02:00
|
|
|
{
|
2016-09-17 17:12:50 +02:00
|
|
|
ps_table_new, /* init */
|
|
|
|
ps_table_done, /* done */
|
|
|
|
ps_table_add, /* add */
|
|
|
|
ps_table_release /* release */
|
2000-08-23 00:36:33 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2000-11-04 02:55:49 +01:00
|
|
|
FT_CALLBACK_TABLE_DEF
|
2002-02-28 17:10:29 +01:00
|
|
|
const PS_Parser_FuncsRec ps_parser_funcs =
|
2000-08-23 00:36:33 +02:00
|
|
|
{
|
2016-09-17 17:12:50 +02:00
|
|
|
ps_parser_init, /* init */
|
|
|
|
ps_parser_done, /* done */
|
|
|
|
|
|
|
|
ps_parser_skip_spaces, /* skip_spaces */
|
|
|
|
ps_parser_skip_PS_token, /* skip_PS_token */
|
|
|
|
|
|
|
|
ps_parser_to_int, /* to_int */
|
|
|
|
ps_parser_to_fixed, /* to_fixed */
|
|
|
|
ps_parser_to_bytes, /* to_bytes */
|
|
|
|
ps_parser_to_coord_array, /* to_coord_array */
|
|
|
|
ps_parser_to_fixed_array, /* to_fixed_array */
|
|
|
|
ps_parser_to_token, /* to_token */
|
|
|
|
ps_parser_to_token_array, /* to_token_array */
|
|
|
|
|
|
|
|
ps_parser_load_field, /* load_field */
|
|
|
|
ps_parser_load_field_table /* load_field_table */
|
2000-08-23 00:36:33 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2017-09-24 23:00:36 +02:00
|
|
|
FT_CALLBACK_TABLE_DEF
|
|
|
|
const PS_Builder_FuncsRec ps_builder_funcs =
|
|
|
|
{
|
|
|
|
ps_builder_init, /* init */
|
|
|
|
ps_builder_done /* done */
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2000-11-04 02:55:49 +01:00
|
|
|
FT_CALLBACK_TABLE_DEF
|
* src/base/ftdbgmem.c (ft_mem_table_resize, ft_mem_table_new,
ft_mem_table_set, ft_mem_debug_alloc, ft_mem_debug_free,
ft_mem_debug_realloc, ft_mem_debug_done, FT_Alloc_Debug,
FT_Realloc_Debug, FT_Free_Debug): Fix compiler warnings.
* src/base/ftcalc.c (FT_MulFix): Ditto.
* src/cff/cffdrivr.c (cff_get_name_index): Ditto.
* src/cff/cffobjs.c (CFF_Size_Get_Global_Funcs, CFF_Size_Init,
CFF_GlyphSlot_Init): Ditto.
* src/cid/cidobjs.c (CID_GlyphSlot_Init,
CID_Size_Get_Globals_Funcs): Ditto.
* src/type1/t1objs.c (T1_Size_Get_Globals_Funcs, T1_GlyphSlot_Init):
Ditto.
* src/pshinter/pshmod.c (pshinter_interface): Use `static const'.
* src/winfonts/winfnt.c (FNT_Get_Next_Char): Remove unused
variables.
* include/freetype/internal/psaux.h (T1_Builder_Funcs): Renamed
to...
(T1_Builder_FuncsRec): This.
(T1_Builder_Funcs): New typedef.
(PSAux_Interface): Remove compiler warnings.
* src/psaux/psauxmod.c (t1_builder_funcs), src/psaux/psobjs.h
(t1_builder_funcs): Updated.
* src/pshinter/pshglob.h (PSH_Blue_Align): Replaced with ...
(PSH_BLUE_ALIGN_{NONE,TOP,BOT}): New defines.
(PSH_AlignmentRec): Updated.
* include/freetype/internal/ftstream.h (GET_Char, GET_Byte): Fix
typo.
* include/freetype/internal/ftgloadr.h (FT_SubGlyph): Ditto.
* src/base/ftstream (FT_Get_Char): Rename to...
(FT_Stream_Get_Char): This.
* src/base/ftnames.c (FT_Get_Sfnt_Name): s/index/idx/ -- `index' is
a built-in function in gcc, causing warning messages with gcc 3.0.
* src/autohint/ahglyph.c (ah_outline_load): Ditto.
* src/autohint/ahglobal.c (ah_hinter_compute_blues): Ditto.
* src/cache/ftcmanag.c (ftc_family_table_alloc,
ftc_family_table_free, FTC_Manager_Done, FTC_Manager_Register_Cache):
Ditto.
* src/cff/cffload.c (cff_new_index, cff_done_index,
cff_explicit_index, CFF_Access_Element, CFF_Forget_Element,
CFF_Get_Name, CFF_Get_String, CFF_Load_SubFont, CFF_Load_Font,
CFF_Done_Font): Ditto.
* src/psaux/psobjs.c (PS_Table_Add, PS_Parser_LoadField): Ditto.
* src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Ditto.
* src/pshinter/pshrec.c (ps_mask_test_bit, ps_mask_clear_bit,
ps_mask_set_bit, ps_dimension_add_t1stem, ps_hints_t1stem3,
* src/pshinter/pshalgo1.c (psh1_hint_table_record,
psh1_hint_table_record_mask, psh1_hint_table_activate_mask): Ditto.
* src/pshinter/pshalgo2.c (psh2_hint_table_record,
psh2_hint_table_record_mask, psh2_hint_table_activate_mask): Ditto.
* src/sfnt/ttpost.c (Load_Format_20, Load_Format_25,
TT_Get_PS_Name): Ditto.
* src/truetype/ttgload.c (TT_Get_Metrics, Get_HMetrics,
load_truetype_glyph): Ditto.
* src/type1/t1load.c (parse_subrs, T1_Open_Face): Ditto.
* src/type1/t1afm.c (T1_Get_Kerning): Ditto.
* include/freetype/cache/ftcmanag.h (ftc_family_table_free): Ditto.
2002-03-07 22:59:59 +01:00
|
|
|
const T1_Builder_FuncsRec t1_builder_funcs =
|
2000-08-23 00:36:33 +02:00
|
|
|
{
|
2016-09-17 17:12:50 +02:00
|
|
|
t1_builder_init, /* init */
|
|
|
|
t1_builder_done, /* done */
|
|
|
|
|
|
|
|
t1_builder_check_points, /* check_points */
|
|
|
|
t1_builder_add_point, /* add_point */
|
|
|
|
t1_builder_add_point1, /* add_point1 */
|
|
|
|
t1_builder_add_contour, /* add_contour */
|
|
|
|
t1_builder_start_point, /* start_point */
|
|
|
|
t1_builder_close_contour /* close_contour */
|
2000-08-23 00:36:33 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2000-11-04 02:55:49 +01:00
|
|
|
FT_CALLBACK_TABLE_DEF
|
2002-02-28 17:10:29 +01:00
|
|
|
const T1_Decoder_FuncsRec t1_decoder_funcs =
|
2000-08-23 00:36:33 +02:00
|
|
|
{
|
2017-10-01 01:39:27 +02:00
|
|
|
t1_decoder_init, /* init */
|
|
|
|
t1_decoder_done, /* done */
|
Add T1_CONFIG_OPTION_OLD_ENGINE configuration option.
This controls whether the old Type 1 engine gets compiled into FreeType.
It is disabled by default.
* devel/ftoption.h, include/freetype/config/ftoption.h
(T1_CONFIG_OPTION_OLD_ENGINE): New macro.
* include/freetype/internal/psaux.h (PS_Decoder): Remove unused field.
* include/freetype/internal/psaux.h, src/cid/cidgload.c
(cid_load_glyph), src/psaux/psauxmod.c, src/psaux/psobjs.c
(ps_builder_add_point), src/psaux/t1decode.c
(t1_lookup_glyph_by_stdcharcode, t1_decoder_parse_glyph,
t1operator_seac, t1_decoder_parse_charstrings), src/psaux/t1decode.h,
src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Surround
relevant code with macro.
Minor code changes.
2017-10-12 12:13:21 +02:00
|
|
|
#ifdef T1_CONFIG_OPTION_OLD_ENGINE
|
2017-10-01 01:39:27 +02:00
|
|
|
t1_decoder_parse_charstrings, /* parse_charstrings_old */
|
Add T1_CONFIG_OPTION_OLD_ENGINE configuration option.
This controls whether the old Type 1 engine gets compiled into FreeType.
It is disabled by default.
* devel/ftoption.h, include/freetype/config/ftoption.h
(T1_CONFIG_OPTION_OLD_ENGINE): New macro.
* include/freetype/internal/psaux.h (PS_Decoder): Remove unused field.
* include/freetype/internal/psaux.h, src/cid/cidgload.c
(cid_load_glyph), src/psaux/psauxmod.c, src/psaux/psobjs.c
(ps_builder_add_point), src/psaux/t1decode.c
(t1_lookup_glyph_by_stdcharcode, t1_decoder_parse_glyph,
t1operator_seac, t1_decoder_parse_charstrings), src/psaux/t1decode.h,
src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Surround
relevant code with macro.
Minor code changes.
2017-10-12 12:13:21 +02:00
|
|
|
#else
|
2017-10-12 12:13:08 +02:00
|
|
|
t1_decoder_parse_metrics, /* parse_metrics */
|
Add T1_CONFIG_OPTION_OLD_ENGINE configuration option.
This controls whether the old Type 1 engine gets compiled into FreeType.
It is disabled by default.
* devel/ftoption.h, include/freetype/config/ftoption.h
(T1_CONFIG_OPTION_OLD_ENGINE): New macro.
* include/freetype/internal/psaux.h (PS_Decoder): Remove unused field.
* include/freetype/internal/psaux.h, src/cid/cidgload.c
(cid_load_glyph), src/psaux/psauxmod.c, src/psaux/psobjs.c
(ps_builder_add_point), src/psaux/t1decode.c
(t1_lookup_glyph_by_stdcharcode, t1_decoder_parse_glyph,
t1operator_seac, t1_decoder_parse_charstrings), src/psaux/t1decode.h,
src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Surround
relevant code with macro.
Minor code changes.
2017-10-12 12:13:21 +02:00
|
|
|
#endif
|
2017-10-01 01:39:27 +02:00
|
|
|
cf2_decoder_parse_charstrings /* parse_charstrings */
|
2000-08-23 00:36:33 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2006-01-23 11:46:38 +01:00
|
|
|
#ifndef T1_CONFIG_OPTION_NO_AFM
|
* src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
implement an AFM parser. It is used to parse an AFM file.
* src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
conversion functions (e.g, PS real number => FT_Fixed) for the
PS_Parser and AFM_Parser. Some of the functions are taken, with some
modifications, from the psobjs.c
* src/psaux/psobjs.c: Use functions from psconv.c.
* include/freetype/internal/psaux.h, src/psaux/psauxmod.c:: Add
`AFM_Parser' to the `psaux' service.
* src/psaux/psaux.c, src/psaux/rules.mk: Include those new files.
* src/tools/test_afm.c: A test program for AFM parser.
* include/freetype/internal/services/svkern.h,
include/freetype/internal/ftserv.h: New service `Kerning'. It is
currently only used to get the track kerning information.
* src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
src/type1/t1afm.h: Update to use the AFM parser.
Provide the `Kerning' service.
* include/freetype/freetype.h, src/base/ftobjs.c: New API
`FT_Get_Track_Kerning'.
2006-01-16 16:35:56 +01:00
|
|
|
FT_CALLBACK_TABLE_DEF
|
|
|
|
const AFM_Parser_FuncsRec afm_parser_funcs =
|
|
|
|
{
|
2016-09-17 17:12:50 +02:00
|
|
|
afm_parser_init, /* init */
|
|
|
|
afm_parser_done, /* done */
|
|
|
|
afm_parser_parse /* parse */
|
* src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
implement an AFM parser. It is used to parse an AFM file.
* src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
conversion functions (e.g, PS real number => FT_Fixed) for the
PS_Parser and AFM_Parser. Some of the functions are taken, with some
modifications, from the psobjs.c
* src/psaux/psobjs.c: Use functions from psconv.c.
* include/freetype/internal/psaux.h, src/psaux/psauxmod.c:: Add
`AFM_Parser' to the `psaux' service.
* src/psaux/psaux.c, src/psaux/rules.mk: Include those new files.
* src/tools/test_afm.c: A test program for AFM parser.
* include/freetype/internal/services/svkern.h,
include/freetype/internal/ftserv.h: New service `Kerning'. It is
currently only used to get the track kerning information.
* src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
src/type1/t1afm.h: Update to use the AFM parser.
Provide the `Kerning' service.
* include/freetype/freetype.h, src/base/ftobjs.c: New API
`FT_Get_Track_Kerning'.
2006-01-16 16:35:56 +01:00
|
|
|
};
|
2006-01-23 11:46:38 +01:00
|
|
|
#endif
|
* src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
implement an AFM parser. It is used to parse an AFM file.
* src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
conversion functions (e.g, PS real number => FT_Fixed) for the
PS_Parser and AFM_Parser. Some of the functions are taken, with some
modifications, from the psobjs.c
* src/psaux/psobjs.c: Use functions from psconv.c.
* include/freetype/internal/psaux.h, src/psaux/psauxmod.c:: Add
`AFM_Parser' to the `psaux' service.
* src/psaux/psaux.c, src/psaux/rules.mk: Include those new files.
* src/tools/test_afm.c: A test program for AFM parser.
* include/freetype/internal/services/svkern.h,
include/freetype/internal/ftserv.h: New service `Kerning'. It is
currently only used to get the track kerning information.
* src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
src/type1/t1afm.h: Update to use the AFM parser.
Provide the `Kerning' service.
* include/freetype/freetype.h, src/base/ftobjs.c: New API
`FT_Get_Track_Kerning'.
2006-01-16 16:35:56 +01:00
|
|
|
|
|
|
|
|
2002-03-21 16:02:54 +01:00
|
|
|
FT_CALLBACK_TABLE_DEF
|
|
|
|
const T1_CMap_ClassesRec t1_cmap_classes =
|
|
|
|
{
|
|
|
|
&t1_cmap_standard_class_rec,
|
|
|
|
&t1_cmap_expert_class_rec,
|
|
|
|
&t1_cmap_custom_class_rec,
|
|
|
|
&t1_cmap_unicode_class_rec
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2017-09-24 21:56:54 +02:00
|
|
|
FT_CALLBACK_TABLE_DEF
|
|
|
|
const CFF_Builder_FuncsRec cff_builder_funcs =
|
|
|
|
{
|
|
|
|
cff_builder_init, /* init */
|
|
|
|
cff_builder_done, /* done */
|
|
|
|
|
|
|
|
cff_check_points, /* check_points */
|
|
|
|
cff_builder_add_point, /* add_point */
|
|
|
|
cff_builder_add_point1, /* add_point1 */
|
|
|
|
cff_builder_add_contour, /* add_contour */
|
|
|
|
cff_builder_start_point, /* start_point */
|
|
|
|
cff_builder_close_contour /* close_contour */
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
FT_CALLBACK_TABLE_DEF
|
|
|
|
const CFF_Decoder_FuncsRec cff_decoder_funcs =
|
|
|
|
{
|
2017-10-01 01:39:27 +02:00
|
|
|
cff_decoder_init, /* init */
|
|
|
|
cff_decoder_prepare, /* prepare */
|
2017-09-24 21:56:54 +02:00
|
|
|
|
|
|
|
#ifdef CFF_CONFIG_OPTION_OLD_ENGINE
|
2017-09-25 06:10:20 +02:00
|
|
|
cff_decoder_parse_charstrings, /* parse_charstrings_old */
|
2017-09-24 21:56:54 +02:00
|
|
|
#endif
|
2017-10-01 01:39:27 +02:00
|
|
|
cf2_decoder_parse_charstrings /* parse_charstrings */
|
2017-09-24 21:56:54 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2000-10-26 12:04:16 +02:00
|
|
|
static
|
2000-08-24 18:29:15 +02:00
|
|
|
const PSAux_Interface psaux_interface =
|
2000-08-23 00:36:33 +02:00
|
|
|
{
|
|
|
|
&ps_table_funcs,
|
2002-02-28 17:10:29 +01:00
|
|
|
&ps_parser_funcs,
|
2000-08-23 00:36:33 +02:00
|
|
|
&t1_builder_funcs,
|
|
|
|
&t1_decoder_funcs,
|
* builds/amiga/src/base/ftsystem.c, devel/ftoption.h
include/freetype/ftcache.h, include/freetype/ftoutln.h,
include/freetype/cache/ftccache.h, include/freetype/cache/ftccmap.h,
include/freetype/config/ftoption.h, include/freetype/internal/ftcalc.h,
include/freetype/internal/ftdriver.h,
include/freetype/internal/ftmemory.h,
include/freetype/internal/ftobjs.h, include/freetype/internal/ftrfork.h,
include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
include/freetype/internal/t1types.h, include/freetype/internal/tttypes.h,
src/base/ftcalc.c, src/base/ftdbgmem.c, src/base/ftobjs.c,
src/base/ftsystem.c, src/base/ftutil.c, src/bdf/bdfdrivr.c,
src/cache/ftccache.c, src/cache/ftccback.h, src/cache/ftccmap.c,
src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
massive changes to the internals to respect the internal object layouts
and exported functions of FreeType 2.1.7. Note that the cache sub-system
cannot be fully retrofitted, unfortunately.
2006-02-16 23:45:31 +01:00
|
|
|
t1_decrypt,
|
2017-09-24 22:32:40 +02:00
|
|
|
cff_random,
|
2017-09-24 23:00:36 +02:00
|
|
|
ps_decoder_init,
|
2017-09-25 06:49:41 +02:00
|
|
|
t1_make_subfont,
|
* builds/amiga/src/base/ftsystem.c, devel/ftoption.h
include/freetype/ftcache.h, include/freetype/ftoutln.h,
include/freetype/cache/ftccache.h, include/freetype/cache/ftccmap.h,
include/freetype/config/ftoption.h, include/freetype/internal/ftcalc.h,
include/freetype/internal/ftdriver.h,
include/freetype/internal/ftmemory.h,
include/freetype/internal/ftobjs.h, include/freetype/internal/ftrfork.h,
include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
include/freetype/internal/t1types.h, include/freetype/internal/tttypes.h,
src/base/ftcalc.c, src/base/ftdbgmem.c, src/base/ftobjs.c,
src/base/ftsystem.c, src/base/ftutil.c, src/bdf/bdfdrivr.c,
src/cache/ftccache.c, src/cache/ftccback.h, src/cache/ftccmap.c,
src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
massive changes to the internals to respect the internal object layouts
and exported functions of FreeType 2.1.7. Note that the cache sub-system
cannot be fully retrofitted, unfortunately.
2006-02-16 23:45:31 +01:00
|
|
|
|
|
|
|
(const T1_CMap_ClassesRec*) &t1_cmap_classes,
|
|
|
|
|
2006-01-23 11:46:38 +01:00
|
|
|
#ifndef T1_CONFIG_OPTION_NO_AFM
|
* src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
implement an AFM parser. It is used to parse an AFM file.
* src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
conversion functions (e.g, PS real number => FT_Fixed) for the
PS_Parser and AFM_Parser. Some of the functions are taken, with some
modifications, from the psobjs.c
* src/psaux/psobjs.c: Use functions from psconv.c.
* include/freetype/internal/psaux.h, src/psaux/psauxmod.c:: Add
`AFM_Parser' to the `psaux' service.
* src/psaux/psaux.c, src/psaux/rules.mk: Include those new files.
* src/tools/test_afm.c: A test program for AFM parser.
* include/freetype/internal/services/svkern.h,
include/freetype/internal/ftserv.h: New service `Kerning'. It is
currently only used to get the track kerning information.
* src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
src/type1/t1afm.h: Update to use the AFM parser.
Provide the `Kerning' service.
* include/freetype/freetype.h, src/base/ftobjs.c: New API
`FT_Get_Track_Kerning'.
2006-01-16 16:35:56 +01:00
|
|
|
&afm_parser_funcs,
|
2006-01-23 11:46:38 +01:00
|
|
|
#else
|
|
|
|
0,
|
|
|
|
#endif
|
2017-09-24 21:56:54 +02:00
|
|
|
|
|
|
|
&cff_decoder_funcs,
|
2000-08-23 00:36:33 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2020-07-07 16:58:14 +02:00
|
|
|
FT_DEFINE_MODULE(
|
|
|
|
psaux_module_class,
|
|
|
|
|
2000-08-23 00:36:33 +02:00
|
|
|
0,
|
2011-11-30 10:46:53 +01:00
|
|
|
sizeof ( FT_ModuleRec ),
|
2000-08-23 00:36:33 +02:00
|
|
|
"psaux",
|
2003-07-24 08:16:21 +02:00
|
|
|
0x20000L,
|
2000-08-23 00:36:33 +02:00
|
|
|
0x20000L,
|
2000-10-31 21:42:18 +01:00
|
|
|
|
2000-08-23 00:36:33 +02:00
|
|
|
&psaux_interface, /* module-specific interface */
|
2000-10-31 21:42:18 +01:00
|
|
|
|
2016-09-17 17:12:50 +02:00
|
|
|
(FT_Module_Constructor)NULL, /* module_init */
|
|
|
|
(FT_Module_Destructor) NULL, /* module_done */
|
|
|
|
(FT_Module_Requester) NULL /* get_interface */
|
2020-07-07 16:58:14 +02:00
|
|
|
)
|
2000-08-23 00:36:33 +02:00
|
|
|
|
2000-08-24 18:29:15 +02:00
|
|
|
|
|
|
|
/* END */
|