#include "hb.hh"
#ifndef HB_NO_OT_SHAPE
#include "hb-ot-shaper-khmer-machine.hh"
#include "hb-ot-shaper-indic.hh"
#include "hb-ot-layout.hh"
static const hb_ot_map_feature_t
khmer_features[] = …;
enum { … };
static inline void
set_khmer_properties (hb_glyph_info_t &info)
{ … }
static bool
setup_syllables_khmer (const hb_ot_shape_plan_t *plan,
hb_font_t *font,
hb_buffer_t *buffer);
static bool
reorder_khmer (const hb_ot_shape_plan_t *plan,
hb_font_t *font,
hb_buffer_t *buffer);
static void
collect_features_khmer (hb_ot_shape_planner_t *plan)
{ … }
static void
override_features_khmer (hb_ot_shape_planner_t *plan)
{ … }
struct khmer_shape_plan_t
{ … };
static void *
data_create_khmer (const hb_ot_shape_plan_t *plan)
{ … }
static void
data_destroy_khmer (void *data)
{ … }
static void
setup_masks_khmer (const hb_ot_shape_plan_t *plan HB_UNUSED,
hb_buffer_t *buffer,
hb_font_t *font HB_UNUSED)
{ … }
static bool
setup_syllables_khmer (const hb_ot_shape_plan_t *plan HB_UNUSED,
hb_font_t *font HB_UNUSED,
hb_buffer_t *buffer)
{ … }
static void
reorder_consonant_syllable (const hb_ot_shape_plan_t *plan,
hb_face_t *face HB_UNUSED,
hb_buffer_t *buffer,
unsigned int start, unsigned int end)
{ … }
static void
reorder_syllable_khmer (const hb_ot_shape_plan_t *plan,
hb_face_t *face,
hb_buffer_t *buffer,
unsigned int start, unsigned int end)
{ … }
static bool
reorder_khmer (const hb_ot_shape_plan_t *plan,
hb_font_t *font,
hb_buffer_t *buffer)
{ … }
static bool
decompose_khmer (const hb_ot_shape_normalize_context_t *c,
hb_codepoint_t ab,
hb_codepoint_t *a,
hb_codepoint_t *b)
{ … }
static bool
compose_khmer (const hb_ot_shape_normalize_context_t *c,
hb_codepoint_t a,
hb_codepoint_t b,
hb_codepoint_t *ab)
{ … }
const hb_ot_shaper_t _hb_ot_shaper_khmer = …;
#endif