1 /***************************************************************************/ 2 /* */ 3 /* cffotypes.h */ 4 /* */ 5 /* Basic OpenType/CFF object type definitions (specification). */ 6 /* */ 7 /* Copyright 2017-2018 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 CFFOTYPES_H_ 20 #define CFFOTYPES_H_ 21 22 #include <ft2build.h> 23 #include FT_INTERNAL_OBJECTS_H 24 #include FT_INTERNAL_CFF_TYPES_H 25 #include FT_INTERNAL_TRUETYPE_TYPES_H 26 #include FT_SERVICE_POSTSCRIPT_CMAPS_H 27 #include FT_INTERNAL_POSTSCRIPT_HINTS_H 28 29 30 FT_BEGIN_HEADER 31 32 33 typedef TT_Face CFF_Face; 34 35 36 /*************************************************************************/ 37 /* */ 38 /* <Type> */ 39 /* CFF_Size */ 40 /* */ 41 /* <Description> */ 42 /* A handle to an OpenType size object. */ 43 /* */ 44 typedef struct CFF_SizeRec_ 45 { 46 FT_SizeRec root; 47 FT_ULong strike_index; /* 0xFFFFFFFF to indicate invalid */ 48 49 } CFF_SizeRec, *CFF_Size; 50 51 52 /*************************************************************************/ 53 /* */ 54 /* <Type> */ 55 /* CFF_GlyphSlot */ 56 /* */ 57 /* <Description> */ 58 /* A handle to an OpenType glyph slot object. */ 59 /* */ 60 typedef struct CFF_GlyphSlotRec_ 61 { 62 FT_GlyphSlotRec root; 63 64 FT_Bool hint; 65 FT_Bool scaled; 66 67 FT_Fixed x_scale; 68 FT_Fixed y_scale; 69 70 } CFF_GlyphSlotRec, *CFF_GlyphSlot; 71 72 73 /*************************************************************************/ 74 /* */ 75 /* <Type> */ 76 /* CFF_Internal */ 77 /* */ 78 /* <Description> */ 79 /* The interface to the `internal' field of `FT_Size'. */ 80 /* */ 81 typedef struct CFF_InternalRec_ 82 { 83 PSH_Globals topfont; 84 PSH_Globals subfonts[CFF_MAX_CID_FONTS]; 85 86 } CFF_InternalRec, *CFF_Internal; 87 88 89 /*************************************************************************/ 90 /* */ 91 /* Subglyph transformation record. */ 92 /* */ 93 typedef struct CFF_Transform_ 94 { 95 FT_Fixed xx, xy; /* transformation matrix coefficients */ 96 FT_Fixed yx, yy; 97 FT_F26Dot6 ox, oy; /* offsets */ 98 99 } CFF_Transform; 100 101 102 FT_END_HEADER 103 104 105 #endif /* CFFOTYPES_H_ */ 106 107 108 /* END */ 109