1 /* 2 * Copyright © 2022 Google, Inc. 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 * Google Author(s): Garret Rieger 25 */ 26 27 #include "graph.hh" 28 #include "../hb-ot-layout-gsubgpos.hh" 29 30 #ifndef GRAPH_GSUBGPOS_CONTEXT_HH 31 #define GRAPH_GSUBGPOS_CONTEXT_HH 32 33 namespace graph { 34 35 struct Lookup; 36 37 struct gsubgpos_graph_context_t 38 { 39 hb_tag_t table_tag; 40 graph_t& graph; 41 unsigned lookup_list_index; 42 hb_hashmap_t<unsigned, graph::Lookup*> lookups; 43 44 45 HB_INTERNAL gsubgpos_graph_context_t (hb_tag_t table_tag_, 46 graph_t& graph_); 47 48 HB_INTERNAL unsigned create_node (unsigned size); 49 add_buffergraph::gsubgpos_graph_context_t50 void add_buffer (char* buffer) 51 { 52 graph.add_buffer (buffer); 53 } 54 55 private: 56 HB_INTERNAL unsigned num_non_ext_subtables (); 57 }; 58 59 } 60 61 #endif // GRAPH_GSUBGPOS_CONTEXT 62