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