1 /* 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 31 #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 */ 34 35 #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 40 #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 48 * exactly zero-cost. */ 49 50 /* v--- Add new tables in the right place here. */ 51 52 53 /* OpenType fundamentals. */ 54 HB_OT_CORE_TABLE (OT, head) 55 HB_OT_CORE_TABLE (OT, maxp) 56 #if !defined(HB_NO_FACE_COLLECT_UNICODES) || !defined(HB_NO_OT_FONT) 57 HB_OT_ACCELERATOR (OT, cmap) 58 #endif 59 HB_OT_CORE_TABLE (OT, hhea) 60 HB_OT_ACCELERATOR (OT, hmtx) 61 HB_OT_CORE_TABLE (OT, OS2) 62 #if !defined(HB_NO_OT_FONT_GLYPH_NAMES) || !defined(HB_NO_METRICS) || !defined(HB_NO_STYLE) 63 HB_OT_ACCELERATOR (OT, post) 64 #endif 65 #ifndef HB_NO_NAME 66 HB_OT_ACCELERATOR (OT, name) 67 #endif 68 #ifndef HB_NO_STYLE 69 HB_OT_CORE_TABLE (OT, STAT) 70 #endif 71 #ifndef HB_NO_META 72 HB_OT_ACCELERATOR (OT, meta) 73 #endif 74 75 /* Vertical layout. */ 76 #ifndef HB_NO_VERTICAL 77 HB_OT_CORE_TABLE (OT, vhea) 78 HB_OT_ACCELERATOR (OT, vmtx) 79 HB_OT_CORE_TABLE (OT, VORG) 80 #endif 81 82 /* TrueType outlines. */ 83 HB_OT_CORE_TABLE (OT, loca) // Also used to determine number of glyphs 84 HB_OT_ACCELERATOR (OT, glyf) 85 86 /* CFF outlines. */ 87 #ifndef HB_NO_CFF 88 HB_OT_ACCELERATOR (OT, cff1) 89 HB_OT_ACCELERATOR (OT, cff2) 90 #endif 91 92 /* OpenType variations. */ 93 #ifndef HB_NO_VAR 94 HB_OT_CORE_TABLE (OT, fvar) 95 HB_OT_CORE_TABLE (OT, avar) 96 HB_OT_CORE_TABLE (OT, cvar) 97 HB_OT_ACCELERATOR (OT, gvar) 98 HB_OT_CORE_TABLE (OT, MVAR) 99 #ifndef HB_NO_VAR_COMPOSITES 100 HB_OT_CORE_TABLE (OT, VARC) 101 #endif 102 #endif 103 104 /* Legacy kern. */ 105 #ifndef HB_NO_OT_KERN 106 HB_OT_ACCELERATOR (OT, kern) 107 #endif 108 109 /* OpenType shaping. */ 110 #ifndef HB_NO_OT_LAYOUT 111 HB_OT_ACCELERATOR (OT, GDEF) 112 HB_OT_ACCELERATOR (OT, GSUB) 113 HB_OT_ACCELERATOR (OT, GPOS) 114 //HB_OT_CORE_TABLE (OT, JSTF) 115 #endif 116 117 /* OpenType baseline. */ 118 #ifndef HB_NO_BASE 119 HB_OT_CORE_TABLE (OT, BASE) 120 #endif 121 122 /* AAT shaping. */ 123 #ifndef HB_NO_AAT 124 HB_OT_ACCELERATOR (AAT, morx) 125 HB_OT_ACCELERATOR (AAT, mort) 126 HB_OT_ACCELERATOR (AAT, kerx) 127 HB_OT_TABLE (AAT, ankr) 128 HB_OT_TABLE (AAT, trak) 129 HB_OT_TABLE (AAT, ltag) 130 HB_OT_TABLE (AAT, feat) 131 // HB_OT_TABLE (AAT, opbd) 132 #endif 133 134 /* OpenType color fonts. */ 135 #ifndef HB_NO_COLOR 136 HB_OT_CORE_TABLE (OT, COLR) 137 HB_OT_CORE_TABLE (OT, CPAL) 138 HB_OT_ACCELERATOR (OT, CBDT) 139 HB_OT_ACCELERATOR (OT, sbix) 140 HB_OT_ACCELERATOR (OT, SVG) 141 #endif 142 143 /* OpenType math. */ 144 #ifndef HB_NO_MATH 145 HB_OT_CORE_TABLE (OT, MATH) 146 #endif 147 148 149 #ifdef _HB_OT_ACCELERATOR_UNDEF 150 #undef HB_OT_ACCELERATOR 151 #endif 152 153 #ifdef _HB_OT_CORE_TABLE_UNDEF 154 #undef HB_OT_CORE_TABLE 155 #endif 156