#include "hb.hh"
#ifndef HB_NO_OT_SHAPE
#ifdef HB_NO_OT_LAYOUT
#error "Cannot compile 'ot' shaper with HB_NO_OT_LAYOUT."
#endif
#include "hb-shaper-impl.hh"
#include "hb-ot-shape.hh"
#include "hb-ot-shaper.hh"
#include "hb-ot-shape-fallback.hh"
#include "hb-ot-shape-normalize.hh"
#include "hb-ot-face.hh"
#include "hb-set.hh"
#include "hb-aat-layout.hh"
static inline bool
_hb_codepoint_is_regional_indicator (hb_codepoint_t u)
{ … }
#ifndef HB_NO_AAT_SHAPE
static inline bool
_hb_apply_morx (hb_face_t *face, const hb_segment_properties_t &props)
{ … }
#endif
static void
hb_ot_shape_collect_features (hb_ot_shape_planner_t *planner,
const hb_feature_t *user_features,
unsigned int num_user_features);
hb_ot_shape_planner_t::hb_ot_shape_planner_t (hb_face_t *face,
const hb_segment_properties_t &props) : … { … }
void
hb_ot_shape_planner_t::compile (hb_ot_shape_plan_t &plan,
const hb_ot_shape_plan_key_t &key)
{ … }
bool
hb_ot_shape_plan_t::init0 (hb_face_t *face,
const hb_shape_plan_key_t *key)
{ … }
void
hb_ot_shape_plan_t::fini ()
{ … }
void
hb_ot_shape_plan_t::substitute (hb_font_t *font,
hb_buffer_t *buffer) const
{ … }
void
hb_ot_shape_plan_t::position (hb_font_t *font,
hb_buffer_t *buffer) const
{ … }
static const hb_ot_map_feature_t
common_features[] = …;
static const hb_ot_map_feature_t
horizontal_features[] = …;
static void
hb_ot_shape_collect_features (hb_ot_shape_planner_t *planner,
const hb_feature_t *user_features,
unsigned int num_user_features)
{ … }
struct hb_ot_face_data_t { … };
hb_ot_face_data_t *
_hb_ot_shaper_face_data_create (hb_face_t *face)
{ … }
void
_hb_ot_shaper_face_data_destroy (hb_ot_face_data_t *data)
{ … }
struct hb_ot_font_data_t { … };
hb_ot_font_data_t *
_hb_ot_shaper_font_data_create (hb_font_t *font HB_UNUSED)
{ … }
void
_hb_ot_shaper_font_data_destroy (hb_ot_font_data_t *data HB_UNUSED)
{ … }
struct hb_ot_shape_context_t
{ … };
static void
hb_set_unicode_props (hb_buffer_t *buffer)
{ … }
static void
hb_insert_dotted_circle (hb_buffer_t *buffer, hb_font_t *font)
{ … }
static void
hb_form_clusters (hb_buffer_t *buffer)
{ … }
static void
hb_ensure_native_direction (hb_buffer_t *buffer)
{ … }
#ifndef HB_NO_VERTICAL
static hb_codepoint_t
hb_vert_char_for (hb_codepoint_t u)
{ … }
#endif
static inline void
hb_ot_rotate_chars (const hb_ot_shape_context_t *c)
{ … }
static inline void
hb_ot_shape_setup_masks_fraction (const hb_ot_shape_context_t *c)
{ … }
static inline void
hb_ot_shape_initialize_masks (const hb_ot_shape_context_t *c)
{ … }
static inline void
hb_ot_shape_setup_masks (const hb_ot_shape_context_t *c)
{ … }
static void
hb_ot_zero_width_default_ignorables (const hb_buffer_t *buffer)
{ … }
static void
hb_ot_deal_with_variation_selectors (hb_buffer_t *buffer)
{ … }
static void
hb_ot_hide_default_ignorables (hb_buffer_t *buffer,
hb_font_t *font)
{ … }
static inline void
hb_ot_map_glyphs_fast (hb_buffer_t *buffer)
{ … }
static inline void
hb_synthesize_glyph_classes (hb_buffer_t *buffer)
{ … }
static inline void
hb_ot_substitute_default (const hb_ot_shape_context_t *c)
{ … }
static inline void
hb_ot_substitute_plan (const hb_ot_shape_context_t *c)
{ … }
static inline void
hb_ot_substitute_pre (const hb_ot_shape_context_t *c)
{ … }
static inline void
hb_ot_substitute_post (const hb_ot_shape_context_t *c)
{ … }
static inline void
adjust_mark_offsets (hb_glyph_position_t *pos)
{ … }
static inline void
zero_mark_width (hb_glyph_position_t *pos)
{ … }
static inline void
zero_mark_widths_by_gdef (hb_buffer_t *buffer, bool adjust_offsets)
{ … }
static inline void
hb_ot_position_default (const hb_ot_shape_context_t *c)
{ … }
static inline void
hb_ot_position_plan (const hb_ot_shape_context_t *c)
{ … }
static inline void
hb_ot_position (const hb_ot_shape_context_t *c)
{ … }
static inline void
hb_propagate_flags (hb_buffer_t *buffer)
{ … }
static void
hb_ot_shape_internal (hb_ot_shape_context_t *c)
{ … }
hb_bool_t
_hb_ot_shape (hb_shape_plan_t *shape_plan,
hb_font_t *font,
hb_buffer_t *buffer,
const hb_feature_t *features,
unsigned int num_features)
{ … }
void
hb_ot_shape_plan_collect_lookups (hb_shape_plan_t *shape_plan,
hb_tag_t table_tag,
hb_set_t *lookup_indexes )
{ … }
static void
add_char (hb_font_t *font,
hb_unicode_funcs_t *unicode,
hb_bool_t mirror,
hb_codepoint_t u,
hb_set_t *glyphs)
{ … }
void
hb_ot_shape_glyphs_closure (hb_font_t *font,
hb_buffer_t *buffer,
const hb_feature_t *features,
unsigned int num_features,
hb_set_t *glyphs)
{ … }
#endif