1 /***************************************************************************/
5 /* Type 1 objects manager (specification). */
7 /* Copyright 1996-2000 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
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. */
16 /***************************************************************************/
22 #include <freetype/config/ftconfig.h>
23 #include <freetype/internal/ftobjs.h>
24 #include <freetype/internal/t1types.h>
26 #include <freetype/internal/t1errors.h>
33 /* The following structures must be defined by the hinter */
34 typedef struct T1_Size_Hints_ T1_Size_Hints
;
35 typedef struct T1_Glyph_Hints_ T1_Glyph_Hints
;
38 /*************************************************************************/
44 /* A handle to a Type 1 driver object. */
46 typedef struct T1_DriverRec_
* T1_Driver
;
49 /*************************************************************************/
55 /* A handle to a Type 1 size object. */
57 typedef struct T1_SizeRec_
* T1_Size
;
60 /*************************************************************************/
66 /* A handle to a Type 1 glyph slot object. */
68 typedef struct T1_GlyphSlotRec_
* T1_GlyphSlot
;
71 /*************************************************************************/
77 /* A handle to a Type 1 character mapping object. */
80 /* The Type 1 format doesn't use a charmap but an encoding table. */
81 /* The driver is responsible for making up charmap objects */
82 /* corresponding to these tables. */
84 typedef struct T1_CharMapRec_
* T1_CharMap
;
87 /*************************************************************************/
89 /* HERE BEGINS THE TYPE1 SPECIFIC STUFF */
91 /*************************************************************************/
94 /*************************************************************************/
100 /* Type 1 size record. */
102 typedef struct T1_SizeRec_
106 T1_Size_Hints
* hints
; /* defined in the hinter. This allows */
107 /* us to experiment with different */
108 /* hinting schemes without having to */
109 /* change `t1objs' each time. */
113 /*************************************************************************/
116 /* T1_GlyphSlotRec */
119 /* Type 1 glyph slot record. */
121 typedef struct T1_GlyphSlotRec_
123 FT_GlyphSlotRec root
;
134 T1_Glyph_Hints
* hints
; /* defined in the hinter */
140 FT_Error
T1_Init_Face( FT_Stream stream
,
144 FT_Parameter
* params
);
147 void T1_Done_Face( T1_Face face
);
150 FT_Error
T1_Init_Size( T1_Size size
);
153 void T1_Done_Size( T1_Size size
);
156 FT_Error
T1_Reset_Size( T1_Size size
);
159 FT_Error
T1_Init_GlyphSlot( T1_GlyphSlot slot
);
162 void T1_Done_GlyphSlot( T1_GlyphSlot slot
);
169 #endif /* T1OBJS_H */