1 /****************************************************************************
2  *
3  * cffotypes.h
4  *
5  *   Basic OpenType/CFF object type definitions (specification).
6  *
7  * Copyright (C) 2017-2019 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