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
30FT_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
102FT_END_HEADER
103
104
105#endif /* CFFOTYPES_H_ */
106
107
108/* END */
109