Move code around
This commit is contained in:
parent
38a83019e6
commit
b9f199c8e3
|
@ -31,13 +31,10 @@
|
|||
|
||||
#include "hb-ot-map-private.hh"
|
||||
#include "hb-ot-shape-complex-private.hh"
|
||||
#include "hb-ot-shape-normalize-private.hh"
|
||||
|
||||
|
||||
struct hb_ot_shape_plan_t
|
||||
{
|
||||
friend struct hb_ot_shape_planner_t;
|
||||
|
||||
hb_ot_map_t map;
|
||||
hb_ot_complex_shaper_t shaper;
|
||||
|
||||
|
@ -48,41 +45,6 @@ struct hb_ot_shape_plan_t
|
|||
NO_COPY (hb_ot_shape_plan_t);
|
||||
};
|
||||
|
||||
struct hb_ot_shape_planner_t
|
||||
{
|
||||
hb_ot_map_builder_t map;
|
||||
hb_ot_complex_shaper_t shaper;
|
||||
|
||||
hb_ot_shape_planner_t (void) : map () {}
|
||||
~hb_ot_shape_planner_t (void) { map.finish (); }
|
||||
|
||||
inline void compile (hb_face_t *face,
|
||||
const hb_segment_properties_t *props,
|
||||
struct hb_ot_shape_plan_t &plan)
|
||||
{
|
||||
plan.shaper = shaper;
|
||||
map.compile (face, props, plan.map);
|
||||
}
|
||||
|
||||
private:
|
||||
NO_COPY (hb_ot_shape_planner_t);
|
||||
};
|
||||
|
||||
|
||||
struct hb_ot_shape_context_t
|
||||
{
|
||||
/* Input to hb_ot_shape_execute() */
|
||||
hb_ot_shape_plan_t *plan;
|
||||
hb_font_t *font;
|
||||
hb_face_t *face;
|
||||
hb_buffer_t *buffer;
|
||||
const hb_feature_t *user_features;
|
||||
unsigned int num_user_features;
|
||||
|
||||
/* Transient stuff */
|
||||
hb_direction_t target_direction;
|
||||
hb_bool_t applied_position_complex;
|
||||
};
|
||||
|
||||
|
||||
static inline void
|
||||
|
@ -92,8 +54,6 @@ hb_glyph_info_set_unicode_props (hb_glyph_info_t *info, hb_unicode_funcs_t *unic
|
|||
info->combining_class() = _hb_unicode_modified_combining_class (unicode, info->codepoint);
|
||||
}
|
||||
|
||||
HB_INTERNAL void _hb_set_unicode_props (hb_buffer_t *buffer);
|
||||
|
||||
HB_INTERNAL hb_bool_t
|
||||
_hb_ot_shape (hb_font_t *font,
|
||||
hb_buffer_t *buffer,
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
*/
|
||||
|
||||
#include "hb-ot-shape-private.hh"
|
||||
#include "hb-ot-shape-complex-private.hh"
|
||||
#include "hb-ot-shape-normalize-private.hh"
|
||||
|
||||
#include "hb-font-private.hh"
|
||||
|
||||
|
@ -62,6 +62,28 @@ hb_tag_t vertical_features[] = {
|
|||
HB_TAG('v','r','t','2'),
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct hb_ot_shape_planner_t
|
||||
{
|
||||
hb_ot_map_builder_t map;
|
||||
hb_ot_complex_shaper_t shaper;
|
||||
|
||||
hb_ot_shape_planner_t (void) : map () {}
|
||||
~hb_ot_shape_planner_t (void) { map.finish (); }
|
||||
|
||||
inline void compile (hb_face_t *face,
|
||||
const hb_segment_properties_t *props,
|
||||
struct hb_ot_shape_plan_t &plan)
|
||||
{
|
||||
plan.shaper = shaper;
|
||||
map.compile (face, props, plan.map);
|
||||
}
|
||||
|
||||
private:
|
||||
NO_COPY (hb_ot_shape_planner_t);
|
||||
};
|
||||
|
||||
static void
|
||||
hb_ot_shape_collect_features (hb_ot_shape_planner_t *planner,
|
||||
const hb_segment_properties_t *props,
|
||||
|
@ -108,6 +130,21 @@ hb_ot_shape_collect_features (hb_ot_shape_planner_t *planner,
|
|||
}
|
||||
|
||||
|
||||
struct hb_ot_shape_context_t
|
||||
{
|
||||
/* Input to hb_ot_shape_execute() */
|
||||
hb_ot_shape_plan_t *plan;
|
||||
hb_font_t *font;
|
||||
hb_face_t *face;
|
||||
hb_buffer_t *buffer;
|
||||
const hb_feature_t *user_features;
|
||||
unsigned int num_user_features;
|
||||
|
||||
/* Transient stuff */
|
||||
hb_direction_t target_direction;
|
||||
hb_bool_t applied_position_complex;
|
||||
};
|
||||
|
||||
static void
|
||||
hb_ot_shape_setup_masks (hb_ot_shape_context_t *c)
|
||||
{
|
||||
|
@ -132,8 +169,8 @@ hb_ot_shape_setup_masks (hb_ot_shape_context_t *c)
|
|||
|
||||
/* Prepare */
|
||||
|
||||
void
|
||||
_hb_set_unicode_props (hb_buffer_t *buffer)
|
||||
static void
|
||||
hb_set_unicode_props (hb_buffer_t *buffer)
|
||||
{
|
||||
unsigned int count = buffer->len;
|
||||
for (unsigned int i = 0; i < count; i++)
|
||||
|
@ -349,7 +386,7 @@ hb_ot_shape_execute_internal (hb_ot_shape_context_t *c)
|
|||
HB_BUFFER_ALLOCATE_VAR (c->buffer, general_category);
|
||||
HB_BUFFER_ALLOCATE_VAR (c->buffer, combining_class);
|
||||
|
||||
_hb_set_unicode_props (c->buffer); /* BUFFER: Set general_category and combining_class */
|
||||
hb_set_unicode_props (c->buffer); /* BUFFER: Set general_category and combining_class */
|
||||
|
||||
hb_form_clusters (c->buffer);
|
||||
|
||||
|
|
Loading…
Reference in New Issue