aa82c88cf954eae2a091cee6829829d275623a60
[platform/upstream/harfbuzz.git] / src / hb-aat-fmtx-table.hh
1 /*
2  * Copyright © 2018  Ebrahim Byagowi
3  *
4  *  This is part of HarfBuzz, a text shaping library.
5  *
6  * Permission is hereby granted, without written agreement and without
7  * license or royalty fees, to use, copy, modify, and distribute this
8  * software and its documentation for any purpose, provided that the
9  * above copyright notice and the following two paragraphs appear in
10  * all copies of this software.
11  *
12  * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
13  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
14  * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
15  * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
16  * DAMAGE.
17  *
18  * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
19  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20  * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
21  * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
22  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
23  */
24
25 #ifndef HB_AAT_FMTX_TABLE_HH
26 #define HB_AAT_FMTX_TABLE_HH
27
28 #include "hb-aat-layout-common-private.hh"
29
30 /*
31  * fmtx -- Font Metrics
32  * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6fmtx.html
33  */
34 #define HB_AAT_TAG_fmtx HB_TAG('f','m','t','x')
35
36
37 namespace AAT {
38
39
40 struct fmtx
41 {
42   static const hb_tag_t tableTag = HB_AAT_TAG_fmtx;
43
44   inline bool sanitize (hb_sanitize_context_t *c) const
45   {
46     TRACE_SANITIZE (this);
47     return_trace (likely (c->check_struct (this)));
48   }
49
50   FixedVersion<>version;                /* Version (set to 0x00020000). */
51   HBUINT32      glyphIndex;             /* The glyph whose points represent the metrics. */
52   HBUINT8       horizontalBefore;       /* Point number for the horizontal ascent. */
53   HBUINT8       horizontalAfter;        /* Point number for the horizontal descent. */
54   HBUINT8       horizontalCaretHead;    /* Point number for the horizontal caret head. */
55   HBUINT8       horizontalCaretBase;    /* Point number for the horizontal caret base. */
56   HBUINT8       verticalBefore;         /* Point number for the vertical ascent. */
57   HBUINT8       verticalAfter;          /* Point number for the vertical descent. */
58   HBUINT8       verticalCaretHead;      /* Point number for the vertical caret head. */
59   HBUINT8       verticalCaretBase;      /* Point number for the vertical caret base. */
60   public:
61   DEFINE_SIZE_STATIC (16);
62 };
63
64 } /* namespace AAT */
65
66
67 #endif /* HB_AAT_FMTX_TABLE_HH */