1 /**************************************************************************** 2 * 3 * t1objs.h 4 * 5 * Type 1 objects manager (specification). 6 * 7 * Copyright (C) 1996-2020 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 <freetype/internal/ftobjs.h> 25 #include FT_CONFIG_CONFIG_H 26 #include <freetype/internal/t1types.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_Size 41 * 42 * @Description: 43 * A handle to a Type 1 size object. 44 */ 45 typedef struct T1_SizeRec_* T1_Size; 46 47 48 /************************************************************************** 49 * 50 * @Type: 51 * T1_GlyphSlot 52 * 53 * @Description: 54 * A handle to a Type 1 glyph slot object. 55 */ 56 typedef struct T1_GlyphSlotRec_* T1_GlyphSlot; 57 58 59 /************************************************************************** 60 * 61 * @Type: 62 * T1_CharMap 63 * 64 * @Description: 65 * A handle to a Type 1 character mapping object. 66 * 67 * @Note: 68 * The Type 1 format doesn't use a charmap but an encoding table. 69 * The driver is responsible for making up charmap objects 70 * corresponding to these tables. 71 */ 72 typedef struct T1_CharMapRec_* T1_CharMap; 73 74 75 /************************************************************************** 76 * 77 * HERE BEGINS THE TYPE1 SPECIFIC STUFF 78 * 79 */ 80 81 82 /************************************************************************** 83 * 84 * @Type: 85 * T1_SizeRec 86 * 87 * @Description: 88 * Type 1 size record. 89 */ 90 typedef struct T1_SizeRec_ 91 { 92 FT_SizeRec root; 93 94 } T1_SizeRec; 95 96 97 FT_LOCAL( void ) 98 T1_Size_Done( FT_Size size ); 99 100 FT_LOCAL( FT_Error ) 101 T1_Size_Request( FT_Size size, 102 FT_Size_Request req ); 103 104 FT_LOCAL( FT_Error ) 105 T1_Size_Init( FT_Size size ); 106 107 108 /************************************************************************** 109 * 110 * @Type: 111 * T1_GlyphSlotRec 112 * 113 * @Description: 114 * Type 1 glyph slot record. 115 */ 116 typedef struct T1_GlyphSlotRec_ 117 { 118 FT_GlyphSlotRec root; 119 120 FT_Bool hint; 121 FT_Bool scaled; 122 123 FT_Fixed x_scale; 124 FT_Fixed y_scale; 125 126 FT_Int max_points; 127 FT_Int max_contours; 128 129 } T1_GlyphSlotRec; 130 131 132 FT_LOCAL( FT_Error ) 133 T1_Face_Init( FT_Stream stream, 134 FT_Face face, 135 FT_Int face_index, 136 FT_Int num_params, 137 FT_Parameter* params ); 138 139 FT_LOCAL( void ) 140 T1_Face_Done( FT_Face face ); 141 142 FT_LOCAL( FT_Error ) 143 T1_GlyphSlot_Init( FT_GlyphSlot slot ); 144 145 FT_LOCAL( void ) 146 T1_GlyphSlot_Done( FT_GlyphSlot slot ); 147 148 FT_LOCAL( FT_Error ) 149 T1_Driver_Init( FT_Module driver ); 150 151 FT_LOCAL( void ) 152 T1_Driver_Done( FT_Module driver ); 153 154 155 FT_END_HEADER 156 157 #endif /* T1OBJS_H_ */ 158 159 160 /* END */ 161