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-map-private.hh"
|
||||||
#include "hb-ot-shape-complex-private.hh"
|
#include "hb-ot-shape-complex-private.hh"
|
||||||
#include "hb-ot-shape-normalize-private.hh"
|
|
||||||
|
|
||||||
|
|
||||||
struct hb_ot_shape_plan_t
|
struct hb_ot_shape_plan_t
|
||||||
{
|
{
|
||||||
friend struct hb_ot_shape_planner_t;
|
|
||||||
|
|
||||||
hb_ot_map_t map;
|
hb_ot_map_t map;
|
||||||
hb_ot_complex_shaper_t shaper;
|
hb_ot_complex_shaper_t shaper;
|
||||||
|
|
||||||
|
@ -48,41 +45,6 @@ struct hb_ot_shape_plan_t
|
||||||
NO_COPY (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
|
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);
|
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_INTERNAL hb_bool_t
|
||||||
_hb_ot_shape (hb_font_t *font,
|
_hb_ot_shape (hb_font_t *font,
|
||||||
hb_buffer_t *buffer,
|
hb_buffer_t *buffer,
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "hb-ot-shape-private.hh"
|
#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"
|
#include "hb-font-private.hh"
|
||||||
|
|
||||||
|
@ -62,6 +62,28 @@ hb_tag_t vertical_features[] = {
|
||||||
HB_TAG('v','r','t','2'),
|
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
|
static void
|
||||||
hb_ot_shape_collect_features (hb_ot_shape_planner_t *planner,
|
hb_ot_shape_collect_features (hb_ot_shape_planner_t *planner,
|
||||||
const hb_segment_properties_t *props,
|
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
|
static void
|
||||||
hb_ot_shape_setup_masks (hb_ot_shape_context_t *c)
|
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 */
|
/* Prepare */
|
||||||
|
|
||||||
void
|
static void
|
||||||
_hb_set_unicode_props (hb_buffer_t *buffer)
|
hb_set_unicode_props (hb_buffer_t *buffer)
|
||||||
{
|
{
|
||||||
unsigned int count = buffer->len;
|
unsigned int count = buffer->len;
|
||||||
for (unsigned int i = 0; i < count; i++)
|
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, general_category);
|
||||||
HB_BUFFER_ALLOCATE_VAR (c->buffer, combining_class);
|
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);
|
hb_form_clusters (c->buffer);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue