1*2d1272b8SAndroid Build Coastguard Worker /* 2*2d1272b8SAndroid Build Coastguard Worker * Copyright © 2022 Google, Inc. 3*2d1272b8SAndroid Build Coastguard Worker * 4*2d1272b8SAndroid Build Coastguard Worker * This is part of HarfBuzz, a text shaping library. 5*2d1272b8SAndroid Build Coastguard Worker * 6*2d1272b8SAndroid Build Coastguard Worker * Permission is hereby granted, without written agreement and without 7*2d1272b8SAndroid Build Coastguard Worker * license or royalty fees, to use, copy, modify, and distribute this 8*2d1272b8SAndroid Build Coastguard Worker * software and its documentation for any purpose, provided that the 9*2d1272b8SAndroid Build Coastguard Worker * above copyright notice and the following two paragraphs appear in 10*2d1272b8SAndroid Build Coastguard Worker * all copies of this software. 11*2d1272b8SAndroid Build Coastguard Worker * 12*2d1272b8SAndroid Build Coastguard Worker * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR 13*2d1272b8SAndroid Build Coastguard Worker * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 14*2d1272b8SAndroid Build Coastguard Worker * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN 15*2d1272b8SAndroid Build Coastguard Worker * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 16*2d1272b8SAndroid Build Coastguard Worker * DAMAGE. 17*2d1272b8SAndroid Build Coastguard Worker * 18*2d1272b8SAndroid Build Coastguard Worker * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, 19*2d1272b8SAndroid Build Coastguard Worker * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 20*2d1272b8SAndroid Build Coastguard Worker * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 21*2d1272b8SAndroid Build Coastguard Worker * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO 22*2d1272b8SAndroid Build Coastguard Worker * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 23*2d1272b8SAndroid Build Coastguard Worker * 24*2d1272b8SAndroid Build Coastguard Worker * Google Author(s): Garret Rieger 25*2d1272b8SAndroid Build Coastguard Worker */ 26*2d1272b8SAndroid Build Coastguard Worker 27*2d1272b8SAndroid Build Coastguard Worker #include "graph.hh" 28*2d1272b8SAndroid Build Coastguard Worker #include "../hb-ot-layout-gsubgpos.hh" 29*2d1272b8SAndroid Build Coastguard Worker 30*2d1272b8SAndroid Build Coastguard Worker #ifndef GRAPH_GSUBGPOS_CONTEXT_HH 31*2d1272b8SAndroid Build Coastguard Worker #define GRAPH_GSUBGPOS_CONTEXT_HH 32*2d1272b8SAndroid Build Coastguard Worker 33*2d1272b8SAndroid Build Coastguard Worker namespace graph { 34*2d1272b8SAndroid Build Coastguard Worker 35*2d1272b8SAndroid Build Coastguard Worker struct Lookup; 36*2d1272b8SAndroid Build Coastguard Worker 37*2d1272b8SAndroid Build Coastguard Worker struct gsubgpos_graph_context_t 38*2d1272b8SAndroid Build Coastguard Worker { 39*2d1272b8SAndroid Build Coastguard Worker hb_tag_t table_tag; 40*2d1272b8SAndroid Build Coastguard Worker graph_t& graph; 41*2d1272b8SAndroid Build Coastguard Worker unsigned lookup_list_index; 42*2d1272b8SAndroid Build Coastguard Worker hb_hashmap_t<unsigned, graph::Lookup*> lookups; 43*2d1272b8SAndroid Build Coastguard Worker hb_hashmap_t<unsigned, unsigned> subtable_to_extension; 44*2d1272b8SAndroid Build Coastguard Worker 45*2d1272b8SAndroid Build Coastguard Worker HB_INTERNAL gsubgpos_graph_context_t (hb_tag_t table_tag_, 46*2d1272b8SAndroid Build Coastguard Worker graph_t& graph_); 47*2d1272b8SAndroid Build Coastguard Worker 48*2d1272b8SAndroid Build Coastguard Worker HB_INTERNAL unsigned create_node (unsigned size); 49*2d1272b8SAndroid Build Coastguard Worker add_buffergraph::gsubgpos_graph_context_t50*2d1272b8SAndroid Build Coastguard Worker bool add_buffer (char* buffer) 51*2d1272b8SAndroid Build Coastguard Worker { 52*2d1272b8SAndroid Build Coastguard Worker return graph.add_buffer (buffer); 53*2d1272b8SAndroid Build Coastguard Worker } 54*2d1272b8SAndroid Build Coastguard Worker 55*2d1272b8SAndroid Build Coastguard Worker private: 56*2d1272b8SAndroid Build Coastguard Worker HB_INTERNAL unsigned num_non_ext_subtables (); 57*2d1272b8SAndroid Build Coastguard Worker }; 58*2d1272b8SAndroid Build Coastguard Worker 59*2d1272b8SAndroid Build Coastguard Worker } 60*2d1272b8SAndroid Build Coastguard Worker 61*2d1272b8SAndroid Build Coastguard Worker #endif // GRAPH_GSUBGPOS_CONTEXT 62