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