[HB] Move direction to buffer
This commit is contained in:
parent
7cda6fa24c
commit
02a370697d
|
@ -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 @@
|
||||||
|
|
||||||
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 {
|
||||||
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,
|
||||||
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
|
||||||
|
|
||||||
/* 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
|
||||||
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)
|
||||||
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,
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue