Imported Upstream version 2.3.1
[platform/upstream/harfbuzz.git] / src / hb-ot-var.h
index a2c0c5f..cf6f0c9 100644 (file)
@@ -47,44 +47,85 @@ HB_BEGIN_DECLS
  * fvar / avar
  */
 
+HB_EXTERN hb_bool_t
+hb_ot_var_has_data (hb_face_t *face);
+
+
+/*
+ * Variation axes.
+ */
+
+
+HB_EXTERN unsigned int
+hb_ot_var_get_axis_count (hb_face_t *face);
+
 /**
- * hb_ot_var_axis_t:
+ * hb_ot_var_axis_flags_t:
+ * @HB_OT_VAR_AXIS_FLAG_HIDDEN: The axis should not be exposed directly in user interfaces.
  *
- * Since: 1.4.2
+ * Since: 2.2.0
  */
-typedef struct hb_ot_var_axis_t {
-  hb_tag_t tag;
-  unsigned int name_id;
-  float min_value;
-  float default_value;
-  float max_value;
-} hb_ot_var_axis_t;
+typedef enum { /*< flags >*/
+  HB_OT_VAR_AXIS_FLAG_HIDDEN   = 0x00000001u,
 
-HB_EXTERN hb_bool_t
-hb_ot_var_has_data (hb_face_t *face);
+  _HB_OT_VAR_AXIS_FLAG_MAX_VALUE= 0x7FFFFFFFu /*< skip >*/
+} hb_ot_var_axis_flags_t;
 
 /**
- * HB_OT_VAR_NO_AXIS_INDEX:
+ * hb_ot_var_axis_info_t:
  *
- * Since: 1.4.2
+ * Since: 2.2.0
  */
-#define HB_OT_VAR_NO_AXIS_INDEX                0xFFFFFFFFu
+typedef struct hb_ot_var_axis_info_t
+{
+  unsigned int                 axis_index;
+  hb_tag_t                     tag;
+  hb_ot_name_id_t              name_id;
+  hb_ot_var_axis_flags_t       flags;
+  float                                min_value;
+  float                                default_value;
+  float                                max_value;
+  /*< private >*/
+  unsigned int                 reserved;
+} hb_ot_var_axis_info_t;
 
 HB_EXTERN unsigned int
-hb_ot_var_get_axis_count (hb_face_t *face);
+hb_ot_var_get_axis_infos (hb_face_t             *face,
+                         unsigned int           start_offset,
+                         unsigned int          *axes_count /* IN/OUT */,
+                         hb_ot_var_axis_info_t *axes_array /* OUT */);
+
+HB_EXTERN hb_bool_t
+hb_ot_var_find_axis_info (hb_face_t             *face,
+                         hb_tag_t               axis_tag,
+                         hb_ot_var_axis_info_t *axis_info);
+
+
+/*
+ * Named instances.
+ */
 
 HB_EXTERN unsigned int
-hb_ot_var_get_axes (hb_face_t        *face,
-                   unsigned int      start_offset,
-                   unsigned int     *axes_count /* IN/OUT */,
-                   hb_ot_var_axis_t *axes_array /* OUT */);
+hb_ot_var_get_named_instance_count (hb_face_t *face);
 
-HB_EXTERN hb_bool_t
-hb_ot_var_find_axis (hb_face_t        *face,
-                    hb_tag_t          axis_tag,
-                    unsigned int     *axis_index,
-                    hb_ot_var_axis_t *axis_info);
+HB_EXTERN hb_ot_name_id_t
+hb_ot_var_named_instance_get_subfamily_name_id (hb_face_t   *face,
+                                               unsigned int instance_index);
 
+HB_EXTERN hb_ot_name_id_t
+hb_ot_var_named_instance_get_postscript_name_id (hb_face_t  *face,
+                                               unsigned int instance_index);
+
+HB_EXTERN unsigned int
+hb_ot_var_named_instance_get_design_coords (hb_face_t    *face,
+                                           unsigned int  instance_index,
+                                           unsigned int *coords_length, /* IN/OUT */
+                                           float        *coords         /* OUT */);
+
+
+/*
+ * Conversions.
+ */
 
 HB_EXTERN void
 hb_ot_var_normalize_variations (hb_face_t            *face,