#include "hb.hh"
#include "hb-open-type.hh"
#include "hb-subset.hh"
#include "hb-open-file.hh"
#include "hb-ot-cmap-table.hh"
#include "hb-ot-glyf-table.hh"
#include "hb-ot-hdmx-table.hh"
#include "hb-ot-head-table.hh"
#include "hb-ot-hhea-table.hh"
#include "hb-ot-hmtx-table.hh"
#include "hb-ot-maxp-table.hh"
#include "OT/Color/CBDT/CBDT.hh"
#include "OT/Color/COLR/COLR.hh"
#include "OT/Color/CPAL/CPAL.hh"
#include "OT/Color/sbix/sbix.hh"
#include "hb-ot-os2-table.hh"
#include "hb-ot-post-table.hh"
#include "hb-ot-post-table-v2subset.hh"
#include "hb-ot-cff1-table.hh"
#include "hb-ot-cff2-table.hh"
#include "hb-ot-vorg-table.hh"
#include "hb-ot-name-table.hh"
#include "hb-ot-layout-base-table.hh"
#include "hb-ot-layout-gsub-table.hh"
#include "hb-ot-layout-gpos-table.hh"
#include "hb-ot-var-avar-table.hh"
#include "hb-ot-var-cvar-table.hh"
#include "hb-ot-var-fvar-table.hh"
#include "hb-ot-var-gvar-table.hh"
#include "hb-ot-var-hvar-table.hh"
#include "hb-ot-var-mvar-table.hh"
#include "hb-ot-math-table.hh"
#include "hb-ot-stat-table.hh"
#include "hb-repacker.hh"
#include "hb-subset-accelerator.hh"
GSUB;
GPOS;
#ifndef HB_NO_SUBSET_CFF
template<>
struct hb_subset_plan_t::source_table_loader<const OT::cff1>
{ … };
template<>
struct hb_subset_plan_t::source_table_loader<const OT::cff2>
{ … };
#endif
hb_user_data_key_t _hb_subset_accelerator_user_data_key = …;
static hb_tag_t known_tables[] { … };
static bool _table_is_empty (const hb_face_t *face, hb_tag_t tag)
{ … }
static unsigned int
_get_table_tags (const hb_subset_plan_t* plan,
unsigned int start_offset,
unsigned int *table_count,
hb_tag_t *table_tags )
{ … }
static unsigned
_plan_estimate_subset_table_size (hb_subset_plan_t *plan,
unsigned table_len,
hb_tag_t table_tag)
{ … }
static hb_blob_t*
_repack (hb_tag_t tag, const hb_serialize_context_t& c)
{ … }
template<typename TableType>
static
bool
_try_subset (const TableType *table,
hb_vector_t<char>* buf,
hb_subset_context_t* c )
{ … }
template <typename T>
static auto _do_destroy (T &t, hb_priority<1>) HB_RETURN (void, t.destroy ())
template <typename T>
static void _do_destroy (T &t, hb_priority<0>) { … }
template<typename TableType>
static bool
_subset (hb_subset_plan_t *plan, hb_vector_t<char> &buf)
{ … }
static bool
_is_table_present (hb_face_t *source, hb_tag_t tag)
{ … }
static bool
_should_drop_table (hb_subset_plan_t *plan, hb_tag_t tag)
{ … }
static bool
_passthrough (hb_subset_plan_t *plan, hb_tag_t tag)
{ … }
static bool
_dependencies_satisfied (hb_subset_plan_t *plan, hb_tag_t tag,
const hb_set_t &subsetted_tags,
const hb_set_t &pending_subset_tags)
{ … }
static bool
_subset_table (hb_subset_plan_t *plan,
hb_vector_t<char> &buf,
hb_tag_t tag)
{ … }
static void _attach_accelerator_data (hb_subset_plan_t* plan,
hb_face_t* face )
{ … }
hb_face_t *
hb_subset_or_fail (hb_face_t *source, const hb_subset_input_t *input)
{ … }
hb_face_t *
hb_subset_plan_execute_or_fail (hb_subset_plan_t *plan)
{ … }