#ifndef HB_OT_LAYOUT_GSUBGPOS_HH
#define HB_OT_LAYOUT_GSUBGPOS_HH
#include "hb.hh"
#include "hb-buffer.hh"
#include "hb-map.hh"
#include "hb-set.hh"
#include "hb-ot-map.hh"
#include "hb-ot-layout-common.hh"
#include "hb-ot-layout-gdef-table.hh"
namespace OT {
struct hb_intersects_context_t :
hb_dispatch_context_t<hb_intersects_context_t, bool>
{ … };
struct hb_have_non_1to1_context_t :
hb_dispatch_context_t<hb_have_non_1to1_context_t, bool>
{ … };
struct hb_closure_context_t :
hb_dispatch_context_t<hb_closure_context_t>
{ … };
struct hb_closure_lookups_context_t :
hb_dispatch_context_t<hb_closure_lookups_context_t>
{ … };
struct hb_would_apply_context_t :
hb_dispatch_context_t<hb_would_apply_context_t, bool>
{ … };
struct hb_collect_glyphs_context_t :
hb_dispatch_context_t<hb_collect_glyphs_context_t>
{ … };
template <typename set_t>
struct hb_collect_coverage_context_t :
hb_dispatch_context_t<hb_collect_coverage_context_t<set_t>, const Coverage &>
{ … };
struct hb_ot_apply_context_t :
hb_dispatch_context_t<hb_ot_apply_context_t, bool, HB_DEBUG_APPLY>
{ … };
struct hb_accelerate_subtables_context_t :
hb_dispatch_context_t<hb_accelerate_subtables_context_t>
{ … };
intersects_func_t;
intersected_glyphs_func_t;
collect_glyphs_func_t;
match_func_t;
struct ContextClosureFuncs
{ … };
struct ContextCollectGlyphsFuncs
{ … };
struct ContextApplyFuncs
{ … };
struct ChainContextApplyFuncs
{ … };
static inline bool intersects_glyph (const hb_set_t *glyphs, unsigned value, const void *data HB_UNUSED, void *cache HB_UNUSED)
{ … }
static inline bool intersects_class (const hb_set_t *glyphs, unsigned value, const void *data, void *cache)
{ … }
static inline bool intersects_coverage (const hb_set_t *glyphs, unsigned value, const void *data, void *cache HB_UNUSED)
{ … }
static inline void intersected_glyph (const hb_set_t *glyphs HB_UNUSED, const void *data, unsigned value, hb_set_t *intersected_glyphs, HB_UNUSED void *cache)
{ … }
intersected_class_cache_t;
static inline void intersected_class_glyphs (const hb_set_t *glyphs, const void *data, unsigned value, hb_set_t *intersected_glyphs, void *cache)
{ … }
static inline void intersected_coverage_glyphs (const hb_set_t *glyphs, const void *data, unsigned value, hb_set_t *intersected_glyphs, HB_UNUSED void *cache)
{ … }
template <typename HBUINT>
static inline bool array_is_subset_of (const hb_set_t *glyphs,
unsigned int count,
const HBUINT values[],
intersects_func_t intersects_func,
const void *intersects_data,
void *cache)
{ … }
static inline void collect_glyph (hb_set_t *glyphs, unsigned value, const void *data HB_UNUSED)
{ … }
static inline void collect_class (hb_set_t *glyphs, unsigned value, const void *data)
{ … }
static inline void collect_coverage (hb_set_t *glyphs, unsigned value, const void *data)
{ … }
template <typename HBUINT>
static inline void collect_array (hb_collect_glyphs_context_t *c HB_UNUSED,
hb_set_t *glyphs,
unsigned int count,
const HBUINT values[],
collect_glyphs_func_t collect_func,
const void *collect_data)
{ … }
static inline bool match_always (hb_glyph_info_t &info HB_UNUSED, unsigned value HB_UNUSED, const void *data HB_UNUSED)
{ … }
static inline bool match_glyph (hb_glyph_info_t &info, unsigned value, const void *data HB_UNUSED)
{ … }
static inline bool match_class (hb_glyph_info_t &info, unsigned value, const void *data)
{ … }
static inline bool match_class_cached (hb_glyph_info_t &info, unsigned value, const void *data)
{ … }
static inline bool match_class_cached1 (hb_glyph_info_t &info, unsigned value, const void *data)
{ … }
static inline bool match_class_cached2 (hb_glyph_info_t &info, unsigned value, const void *data)
{ … }
static inline bool match_coverage (hb_glyph_info_t &info, unsigned value, const void *data)
{ … }
template <typename HBUINT>
static inline bool would_match_input (hb_would_apply_context_t *c,
unsigned int count,
const HBUINT input[],
match_func_t match_func,
const void *match_data)
{ … }
template <typename HBUINT>
#ifndef HB_OPTIMIZE_SIZE
HB_ALWAYS_INLINE
#endif
static bool match_input (hb_ot_apply_context_t *c,
unsigned int count,
const HBUINT input[],
match_func_t match_func,
const void *match_data,
unsigned int *end_position,
unsigned int *match_positions,
unsigned int *p_total_component_count = nullptr)
{ … }
static inline bool ligate_input (hb_ot_apply_context_t *c,
unsigned int count,
const unsigned int *match_positions,
unsigned int match_end,
hb_codepoint_t lig_glyph,
unsigned int total_component_count)
{ … }
template <typename HBUINT>
#ifndef HB_OPTIMIZE_SIZE
HB_ALWAYS_INLINE
#endif
static bool match_backtrack (hb_ot_apply_context_t *c,
unsigned int count,
const HBUINT backtrack[],
match_func_t match_func,
const void *match_data,
unsigned int *match_start)
{ … }
template <typename HBUINT>
#ifndef HB_OPTIMIZE_SIZE
HB_ALWAYS_INLINE
#endif
static bool match_lookahead (hb_ot_apply_context_t *c,
unsigned int count,
const HBUINT lookahead[],
match_func_t match_func,
const void *match_data,
unsigned int start_index,
unsigned int *end_index)
{ … }
struct LookupRecord
{ … };
static unsigned serialize_lookuprecord_array (hb_serialize_context_t *c,
const hb_array_t<const LookupRecord> lookupRecords,
const hb_map_t *lookup_map)
{ … }
enum ContextFormat { … };
template <typename HBUINT>
static void context_closure_recurse_lookups (hb_closure_context_t *c,
unsigned inputCount, const HBUINT input[],
unsigned lookupCount,
const LookupRecord lookupRecord[] ,
unsigned value,
ContextFormat context_format,
const void *data,
intersected_glyphs_func_t intersected_glyphs_func,
void *cache)
{ … }
template <typename context_t>
static inline void recurse_lookups (context_t *c,
unsigned int lookupCount,
const LookupRecord lookupRecord[] )
{ … }
static inline void apply_lookup (hb_ot_apply_context_t *c,
unsigned int count,
unsigned int *match_positions,
unsigned int lookupCount,
const LookupRecord lookupRecord[],
unsigned int match_end)
{ … }
struct ContextClosureLookupContext
{ … };
struct ContextCollectGlyphsLookupContext
{ … };
struct ContextApplyLookupContext
{ … };
template <typename HBUINT>
static inline bool context_intersects (const hb_set_t *glyphs,
unsigned int inputCount,
const HBUINT input[],
ContextClosureLookupContext &lookup_context)
{ … }
template <typename HBUINT>
static inline void context_closure_lookup (hb_closure_context_t *c,
unsigned int inputCount,
const HBUINT input[],
unsigned int lookupCount,
const LookupRecord lookupRecord[],
unsigned value,
ContextClosureLookupContext &lookup_context)
{ … }
template <typename HBUINT>
static inline void context_collect_glyphs_lookup (hb_collect_glyphs_context_t *c,
unsigned int inputCount,
const HBUINT input[],
unsigned int lookupCount,
const LookupRecord lookupRecord[],
ContextCollectGlyphsLookupContext &lookup_context)
{ … }
template <typename HBUINT>
static inline bool context_would_apply_lookup (hb_would_apply_context_t *c,
unsigned int inputCount,
const HBUINT input[],
unsigned int lookupCount HB_UNUSED,
const LookupRecord lookupRecord[] HB_UNUSED,
const ContextApplyLookupContext &lookup_context)
{ … }
template <typename HBUINT>
HB_ALWAYS_INLINE
static bool context_apply_lookup (hb_ot_apply_context_t *c,
unsigned int inputCount,
const HBUINT input[],
unsigned int lookupCount,
const LookupRecord lookupRecord[],
const ContextApplyLookupContext &lookup_context)
{ … }
template <typename Types>
struct Rule
{ … };
template <typename Types>
struct RuleSet
{ … };
template <typename Types>
struct ContextFormat1_4
{ … };
template <typename Types>
struct ContextFormat2_5
{ … };
struct ContextFormat3
{ … };
struct Context
{ … };
struct ChainContextClosureLookupContext
{ … };
struct ChainContextCollectGlyphsLookupContext
{ … };
struct ChainContextApplyLookupContext
{ … };
template <typename HBUINT>
static inline bool chain_context_intersects (const hb_set_t *glyphs,
unsigned int backtrackCount,
const HBUINT backtrack[],
unsigned int inputCount,
const HBUINT input[],
unsigned int lookaheadCount,
const HBUINT lookahead[],
ChainContextClosureLookupContext &lookup_context)
{ … }
template <typename HBUINT>
static inline void chain_context_closure_lookup (hb_closure_context_t *c,
unsigned int backtrackCount,
const HBUINT backtrack[],
unsigned int inputCount,
const HBUINT input[],
unsigned int lookaheadCount,
const HBUINT lookahead[],
unsigned int lookupCount,
const LookupRecord lookupRecord[],
unsigned value,
ChainContextClosureLookupContext &lookup_context)
{ … }
template <typename HBUINT>
static inline void chain_context_collect_glyphs_lookup (hb_collect_glyphs_context_t *c,
unsigned int backtrackCount,
const HBUINT backtrack[],
unsigned int inputCount,
const HBUINT input[],
unsigned int lookaheadCount,
const HBUINT lookahead[],
unsigned int lookupCount,
const LookupRecord lookupRecord[],
ChainContextCollectGlyphsLookupContext &lookup_context)
{ … }
template <typename HBUINT>
static inline bool chain_context_would_apply_lookup (hb_would_apply_context_t *c,
unsigned int backtrackCount,
const HBUINT backtrack[] HB_UNUSED,
unsigned int inputCount,
const HBUINT input[],
unsigned int lookaheadCount,
const HBUINT lookahead[] HB_UNUSED,
unsigned int lookupCount HB_UNUSED,
const LookupRecord lookupRecord[] HB_UNUSED,
const ChainContextApplyLookupContext &lookup_context)
{ … }
template <typename HBUINT>
HB_ALWAYS_INLINE
static bool chain_context_apply_lookup (hb_ot_apply_context_t *c,
unsigned int backtrackCount,
const HBUINT backtrack[],
unsigned int inputCount,
const HBUINT input[],
unsigned int lookaheadCount,
const HBUINT lookahead[],
unsigned int lookupCount,
const LookupRecord lookupRecord[],
const ChainContextApplyLookupContext &lookup_context)
{ … }
template <typename Types>
struct ChainRule
{ … };
template <typename Types>
struct ChainRuleSet
{ … };
template <typename Types>
struct ChainContextFormat1_4
{ … };
template <typename Types>
struct ChainContextFormat2_5
{ … };
struct ChainContextFormat3
{ … };
struct ChainContext
{ … };
template <typename T>
struct ExtensionFormat1
{ … };
template <typename T>
struct Extension
{ … };
struct hb_ot_layout_lookup_accelerator_t
{ … };
template <typename Types>
struct GSUBGPOSVersion1_2
{ … };
struct GSUBGPOS
{ … };
}
#endif