src/hb-buffer.cc | 19 ++++++++++++++++++- src/hb-buffer.h | 11 +++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-)
New commits: commit b2dd0c1c32ba30714355baca1857d64c1608b4c2 Author: Behdad Esfahbod <beh...@behdad.org> Date: Wed Aug 23 13:12:54 2017 -0700 Add hb_glyph_info_get_glyph_flags() New API. diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc index 0c175a38..a25a2cb6 100644 --- a/src/hb-buffer.cc +++ b/src/hb-buffer.cc @@ -1412,6 +1412,23 @@ hb_buffer_get_glyph_positions (hb_buffer_t *buffer, } /** + * hb_glyph_info_get_glyph_flags: + * @buffer: a #hb_glyph_info_t. + * + * Returns glyph flags encoded within a #hb_glyph_info_t. + * + * Return value: + * The #hb_glyph_flags_t encoded within @info. + * + * Since: 1.5.0 + **/ +hb_glyph_flags_t +(hb_glyph_info_get_glyph_flags) (const hb_glyph_info_t *info) +{ + return hb_glyph_info_get_glyph_flags (info); +} + +/** * hb_buffer_reverse: * @buffer: an #hb_buffer_t. * diff --git a/src/hb-buffer.h b/src/hb-buffer.h index 9f5943ec..ffbf66ee 100644 --- a/src/hb-buffer.h +++ b/src/hb-buffer.h @@ -63,7 +63,7 @@ HB_BEGIN_DECLS */ typedef struct hb_glyph_info_t { hb_codepoint_t codepoint; - hb_mask_t mask; /* Holds hb_glyph_flags_t after hb_shape() */ + hb_mask_t mask; /* Holds hb_glyph_flags_t after hb_shape(), plus other things. */ uint32_t cluster; /*< private >*/ @@ -77,6 +77,13 @@ typedef enum { /*< flags >*/ HB_GLYPH_FLAG_DEFINED = 0x00000001 /* OR of all defined flags */ } hb_glyph_flags_t; +HB_EXTERN hb_glyph_flags_t +hb_glyph_info_get_glyph_flags (const hb_glyph_info_t *info); + +#define hb_glyph_info_get_glyph_flags(info) \ + ((hb_glyph_flags_t) ((unsigned int) (info)->mask & HB_GLYPH_FLAG_DEFINED)) + + /** * hb_glyph_position_t: * @x_advance: how much the line advances after drawing this glyph when setting commit 3e8f4f145255a905029c6b5cb8f40e6dcca096f3 Author: Behdad Esfahbod <beh...@behdad.org> Date: Tue Aug 22 17:56:25 2017 -0700 Rename HB_BUFFER_DIFF_FLAG_MASK_MISMATCH to HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc index 9007cd0d..0c175a38 100644 --- a/src/hb-buffer.cc +++ b/src/hb-buffer.cc @@ -1909,7 +1909,7 @@ hb_buffer_diff (hb_buffer_t *buffer, if (buf_info->cluster != ref_info->cluster) result |= HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH; if ((buf_info->mask & HB_GLYPH_FLAG_DEFINED) != (ref_info->mask & HB_GLYPH_FLAG_DEFINED)) - result |= HB_BUFFER_DIFF_FLAG_MASK_MISMATCH; + result |= HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH; if (ref_info->codepoint == dottedcircle_glyph) result |= HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT; else if (ref_info->codepoint == 0) diff --git a/src/hb-buffer.h b/src/hb-buffer.h index 98f83ff5..9f5943ec 100644 --- a/src/hb-buffer.h +++ b/src/hb-buffer.h @@ -491,7 +491,7 @@ typedef enum { /*< flags >*/ * and report which aspect(s) of the glyph info/position are different. */ HB_BUFFER_DIFF_FLAG_CODEPOINT_MISMATCH = 0x0010, HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH = 0x0020, - HB_BUFFER_DIFF_FLAG_MASK_MISMATCH = 0x0040, + HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH = 0x0040, HB_BUFFER_DIFF_FLAG_POSITION_MISMATCH = 0x0080 } hb_buffer_diff_flags_t; _______________________________________________ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/harfbuzz