Move code around

This commit is contained in:
Behdad Esfahbod 2012-04-14 20:23:58 -04:00
parent 38a83019e6
commit b9f199c8e3
2 changed files with 41 additions and 44 deletions

View File

@ -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,

View File

@ -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);