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