diff options
Diffstat (limited to 'src/hb-ot-shape-normalize-private.hh')
-rw-r--r-- | src/hb-ot-shape-normalize-private.hh | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/hb-ot-shape-normalize-private.hh b/src/hb-ot-shape-normalize-private.hh index 462b87d..8112f03 100644 --- a/src/hb-ot-shape-normalize-private.hh +++ b/src/hb-ot-shape-normalize-private.hh @@ -35,16 +35,37 @@ /* buffer var allocations, used during the normalization process */ #define glyph_index() var1.u32 +struct hb_ot_shape_plan_t; + enum hb_ot_shape_normalization_mode_t { HB_OT_SHAPE_NORMALIZATION_MODE_DECOMPOSED, HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS, /* never composes base-to-base */ + HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT, /* always fully decomposes and then recompose back */ HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_FULL, /* including base-to-base composition */ HB_OT_SHAPE_NORMALIZATION_MODE_DEFAULT = HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS }; -HB_INTERNAL void _hb_ot_shape_normalize (hb_font_t *font, +HB_INTERNAL void _hb_ot_shape_normalize (const hb_ot_shape_plan_t *shaper, hb_buffer_t *buffer, - hb_ot_shape_normalization_mode_t mode); + hb_font_t *font); + + +struct hb_ot_shape_normalize_context_t +{ + const hb_ot_shape_plan_t *plan; + hb_buffer_t *buffer; + hb_font_t *font; + hb_unicode_funcs_t *unicode; + bool (*decompose) (const hb_ot_shape_normalize_context_t *c, + hb_codepoint_t ab, + hb_codepoint_t *a, + hb_codepoint_t *b); + bool (*compose) (const hb_ot_shape_normalize_context_t *c, + hb_codepoint_t a, + hb_codepoint_t b, + hb_codepoint_t *ab); +}; + #endif /* HB_OT_SHAPE_NORMALIZE_PRIVATE_HH */ |