1 /***************************************************************************/ 2 /* */ 3 /* cffobjs.h */ 4 /* */ 5 /* OpenType objects manager (specification). */ 6 /* */ 7 /* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007, 2008 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 __CFFOBJS_H__ 20 #define __CFFOBJS_H__ 21 22 23 #include <ft2build.h> 24 #include FT_INTERNAL_OBJECTS_H 25 #include "cfftypes.h" 26 #include FT_INTERNAL_TRUETYPE_TYPES_H 27 #include FT_SERVICE_POSTSCRIPT_CMAPS_H 28 #include FT_INTERNAL_POSTSCRIPT_HINTS_H 29 30 31 FT_BEGIN_HEADER 32 33 34 /*************************************************************************/ 35 /* */ 36 /* <Type> */ 37 /* CFF_Driver */ 38 /* */ 39 /* <Description> */ 40 /* A handle to an OpenType driver object. */ 41 /* */ 42 typedef struct CFF_DriverRec_* CFF_Driver; 43 44 typedef TT_Face CFF_Face; 45 46 47 /*************************************************************************/ 48 /* */ 49 /* <Type> */ 50 /* CFF_Size */ 51 /* */ 52 /* <Description> */ 53 /* A handle to an OpenType size object. */ 54 /* */ 55 typedef struct CFF_SizeRec_ 56 { 57 FT_SizeRec root; 58 FT_ULong strike_index; /* 0xFFFFFFFF to indicate invalid */ 59 60 } CFF_SizeRec, *CFF_Size; 61 62 63 /*************************************************************************/ 64 /* */ 65 /* <Type> */ 66 /* CFF_GlyphSlot */ 67 /* */ 68 /* <Description> */ 69 /* A handle to an OpenType glyph slot object. */ 70 /* */ 71 typedef struct CFF_GlyphSlotRec_ 72 { 73 FT_GlyphSlotRec root; 74 75 FT_Bool hint; 76 FT_Bool scaled; 77 78 FT_Fixed x_scale; 79 FT_Fixed y_scale; 80 81 } CFF_GlyphSlotRec, *CFF_GlyphSlot; 82 83 84 /*************************************************************************/ 85 /* */ 86 /* <Type> */ 87 /* CFF_Internal */ 88 /* */ 89 /* <Description> */ 90 /* The interface to the `internal' field of `FT_Size'. */ 91 /* */ 92 typedef struct CFF_InternalRec_ 93 { 94 PSH_Globals topfont; 95 PSH_Globals subfonts[CFF_MAX_CID_FONTS]; 96 97 } CFF_InternalRec, *CFF_Internal; 98 99 100 /*************************************************************************/ 101 /* */ 102 /* Subglyph transformation record. */ 103 /* */ 104 typedef struct CFF_Transform_ 105 { 106 FT_Fixed xx, xy; /* transformation matrix coefficients */ 107 FT_Fixed yx, yy; 108 FT_F26Dot6 ox, oy; /* offsets */ 109 110 } CFF_Transform; 111 112 113 /***********************************************************************/ 114 /* */ 115 /* TrueType driver class. */ 116 /* */ 117 typedef struct CFF_DriverRec_ 118 { 119 FT_DriverRec root; 120 void* extension_component; 121 122 } CFF_DriverRec; 123 124 125 FT_LOCAL( FT_Error ) 126 cff_size_init( FT_Size size ); /* CFF_Size */ 127 128 FT_LOCAL( void ) 129 cff_size_done( FT_Size size ); /* CFF_Size */ 130 131 FT_LOCAL( FT_Error ) 132 cff_size_request( FT_Size size, 133 FT_Size_Request req ); 134 135 #ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS 136 137 FT_LOCAL( FT_Error ) 138 cff_size_select( FT_Size size, 139 FT_ULong strike_index ); 140 141 #endif 142 143 FT_LOCAL( void ) 144 cff_slot_done( FT_GlyphSlot slot ); 145 146 FT_LOCAL( FT_Error ) 147 cff_slot_init( FT_GlyphSlot slot ); 148 149 150 /*************************************************************************/ 151 /* */ 152 /* Face functions */ 153 /* */ 154 FT_LOCAL( FT_Error ) 155 cff_face_init( FT_Stream stream, 156 FT_Face face, /* CFF_Face */ 157 FT_Int face_index, 158 FT_Int num_params, 159 FT_Parameter* params ); 160 161 FT_LOCAL( void ) 162 cff_face_done( FT_Face face ); /* CFF_Face */ 163 164 165 /*************************************************************************/ 166 /* */ 167 /* Driver functions */ 168 /* */ 169 FT_LOCAL( FT_Error ) 170 cff_driver_init( FT_Module module ); 171 172 FT_LOCAL( void ) 173 cff_driver_done( FT_Module module ); 174 175 176 FT_END_HEADER 177 178 #endif /* __CFFOBJS_H__ */ 179 180 181 /* END */ 182