00001 /***************************************************************************/ 00002 /* */ 00003 /* cidobjs.h */ 00004 /* */ 00005 /* CID objects manager (specification). */ 00006 /* */ 00007 /* Copyright 1996-2001, 2002, 2004, 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 __CIDOBJS_H__ 00020 #define __CIDOBJS_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 CID_Size_Hints_ CID_Size_Hints; 00034 typedef struct CID_Glyph_Hints_ CID_Glyph_Hints; 00035 00036 00037 /*************************************************************************/ 00038 /* */ 00039 /* <Type> */ 00040 /* CID_Driver */ 00041 /* */ 00042 /* <Description> */ 00043 /* A handle to a Type 1 driver object. */ 00044 /* */ 00045 typedef struct CID_DriverRec_* CID_Driver; 00046 00047 00048 /*************************************************************************/ 00049 /* */ 00050 /* <Type> */ 00051 /* CID_Size */ 00052 /* */ 00053 /* <Description> */ 00054 /* A handle to a Type 1 size object. */ 00055 /* */ 00056 typedef struct CID_SizeRec_* CID_Size; 00057 00058 00059 /*************************************************************************/ 00060 /* */ 00061 /* <Type> */ 00062 /* CID_GlyphSlot */ 00063 /* */ 00064 /* <Description> */ 00065 /* A handle to a Type 1 glyph slot object. */ 00066 /* */ 00067 typedef struct CID_GlyphSlotRec_* CID_GlyphSlot; 00068 00069 00070 /*************************************************************************/ 00071 /* */ 00072 /* <Type> */ 00073 /* CID_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 CID_CharMapRec_* CID_CharMap; 00084 00085 00086 /*************************************************************************/ 00087 /* */ 00088 /* HERE BEGINS THE TYPE 1 SPECIFIC STUFF */ 00089 /* */ 00090 /*************************************************************************/ 00091 00092 00093 typedef struct CID_SizeRec_ 00094 { 00095 FT_SizeRec root; 00096 FT_Bool valid; 00097 00098 } CID_SizeRec; 00099 00100 00101 typedef struct CID_GlyphSlotRec_ 00102 { 00103 FT_GlyphSlotRec root; 00104 00105 FT_Bool hint; 00106 FT_Bool scaled; 00107 00108 FT_Fixed x_scale; 00109 FT_Fixed y_scale; 00110 00111 } CID_GlyphSlotRec; 00112 00113 00114 FT_LOCAL( void ) 00115 cid_slot_done( FT_GlyphSlot slot ); 00116 00117 FT_LOCAL( FT_Error ) 00118 cid_slot_init( FT_GlyphSlot slot ); 00119 00120 00121 FT_LOCAL( void ) 00122 cid_size_done( FT_Size size ); /* CID_Size */ 00123 00124 FT_LOCAL( FT_Error ) 00125 cid_size_init( FT_Size size ); /* CID_Size */ 00126 00127 FT_LOCAL( FT_Error ) 00128 cid_size_request( FT_Size size, /* CID_Size */ 00129 FT_Size_Request req ); 00130 00131 FT_LOCAL( FT_Error ) 00132 cid_face_init( FT_Stream stream, 00133 FT_Face face, /* CID_Face */ 00134 FT_Int face_index, 00135 FT_Int num_params, 00136 FT_Parameter* params ); 00137 00138 FT_LOCAL( void ) 00139 cid_face_done( FT_Face face ); /* CID_Face */ 00140 00141 00142 FT_LOCAL( FT_Error ) 00143 cid_driver_init( FT_Module driver ); 00144 00145 FT_LOCAL( void ) 00146 cid_driver_done( FT_Module driver ); 00147 00148 00149 FT_END_HEADER 00150 00151 #endif /* __CIDOBJS_H__ */ 00152 00153 00154 /* END */