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