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