a316fd1f302e7584be138b8c3f9e176925591ee9
[platform/upstream/freetype2.git] / include / freetype / internal / cffotypes.h
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 */