Add hb_glyph_info_get_glyph_flags()
authorBehdad Esfahbod <behdad@behdad.org>
Wed, 23 Aug 2017 20:12:54 +0000 (13:12 -0700)
committerBehdad Esfahbod <behdad@behdad.org>
Wed, 23 Aug 2017 20:12:54 +0000 (13:12 -0700)
New API.

src/hb-buffer.cc
src/hb-buffer.h

index 0c175a3..a25a2cb 100644 (file)
@@ -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.
  *
index 9f5943e..ffbf66e 100644 (file)
@@ -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