1 /***************************************************************************/ 2 /* */ 3 /* cidobjs.h */ 4 /* */ 5 /* CID objects manager (specification). */ 6 /* */ 7 /* Copyright 1996-2018 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 CIDOBJS_H_ 20 #define CIDOBJS_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 CID_Size_Hints_ CID_Size_Hints; 34 typedef struct CID_Glyph_Hints_ CID_Glyph_Hints; 35 36 37 /*************************************************************************/ 38 /* */ 39 /* <Type> */ 40 /* CID_Driver */ 41 /* */ 42 /* <Description> */ 43 /* A handle to a Type 1 driver object. */ 44 /* */ 45 typedef struct CID_DriverRec_* CID_Driver; 46 47 48 /*************************************************************************/ 49 /* */ 50 /* <Type> */ 51 /* CID_Size */ 52 /* */ 53 /* <Description> */ 54 /* A handle to a Type 1 size object. */ 55 /* */ 56 typedef struct CID_SizeRec_* CID_Size; 57 58 59 /*************************************************************************/ 60 /* */ 61 /* <Type> */ 62 /* CID_GlyphSlot */ 63 /* */ 64 /* <Description> */ 65 /* A handle to a Type 1 glyph slot object. */ 66 /* */ 67 typedef struct CID_GlyphSlotRec_* CID_GlyphSlot; 68 69 70 /*************************************************************************/ 71 /* */ 72 /* <Type> */ 73 /* CID_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 CID_CharMapRec_* CID_CharMap; 84 85 86 /*************************************************************************/ 87 /* */ 88 /* HERE BEGINS THE TYPE 1 SPECIFIC STUFF */ 89 /* */ 90 /*************************************************************************/ 91 92 93 typedef struct CID_SizeRec_ 94 { 95 FT_SizeRec root; 96 FT_Bool valid; 97 98 } CID_SizeRec; 99 100 101 typedef struct CID_GlyphSlotRec_ 102 { 103 FT_GlyphSlotRec root; 104 105 FT_Bool hint; 106 FT_Bool scaled; 107 108 FT_Fixed x_scale; 109 FT_Fixed y_scale; 110 111 } CID_GlyphSlotRec; 112 113 114 FT_LOCAL( void ) 115 cid_slot_done( FT_GlyphSlot slot ); 116 117 FT_LOCAL( FT_Error ) 118 cid_slot_init( FT_GlyphSlot slot ); 119 120 121 FT_LOCAL( void ) 122 cid_size_done( FT_Size size ); /* CID_Size */ 123 124 FT_LOCAL( FT_Error ) 125 cid_size_init( FT_Size size ); /* CID_Size */ 126 127 FT_LOCAL( FT_Error ) 128 cid_size_request( FT_Size size, /* CID_Size */ 129 FT_Size_Request req ); 130 131 FT_LOCAL( FT_Error ) 132 cid_face_init( FT_Stream stream, 133 FT_Face face, /* CID_Face */ 134 FT_Int face_index, 135 FT_Int num_params, 136 FT_Parameter* params ); 137 138 FT_LOCAL( void ) 139 cid_face_done( FT_Face face ); /* CID_Face */ 140 141 142 FT_LOCAL( FT_Error ) 143 cid_driver_init( FT_Module driver ); 144 145 FT_LOCAL( void ) 146 cid_driver_done( FT_Module driver ); 147 148 149 FT_END_HEADER 150 151 #endif /* CIDOBJS_H_ */ 152 153 154 /* END */ 155