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