[ot-var] Add hb_ot_var_axis_get_flags()
authorBehdad Esfahbod <behdad@behdad.org>
Mon, 19 Nov 2018 17:36:56 +0000 (12:36 -0500)
committerBehdad Esfahbod <behdad@behdad.org>
Mon, 19 Nov 2018 17:36:56 +0000 (12:36 -0500)
Part of https://github.com/harfbuzz/harfbuzz/issues/1241

New API:
+hb_ot_var_axis_flags_t
+hb_ot_var_axis_get_flags

docs/harfbuzz-sections.txt
src/hb-buffer.h
src/hb-ot-var-fvar-table.hh
src/hb-ot-var.cc
src/hb-ot-var.h

index 6a498e9..63594cf 100644 (file)
@@ -587,6 +587,8 @@ hb_ot_var_has_data
 hb_ot_var_find_axis
 hb_ot_var_get_axis_count
 hb_ot_var_get_axes
+hb_ot_var_axis_flags_t
+hb_ot_var_axis_get_flags
 hb_ot_var_normalize_variations
 hb_ot_var_normalize_coords
 </SECTION>
index 99e0171..f989d25 100644 (file)
@@ -90,6 +90,8 @@ typedef struct hb_glyph_info_t
  *                                the reshaping to a small piece around the
  *                                breaking point only.
  * @HB_GLYPH_FLAG_DEFINED: All the currently defined flags.
+ *
+ * Since: 1.5.0
  */
 typedef enum { /*< flags >*/
   HB_GLYPH_FLAG_UNSAFE_TO_BREAK                = 0x00000001,
index 659eb1b..3c8a3da 100644 (file)
@@ -131,6 +131,15 @@ struct fvar
     return true;
   }
 
+  inline hb_ot_var_axis_flags_t get_axis_flags (unsigned int index) const
+  {
+    if (unlikely (index >= axisCount))
+      return (hb_ot_var_axis_flags_t) 0;
+
+    const AxisRecord &axis = get_axes ()[index];
+    return (hb_ot_var_axis_flags_t) (unsigned int) axis.flags;
+  }
+
   inline unsigned int get_axis_infos (unsigned int      start_offset,
                                      unsigned int     *axes_count /* IN/OUT */,
                                      hb_ot_var_axis_t *axes_array /* OUT */) const
index c97e9c4..14c73cf 100644 (file)
@@ -104,6 +104,18 @@ hb_ot_var_find_axis (hb_face_t        *face,
   return face->table.fvar->find_axis (axis_tag, axis_index, axis_info);
 }
 
+/**
+ * hb_ot_var_axis_get_flags:
+ *
+ * Since: REPLACEME
+ **/
+hb_ot_var_axis_flags_t
+hb_ot_var_axis_get_flags (hb_face_t    *face,
+                         unsigned int  axis_index)
+{
+  return face->table.fvar->get_axis_flags (axis_index);
+}
+
 
 /**
  * hb_ot_var_normalize_variations:
index 0c0f61d..d535a07 100644 (file)
@@ -85,6 +85,19 @@ hb_ot_var_find_axis (hb_face_t        *face,
                     unsigned int     *axis_index,
                     hb_ot_var_axis_t *axis_info);
 
+/**
+ * hb_ot_var_axis_flags_t:
+ * @HB_OT_VAR_AXIS_FLAG_HIDDEN: The axis should not be exposed directly in user interfaces.
+ *
+ * Since: REPLACEME
+ */
+typedef enum { /*< flags >*/
+  HB_OT_VAR_AXIS_FLAG_HIDDEN   = 0x0001u,
+} hb_ot_var_axis_flags_t;
+
+HB_EXTERN hb_ot_var_axis_flags_t
+hb_ot_var_axis_get_flags (hb_face_t    *face,
+                         unsigned int  axis_index);
 
 HB_EXTERN void
 hb_ot_var_normalize_variations (hb_face_t            *face,