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