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_ACCELERATOR (OT, gvar) 97 HB_OT_CORE_TABLE (OT, MVAR) 98 #endif 99 100 /* Legacy kern. */ 101 #ifndef HB_NO_OT_KERN 102 HB_OT_CORE_TABLE (OT, kern) 103 #endif 104 105 /* OpenType shaping. */ 106 #ifndef HB_NO_OT_LAYOUT 107 HB_OT_ACCELERATOR (OT, GDEF) 108 HB_OT_ACCELERATOR (OT, GSUB) 109 HB_OT_ACCELERATOR (OT, GPOS) 110 //HB_OT_CORE_TABLE (OT, JSTF) 111 #endif 112 113 /* OpenType baseline. */ 114 #ifndef HB_NO_BASE 115 HB_OT_CORE_TABLE (OT, BASE) 116 #endif 117 118 /* AAT shaping. */ 119 #ifndef HB_NO_AAT 120 HB_OT_TABLE (AAT, morx) 121 HB_OT_TABLE (AAT, mort) 122 HB_OT_TABLE (AAT, kerx) 123 HB_OT_TABLE (AAT, ankr) 124 HB_OT_TABLE (AAT, trak) 125 HB_OT_TABLE (AAT, ltag) 126 HB_OT_TABLE (AAT, feat) 127 // HB_OT_TABLE (AAT, opbd) 128 #endif 129 130 /* OpenType color fonts. */ 131 #ifndef HB_NO_COLOR 132 HB_OT_CORE_TABLE (OT, COLR) 133 HB_OT_CORE_TABLE (OT, CPAL) 134 HB_OT_ACCELERATOR (OT, CBDT) 135 HB_OT_ACCELERATOR (OT, sbix) 136 HB_OT_ACCELERATOR (OT, SVG) 137 #endif 138 139 /* OpenType math. */ 140 #ifndef HB_NO_MATH 141 HB_OT_CORE_TABLE (OT, MATH) 142 #endif 143 144 145 #ifdef _HB_OT_ACCELERATOR_UNDEF 146 #undef HB_OT_ACCELERATOR 147 #endif 148 149 #ifdef _HB_OT_CORE_TABLE_UNDEF 150 #undef HB_OT_CORE_TABLE 151 #endif 152