提交 b9f199c8 编写于 作者: B Behdad Esfahbod

Move code around

上级 38a83019
...@@ -31,13 +31,10 @@ ...@@ -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 ...@@ -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 ...@@ -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 @@ ...@@ -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[] = { ...@@ -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, ...@@ -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) ...@@ -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) ...@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册