1 /***************************************************************************/ 2 /* */ 3 /* t1objs.h */ 4 /* */ 5 /* Type 1 objects manager (specification). */ 6 /* */ 7 /* Copyright 1996-2001, 2002 by */ 8 /* 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 18 19 #ifndef __T1OBJS_H__ 20 #define __T1OBJS_H__ 21 22 23 #include <ft2build.h> 24 #include FT_INTERNAL_OBJECTS_H 25 #include FT_CONFIG_CONFIG_H 26 #include FT_INTERNAL_TYPE1_TYPES_H 27 28 29 FT_BEGIN_HEADER 30 31 32 /* The following structures must be defined by the hinter */ 33 typedef struct T1_Size_Hints_ T1_Size_Hints; 34 typedef struct T1_Glyph_Hints_ T1_Glyph_Hints; 35 36 37 /*************************************************************************/ 38 /* */ 39 /* <Type> */ 40 /* T1_Driver */ 41 /* */ 42 /* <Description> */ 43 /* A handle to a Type 1 driver object. */ 44 /* */ 45 typedef struct T1_DriverRec_ *T1_Driver; 46 47 48 /*************************************************************************/ 49 /* */ 50 /* <Type> */ 51 /* T1_Size */ 52 /* */ 53 /* <Description> */ 54 /* A handle to a Type 1 size object. */ 55 /* */ 56 typedef struct T1_SizeRec_* T1_Size; 57 58 59 /*************************************************************************/ 60 /* */ 61 /* <Type> */ 62 /* T1_GlyphSlot */ 63 /* */ 64 /* <Description> */ 65 /* A handle to a Type 1 glyph slot object. */ 66 /* */ 67 typedef struct T1_GlyphSlotRec_* T1_GlyphSlot; 68 69 70 /*************************************************************************/ 71 /* */ 72 /* <Type> */ 73 /* T1_CharMap */ 74 /* */ 75 /* <Description> */ 76 /* A handle to a Type 1 character mapping object. */ 77 /* */ 78 /* <Note> */ 79 /* The Type 1 format doesn't use a charmap but an encoding table. */ 80 /* The driver is responsible for making up charmap objects */ 81 /* corresponding to these tables. */ 82 /* */ 83 typedef struct T1_CharMapRec_* T1_CharMap; 84 85 86 /*************************************************************************/ 87 /* */ 88 /* HERE BEGINS THE TYPE1 SPECIFIC STUFF */ 89 /* */ 90 /*************************************************************************/ 91 92 93 /*************************************************************************/ 94 /* */ 95 /* <Type> */ 96 /* T1_SizeRec */ 97 /* */ 98 /* <Description> */ 99 /* Type 1 size record. */ 100 /* */ 101 typedef struct T1_SizeRec_ 102 { 103 FT_SizeRec root; 104 105 } T1_SizeRec; 106 107 108 FT_LOCAL( void ) 109 T1_Size_Done( T1_Size size ); 110 111 FT_LOCAL( FT_Error ) 112 T1_Size_Reset( T1_Size size ); 113 114 FT_LOCAL( FT_Error ) 115 T1_Size_Init( T1_Size size ); 116 117 118 /*************************************************************************/ 119 /* */ 120 /* <Type> */ 121 /* T1_GlyphSlotRec */ 122 /* */ 123 /* <Description> */ 124 /* Type 1 glyph slot record. */ 125 /* */ 126 typedef struct T1_GlyphSlotRec_ 127 { 128 FT_GlyphSlotRec root; 129 130 FT_Bool hint; 131 FT_Bool scaled; 132 133 FT_Int max_points; 134 FT_Int max_contours; 135 136 FT_Fixed x_scale; 137 FT_Fixed y_scale; 138 139 } T1_GlyphSlotRec; 140 141 142 FT_LOCAL( FT_Error ) 143 T1_Face_Init( FT_Stream stream, 144 T1_Face face, 145 FT_Int face_index, 146 FT_Int num_params, 147 FT_Parameter* params ); 148 149 FT_LOCAL( void ) 150 T1_Face_Done( T1_Face face ); 151 152 FT_LOCAL( FT_Error ) 153 T1_GlyphSlot_Init( T1_GlyphSlot slot ); 154 155 FT_LOCAL( void ) 156 T1_GlyphSlot_Done( T1_GlyphSlot slot ); 157 158 FT_LOCAL( FT_Error ) 159 T1_Driver_Init( T1_Driver driver ); 160 161 FT_LOCAL( void ) 162 T1_Driver_Done( T1_Driver driver ); 163 164 165 FT_END_HEADER 166 167 #endif /* __T1OBJS_H__ */ 168 169 170 /* END */ 171