blob: 804a010450ccaf032cb8ac7113ced57007d5c7d7 [file] [log] [blame]
Werner Lemberg7fa51b52000-07-08 19:51:42 +00001/***************************************************************************/
2/* */
Werner Lembergb5084e12000-10-28 17:10:06 +00003/* t1load.h */
Werner Lemberg7fa51b52000-07-08 19:51:42 +00004/* */
Werner Lembergb5084e12000-10-28 17:10:06 +00005/* Type 1 font loader (specification). */
Werner Lemberg7fa51b52000-07-08 19:51:42 +00006/* */
Werner Lembergefa99612002-04-01 22:01:46 +00007/* Copyright 1996-2001, 2002 by */
Werner Lemberg7fa51b52000-07-08 19:51:42 +00008/* David Turner, Robert Wilhelm, and Werner Lemberg. */
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
David Turner2dfb5ac2000-01-27 14:02:04 +000018
Werner Lemberg90d99642000-12-09 00:45:38 +000019#ifndef __T1LOAD_H__
20#define __T1LOAD_H__
David Turner2dfb5ac2000-01-27 14:02:04 +000021
Werner Lembergcc069be2000-12-08 16:17:16 +000022
David Turner19ed8af2000-12-08 02:42:29 +000023#include <ft2build.h>
24#include FT_INTERNAL_STREAM_H
25#include FT_INTERNAL_POSTSCRIPT_AUX_H
26#include FT_MULTIPLE_MASTERS_H
David Turnera90663f2000-07-08 00:41:13 +000027
David Turner8d3a4012001-03-20 11:14:24 +000028#include "t1parse.h"
David Turnera90663f2000-07-08 00:41:13 +000029
Werner Lembergcc069be2000-12-08 16:17:16 +000030
David Turner19ed8af2000-12-08 02:42:29 +000031FT_BEGIN_HEADER
David Turner2dfb5ac2000-01-27 14:02:04 +000032
Werner Lembergcc069be2000-12-08 16:17:16 +000033
Werner Lembergb5084e12000-10-28 17:10:06 +000034 typedef struct T1_Loader_
David Turner2dfb5ac2000-01-27 14:02:04 +000035 {
Werner Lembergb5084e12000-10-28 17:10:06 +000036 T1_ParserRec parser; /* parser used to read the stream */
David Turner2dfb5ac2000-01-27 14:02:04 +000037
Werner Lembergb5084e12000-10-28 17:10:06 +000038 FT_Int num_chars; /* number of characters in encoding */
David Turner4e7eeee2002-02-28 16:10:29 +000039 PS_TableRec encoding_table; /* PS_Table used to store the */
Werner Lembergb5084e12000-10-28 17:10:06 +000040 /* encoding character names */
David Turnere49ab252000-05-16 23:44:38 +000041
Werner Lembergb5084e12000-10-28 17:10:06 +000042 FT_Int num_glyphs;
David Turner4e7eeee2002-02-28 16:10:29 +000043 PS_TableRec glyph_names;
44 PS_TableRec charstrings;
45 PS_TableRec swap_table; /* For moving .notdef glyph to index 0. */
David Turnere49ab252000-05-16 23:44:38 +000046
Werner Lembergb5084e12000-10-28 17:10:06 +000047 FT_Int num_subrs;
David Turner4e7eeee2002-02-28 16:10:29 +000048 PS_TableRec subrs;
Werner Lembergb5084e12000-10-28 17:10:06 +000049 FT_Bool fontdata;
David Turnere49ab252000-05-16 23:44:38 +000050
Werner Lembergbd889e52002-05-12 19:59:17 +000051 } T1_LoaderRec, *T1_Loader;
David Turner2dfb5ac2000-01-27 14:02:04 +000052
Werner Lemberg7fa51b52000-07-08 19:51:42 +000053
David Turnerbc82f1b2002-03-01 02:26:22 +000054 FT_LOCAL( FT_Error )
Werner Lemberg4a2305c2001-06-28 07:17:51 +000055 T1_Open_Face( T1_Face face );
David Turner2dfb5ac2000-01-27 14:02:04 +000056
Werner Lembergb5084e12000-10-28 17:10:06 +000057#ifndef T1_CONFIG_OPTION_NO_MM_SUPPORT
Werner Lemberg7fa51b52000-07-08 19:51:42 +000058
David Turnerbc82f1b2002-03-01 02:26:22 +000059 FT_LOCAL( FT_Error )
Werner Lemberg4a2305c2001-06-28 07:17:51 +000060 T1_Get_Multi_Master( T1_Face face,
61 FT_Multi_Master* master );
David Turner11187202000-05-26 17:13:23 +000062
David Turnerbc82f1b2002-03-01 02:26:22 +000063 FT_LOCAL( FT_Error )
Werner Lemberg4a2305c2001-06-28 07:17:51 +000064 T1_Set_MM_Blend( T1_Face face,
65 FT_UInt num_coords,
66 FT_Fixed* coords );
Werner Lemberge35cac62000-06-11 03:46:57 +000067
David Turnerbc82f1b2002-03-01 02:26:22 +000068 FT_LOCAL( FT_Error )
Werner Lemberg4a2305c2001-06-28 07:17:51 +000069 T1_Set_MM_Design( T1_Face face,
70 FT_UInt num_coords,
71 FT_Long* coords );
Werner Lemberge35cac62000-06-11 03:46:57 +000072
David Turnerbc82f1b2002-03-01 02:26:22 +000073 FT_LOCAL( void )
Werner Lemberg4a2305c2001-06-28 07:17:51 +000074 T1_Done_Blend( T1_Face face );
Werner Lemberg7fa51b52000-07-08 19:51:42 +000075
Werner Lembergb5084e12000-10-28 17:10:06 +000076#endif /* !T1_CONFIG_OPTION_NO_MM_SUPPORT */
Werner Lemberg7fa51b52000-07-08 19:51:42 +000077
David Turner2dfb5ac2000-01-27 14:02:04 +000078
David Turner19ed8af2000-12-08 02:42:29 +000079FT_END_HEADER
David Turner2dfb5ac2000-01-27 14:02:04 +000080
Werner Lemberg90d99642000-12-09 00:45:38 +000081#endif /* __T1LOAD_H__ */
David Turner2dfb5ac2000-01-27 14:02:04 +000082
83
84/* END */