00001 /***************************************************************************/ 00002 /* */ 00003 /* t1objs.h */ 00004 /* */ 00005 /* Type 1 objects manager (specification). */ 00006 /* */ 00007 /* Copyright 1996-2001, 2002, 2006 by */ 00008 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 00009 /* */ 00010 /* This file is part of the FreeType project, and may only be used, */ 00011 /* modified, and distributed under the terms of the FreeType project */ 00012 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 00013 /* this file you indicate that you have read the license and */ 00014 /* understand and accept it fully. */ 00015 /* */ 00016 /***************************************************************************/ 00017 00018 00019 #ifndef __T1OBJS_H__ 00020 #define __T1OBJS_H__ 00021 00022 00023 #include <ft2build.h> 00024 #include FT_INTERNAL_OBJECTS_H 00025 #include FT_CONFIG_CONFIG_H 00026 #include FT_INTERNAL_TYPE1_TYPES_H 00027 00028 00029 FT_BEGIN_HEADER 00030 00031 00032 /* The following structures must be defined by the hinter */ 00033 typedef struct T1_Size_Hints_ T1_Size_Hints; 00034 typedef struct T1_Glyph_Hints_ T1_Glyph_Hints; 00035 00036 00037 /*************************************************************************/ 00038 /* */ 00039 /* <Type> */ 00040 /* T1_Driver */ 00041 /* */ 00042 /* <Description> */ 00043 /* A handle to a Type 1 driver object. */ 00044 /* */ 00045 typedef struct T1_DriverRec_ *T1_Driver; 00046 00047 00048 /*************************************************************************/ 00049 /* */ 00050 /* <Type> */ 00051 /* T1_Size */ 00052 /* */ 00053 /* <Description> */ 00054 /* A handle to a Type 1 size object. */ 00055 /* */ 00056 typedef struct T1_SizeRec_* T1_Size; 00057 00058 00059 /*************************************************************************/ 00060 /* */ 00061 /* <Type> */ 00062 /* T1_GlyphSlot */ 00063 /* */ 00064 /* <Description> */ 00065 /* A handle to a Type 1 glyph slot object. */ 00066 /* */ 00067 typedef struct T1_GlyphSlotRec_* T1_GlyphSlot; 00068 00069 00070 /*************************************************************************/ 00071 /* */ 00072 /* <Type> */ 00073 /* T1_CharMap */ 00074 /* */ 00075 /* <Description> */ 00076 /* A handle to a Type 1 character mapping object. */ 00077 /* */ 00078 /* <Note> */ 00079 /* The Type 1 format doesn't use a charmap but an encoding table. */ 00080 /* The driver is responsible for making up charmap objects */ 00081 /* corresponding to these tables. */ 00082 /* */ 00083 typedef struct T1_CharMapRec_* T1_CharMap; 00084 00085 00086 /*************************************************************************/ 00087 /* */ 00088 /* HERE BEGINS THE TYPE1 SPECIFIC STUFF */ 00089 /* */ 00090 /*************************************************************************/ 00091 00092 00093 /*************************************************************************/ 00094 /* */ 00095 /* <Type> */ 00096 /* T1_SizeRec */ 00097 /* */ 00098 /* <Description> */ 00099 /* Type 1 size record. */ 00100 /* */ 00101 typedef struct T1_SizeRec_ 00102 { 00103 FT_SizeRec root; 00104 00105 } T1_SizeRec; 00106 00107 00108 FT_LOCAL( void ) 00109 T1_Size_Done( T1_Size size ); 00110 00111 FT_LOCAL( FT_Error ) 00112 T1_Size_Request( T1_Size size, 00113 FT_Size_Request req ); 00114 00115 FT_LOCAL( FT_Error ) 00116 T1_Size_Init( T1_Size size ); 00117 00118 00119 /*************************************************************************/ 00120 /* */ 00121 /* <Type> */ 00122 /* T1_GlyphSlotRec */ 00123 /* */ 00124 /* <Description> */ 00125 /* Type 1 glyph slot record. */ 00126 /* */ 00127 typedef struct T1_GlyphSlotRec_ 00128 { 00129 FT_GlyphSlotRec root; 00130 00131 FT_Bool hint; 00132 FT_Bool scaled; 00133 00134 FT_Int max_points; 00135 FT_Int max_contours; 00136 00137 FT_Fixed x_scale; 00138 FT_Fixed y_scale; 00139 00140 } T1_GlyphSlotRec; 00141 00142 00143 FT_LOCAL( FT_Error ) 00144 T1_Face_Init( FT_Stream stream, 00145 T1_Face face, 00146 FT_Int face_index, 00147 FT_Int num_params, 00148 FT_Parameter* params ); 00149 00150 FT_LOCAL( void ) 00151 T1_Face_Done( T1_Face face ); 00152 00153 FT_LOCAL( FT_Error ) 00154 T1_GlyphSlot_Init( T1_GlyphSlot slot ); 00155 00156 FT_LOCAL( void ) 00157 T1_GlyphSlot_Done( T1_GlyphSlot slot ); 00158 00159 FT_LOCAL( FT_Error ) 00160 T1_Driver_Init( T1_Driver driver ); 00161 00162 FT_LOCAL( void ) 00163 T1_Driver_Done( T1_Driver driver ); 00164 00165 00166 FT_END_HEADER 00167 00168 #endif /* __T1OBJS_H__ */ 00169 00170 00171 /* END */