blob: c05034b3bb5ae167ed5af9bb6418f21bd4f638f3 [file] [log] [blame]
Behdad Esfahbod631da9d2019-06-19 15:36:14 -07001/*
2 * Copyright © 2007,2008,2009 Red Hat, Inc.
3 * Copyright © 2012,2013 Google, Inc.
4 * Copyright © 2019, Facebook Inc.
5 *
6 * This is part of HarfBuzz, a text shaping library.
7 *
8 * Permission is hereby granted, without written agreement and without
9 * license or royalty fees, to use, copy, modify, and distribute this
10 * software and its documentation for any purpose, provided that the
11 * above copyright notice and the following two paragraphs appear in
12 * all copies of this software.
13 *
14 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
15 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
16 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
17 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
18 * DAMAGE.
19 *
20 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
21 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
22 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
23 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
24 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
25 *
26 * Red Hat Author(s): Behdad Esfahbod
27 * Google Author(s): Behdad Esfahbod
28 * Facebook Author(s): Behdad Esfahbod
29 */
30
Behdad Esfahbod2e3e9292019-06-19 15:50:13 -070031#ifndef HB_OT_FACE_TABLE_LIST_HH
32#define HB_OT_FACE_TABLE_LIST_HH
33#endif /* HB_OT_FACE_TABLE_LIST_HH */ /* Dummy header guards */
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070034
Behdad Esfahbod2a430792022-02-15 17:33:52 -060035#ifndef HB_OT_CORE_TABLE
36#define HB_OT_CORE_TABLE(Namespace, Type) HB_OT_TABLE (Namespace, Type)
37#define _HB_OT_CORE_TABLE_UNDEF
38#endif
39
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070040#ifndef HB_OT_ACCELERATOR
41#define HB_OT_ACCELERATOR(Namespace, Type) HB_OT_TABLE (Namespace, Type)
42#define _HB_OT_ACCELERATOR_UNDEF
43#endif
44
45
46/* This lists font tables that the hb_face_t will contain and lazily
47 * load. Don't add a table unless it's used though. This is not
Behdad Esfahbodbb48bf52021-07-08 10:53:45 -060048 * exactly zero-cost. */
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070049
50/* v--- Add new tables in the right place here. */
51
52
53/* OpenType fundamentals. */
Behdad Esfahbod2a430792022-02-15 17:33:52 -060054HB_OT_CORE_TABLE (OT, head)
55HB_OT_CORE_TABLE (OT, maxp)
Behdad Esfahbod27de7c42019-06-19 20:07:02 -070056#if !defined(HB_NO_FACE_COLLECT_UNICODES) || !defined(HB_NO_OT_FONT)
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070057HB_OT_ACCELERATOR (OT, cmap)
Behdad Esfahbod27de7c42019-06-19 20:07:02 -070058#endif
Ebrahim Byagowi87e62842018-11-20 23:26:46 +033059HB_OT_TABLE (OT, hhea)
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070060HB_OT_ACCELERATOR (OT, hmtx)
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070061HB_OT_TABLE (OT, OS2)
Ebrahim Byagowi22037492019-08-04 11:31:31 +043062#if !defined(HB_NO_OT_FONT_GLYPH_NAMES) || !defined(HB_NO_METRICS) || !defined(HB_NO_STYLE)
Behdad Esfahbod230adf22019-06-19 18:49:52 -070063HB_OT_ACCELERATOR (OT, post)
Ebrahim Byagowiac3518a2019-07-20 14:03:36 +043064#endif
Behdad Esfahbodffc2b8d2019-06-19 18:33:29 -070065#ifndef HB_NO_NAME
66HB_OT_ACCELERATOR (OT, name)
67#endif
Ebrahim Byagowi22037492019-08-04 11:31:31 +043068#ifndef HB_NO_STYLE
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070069HB_OT_TABLE (OT, STAT)
Behdad Esfahboda5897462019-06-19 18:36:35 -070070#endif
Ebrahim Byagowi3ac03bd2019-07-22 23:35:08 +043071#ifndef HB_NO_META
72HB_OT_ACCELERATOR (OT, meta)
73#endif
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070074
75/* Vertical layout. */
Behdad Esfahbod53eebc72021-12-08 08:32:41 -080076#ifndef HB_NO_VERTICAL
Ebrahim Byagowi87e62842018-11-20 23:26:46 +033077HB_OT_TABLE (OT, vhea)
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070078HB_OT_ACCELERATOR (OT, vmtx)
Behdad Esfahbod9bc5d292021-12-08 08:16:17 -080079HB_OT_TABLE (OT, VORG)
Behdad Esfahbod53eebc72021-12-08 08:32:41 -080080#endif
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070081
82/* TrueType outlines. */
Behdad Esfahbodc8fd8c12022-02-15 18:02:53 -060083HB_OT_CORE_TABLE (OT, loca) // Also used to determine number of glyphs
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070084HB_OT_ACCELERATOR (OT, glyf)
85
86/* CFF outlines. */
87#ifndef HB_NO_CFF
88HB_OT_ACCELERATOR (OT, cff1)
89HB_OT_ACCELERATOR (OT, cff2)
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070090#endif
91
92/* OpenType variations. */
Behdad Esfahboda8498732019-06-19 19:26:22 -070093#ifndef HB_NO_VAR
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070094HB_OT_TABLE (OT, fvar)
95HB_OT_TABLE (OT, avar)
Ebrahim Byagowib3afa812019-10-04 00:32:04 +033096HB_OT_ACCELERATOR (OT, gvar)
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070097HB_OT_TABLE (OT, MVAR)
Behdad Esfahboda8498732019-06-19 19:26:22 -070098#endif
Behdad Esfahbod631da9d2019-06-19 15:36:14 -070099
Behdad Esfahbod588697a2019-06-19 16:24:51 -0700100/* Legacy kern. */
101#ifndef HB_NO_OT_KERN
102HB_OT_TABLE (OT, kern)
103#endif
104
Behdad Esfahbod631da9d2019-06-19 15:36:14 -0700105/* OpenType shaping. */
Behdad Esfahbod7dcf8e12019-06-26 13:44:10 -0700106#ifndef HB_NO_OT_LAYOUT
Behdad Esfahbod631da9d2019-06-19 15:36:14 -0700107HB_OT_ACCELERATOR (OT, GDEF)
108HB_OT_ACCELERATOR (OT, GSUB)
109HB_OT_ACCELERATOR (OT, GPOS)
Behdad Esfahbod631da9d2019-06-19 15:36:14 -0700110//HB_OT_TABLE (OT, JSTF)
Behdad Esfahbod7dcf8e12019-06-26 13:44:10 -0700111#endif
Behdad Esfahbod631da9d2019-06-19 15:36:14 -0700112
Ebrahim Byagowi9f2b4952019-07-30 04:42:51 +0430113/* OpenType baseline. */
114#ifndef HB_NO_BASE
115HB_OT_TABLE (OT, BASE)
116#endif
117
Behdad Esfahbod631da9d2019-06-19 15:36:14 -0700118/* AAT shaping. */
119#ifndef HB_NO_AAT
120HB_OT_TABLE (AAT, morx)
121HB_OT_TABLE (AAT, mort)
122HB_OT_TABLE (AAT, kerx)
123HB_OT_TABLE (AAT, ankr)
124HB_OT_TABLE (AAT, trak)
Behdad Esfahbod631da9d2019-06-19 15:36:14 -0700125HB_OT_TABLE (AAT, ltag)
126HB_OT_TABLE (AAT, feat)
Ebrahim Byagowi60d9f002019-08-11 16:15:19 +0430127// HB_OT_TABLE (AAT, opbd)
Behdad Esfahbod631da9d2019-06-19 15:36:14 -0700128#endif
129
130/* OpenType color fonts. */
131#ifndef HB_NO_COLOR
132HB_OT_TABLE (OT, COLR)
133HB_OT_TABLE (OT, CPAL)
134HB_OT_ACCELERATOR (OT, CBDT)
135HB_OT_ACCELERATOR (OT, sbix)
136HB_OT_ACCELERATOR (OT, SVG)
137#endif
138
139/* OpenType math. */
140#ifndef HB_NO_MATH
141HB_OT_TABLE (OT, MATH)
142#endif
143
144
145#ifdef _HB_OT_ACCELERATOR_UNDEF
146#undef HB_OT_ACCELERATOR
147#endif
Behdad Esfahbod2a430792022-02-15 17:33:52 -0600148
149#ifdef _HB_OT_CORE_TABLE_UNDEF
150#undef HB_OT_CORE_TABLE
151#endif