提交 02a37069 编写于 作者: B Behdad Esfahbod

[HB] Move direction to buffer

上级 7cda6fa2
...@@ -166,6 +166,15 @@ hb_buffer_add_glyph (hb_buffer_t *buffer, ...@@ -166,6 +166,15 @@ hb_buffer_add_glyph (hb_buffer_t *buffer,
buffer->in_length++; buffer->in_length++;
} }
void
hb_buffer_set_direction (hb_buffer_t *buffer,
hb_direction_t direction)
{
buffer->direction = direction;
}
/* HarfBuzz-Internal API */ /* HarfBuzz-Internal API */
HB_INTERNAL void HB_INTERNAL void
......
...@@ -32,6 +32,13 @@ ...@@ -32,6 +32,13 @@
HB_BEGIN_DECLS HB_BEGIN_DECLS
typedef enum _hb_direction_t {
HB_DIRECTION_LTR,
HB_DIRECTION_RTL,
HB_DIRECTION_TTB,
HB_DIRECTION_BTT
} hb_direction_t;
/* XXX Hide structs? */ /* XXX Hide structs? */
typedef struct _hb_glyph_info_t { typedef struct _hb_glyph_info_t {
...@@ -72,6 +79,8 @@ typedef struct _hb_buffer_t { ...@@ -72,6 +79,8 @@ typedef struct _hb_buffer_t {
hb_glyph_info_t *out_string; hb_glyph_info_t *out_string;
hb_glyph_info_t *alt_string; hb_glyph_info_t *alt_string;
hb_glyph_position_t *positions; hb_glyph_position_t *positions;
hb_direction_t direction;
unsigned int max_lig_id; unsigned int max_lig_id;
} hb_buffer_t; } hb_buffer_t;
...@@ -94,6 +103,11 @@ hb_buffer_add_glyph (hb_buffer_t *buffer, ...@@ -94,6 +103,11 @@ hb_buffer_add_glyph (hb_buffer_t *buffer,
unsigned int properties, unsigned int properties,
unsigned int cluster); unsigned int cluster);
void
hb_buffer_set_direction (hb_buffer_t *buffer,
hb_direction_t direction);
HB_END_DECLS HB_END_DECLS
#endif /* HB_BUFFER_H */ #endif /* HB_BUFFER_H */
...@@ -687,7 +687,7 @@ struct CursivePosFormat1 ...@@ -687,7 +687,7 @@ struct CursivePosFormat1
/* TODO vertical */ /* TODO vertical */
if (gpi->r2l) if (buffer->direction == HB_DIRECTION_RTL)
{ {
POSITION (buffer->in_pos)->x_advance = entry_x - gpi->anchor_x; POSITION (buffer->in_pos)->x_advance = entry_x - gpi->anchor_x;
POSITION (buffer->in_pos)->new_advance = TRUE; POSITION (buffer->in_pos)->new_advance = TRUE;
......
...@@ -52,7 +52,6 @@ struct _hb_ot_layout_t ...@@ -52,7 +52,6 @@ struct _hb_ot_layout_t
hb_16dot16_t x_scale, y_scale; hb_16dot16_t x_scale, y_scale;
hb_bool_t dvi; hb_bool_t dvi;
hb_bool_t r2l;
unsigned int last; /* the last valid glyph--used with cursive positioning */ unsigned int last; /* the last valid glyph--used with cursive positioning */
hb_position_t anchor_x; /* the coordinates of the anchor point */ hb_position_t anchor_x; /* the coordinates of the anchor point */
......
...@@ -114,13 +114,6 @@ hb_ot_layout_destroy (hb_ot_layout_t *layout) ...@@ -114,13 +114,6 @@ hb_ot_layout_destroy (hb_ot_layout_t *layout)
free (layout); free (layout);
} }
void
hb_ot_layout_set_direction (hb_ot_layout_t *layout,
hb_bool_t r2l)
{
layout->gpos_info.r2l = !!r2l;
}
void void
hb_ot_layout_set_hinting (hb_ot_layout_t *layout, hb_ot_layout_set_hinting (hb_ot_layout_t *layout,
hb_bool_t hinted) hb_bool_t hinted)
......
...@@ -53,11 +53,6 @@ hb_ot_layout_create_for_tables (const char *gdef_data, ...@@ -53,11 +53,6 @@ hb_ot_layout_create_for_tables (const char *gdef_data,
void void
hb_ot_layout_destroy (hb_ot_layout_t *layout); hb_ot_layout_destroy (hb_ot_layout_t *layout);
/* XXX */
void
hb_ot_layout_set_direction (hb_ot_layout_t *layout,
hb_bool_t r2l);
void void
hb_ot_layout_set_hinting (hb_ot_layout_t *layout, hb_ot_layout_set_hinting (hb_ot_layout_t *layout,
hb_bool_t hinted); hb_bool_t hinted);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册