Imported Upstream version 8.2.2
[platform/upstream/harfbuzz.git] / src / hb-ot-var.cc
index e327fb7..f000f27 100644 (file)
  * Google Author(s): Behdad Esfahbod
  */
 
-#include "hb-open-type.hh"
+#include "hb.hh"
+
+#ifndef HB_NO_VAR
+
+#include "hb-ot-var.h"
 
-#include "hb-ot-face.hh"
 #include "hb-ot-var-avar-table.hh"
 #include "hb-ot-var-fvar-table.hh"
 #include "hb-ot-var-mvar-table.hh"
-#include "hb-ot-var.h"
 
 
 /**
 
 /**
  * hb_ot_var_has_data:
- * @face: #hb_face_t to test
+ * @face: The #hb_face_t to work on
  *
- * This function allows to verify the presence of OpenType variation data on the face.
+ * Tests whether a face includes any OpenType variation data in the `fvar` table.
  *
- * Return value: true if face has a `fvar' table and false otherwise
+ * Return value: `true` if data found, `false` otherwise
  *
  * Since: 1.4.2
  **/
@@ -66,6 +68,11 @@ hb_ot_var_has_data (hb_face_t *face)
 
 /**
  * hb_ot_var_get_axis_count:
+ * @face: The #hb_face_t to work on
+ *
+ * Fetches the number of OpenType variation axes included in the face. 
+ *
+ * Return value: the number of variation axes defined
  *
  * Since: 1.4.2
  **/
@@ -75,11 +82,20 @@ hb_ot_var_get_axis_count (hb_face_t *face)
   return face->table.fvar->get_axis_count ();
 }
 
+#ifndef HB_DISABLE_DEPRECATED
 /**
  * hb_ot_var_get_axes:
+ * @face: #hb_face_t to work upon
+ * @start_offset: offset of the first lookup to retrieve
+ * @axes_count: (inout) (optional): Input = the maximum number of variation axes to return;
+ *                Output = the actual number of variation axes returned (may be zero)
+ * @axes_array: (out caller-allocates) (array length=axes_count): The array of variation axes found
+ *
+ * Fetches a list of all variation axes in the specified face. The list returned will begin
+ * at the offset provided.
  *
  * Since: 1.4.2
- * Deprecated: 2.2.0
+ * Deprecated: 2.2.0: use hb_ot_var_get_axis_infos() instead
  **/
 unsigned int
 hb_ot_var_get_axes (hb_face_t        *face,
@@ -92,9 +108,16 @@ hb_ot_var_get_axes (hb_face_t        *face,
 
 /**
  * hb_ot_var_find_axis:
+ * @face: #hb_face_t to work upon
+ * @axis_tag: The #hb_tag_t of the variation axis to query
+ * @axis_index: The index of the variation axis
+ * @axis_info: (out): The #hb_ot_var_axis_info_t of the axis tag queried
+ *
+ * Fetches the variation-axis information corresponding to the specified axis tag
+ * in the specified face.
  *
  * Since: 1.4.2
- * Deprecated: 2.2.0
+ * Deprecated: 2.2.0 - use hb_ot_var_find_axis_info() instead
  **/
 hb_bool_t
 hb_ot_var_find_axis (hb_face_t        *face,
@@ -104,9 +127,20 @@ hb_ot_var_find_axis (hb_face_t        *face,
 {
   return face->table.fvar->find_axis_deprecated (axis_tag, axis_index, axis_info);
 }
+#endif
 
 /**
  * hb_ot_var_get_axis_infos:
+ * @face: #hb_face_t to work upon
+ * @start_offset: offset of the first lookup to retrieve
+ * @axes_count: (inout) (optional): Input = the maximum number of variation axes to return;
+ *                Output = the actual number of variation axes returned (may be zero)
+ * @axes_array: (out caller-allocates) (array length=axes_count): The array of variation axes found
+ *
+ * Fetches a list of all variation axes in the specified face. The list returned will begin
+ * at the offset provided.
+ *
+ * Return value: the number of variation axes in the face
  *
  * Since: 2.2.0
  **/
@@ -121,6 +155,14 @@ hb_ot_var_get_axis_infos (hb_face_t             *face,
 
 /**
  * hb_ot_var_find_axis_info:
+ * @face: #hb_face_t to work upon
+ * @axis_tag: The #hb_tag_t of the variation axis to query
+ * @axis_info: (out): The #hb_ot_var_axis_info_t of the axis tag queried
+ *
+ * Fetches the variation-axis information corresponding to the specified axis tag
+ * in the specified face.
+ *
+ * Return value: `true` if data found, `false` otherwise
  *
  * Since: 2.2.0
  **/
@@ -137,12 +179,34 @@ hb_ot_var_find_axis_info (hb_face_t             *face,
  * Named instances.
  */
 
+/**
+ * hb_ot_var_get_named_instance_count:
+ * @face: The #hb_face_t to work on
+ *
+ * Fetches the number of named instances included in the face. 
+ *
+ * Return value: the number of named instances defined
+ *
+ * Since: 2.2.0
+ **/
 unsigned int
 hb_ot_var_get_named_instance_count (hb_face_t *face)
 {
   return face->table.fvar->get_instance_count ();
 }
 
+/**
+ * hb_ot_var_named_instance_get_subfamily_name_id:
+ * @face: The #hb_face_t to work on
+ * @instance_index: The index of the named instance to query
+ *
+ * Fetches the `name` table Name ID that provides display names for
+ * the "Subfamily name" defined for the given named instance in the face.
+ *
+ * Return value: the Name ID found for the Subfamily name
+ *
+ * Since: 2.2.0
+ **/
 hb_ot_name_id_t
 hb_ot_var_named_instance_get_subfamily_name_id (hb_face_t   *face,
                                                unsigned int instance_index)
@@ -150,6 +214,18 @@ hb_ot_var_named_instance_get_subfamily_name_id (hb_face_t   *face,
   return face->table.fvar->get_instance_subfamily_name_id (instance_index);
 }
 
+/**
+ * hb_ot_var_named_instance_get_postscript_name_id:
+ * @face: The #hb_face_t to work on
+ * @instance_index: The index of the named instance to query
+ *
+ * Fetches the `name` table Name ID that provides display names for
+ * the "PostScript name" defined for the given named instance in the face.
+ *
+ * Return value: the Name ID found for the PostScript name
+ *
+ * Since: 2.2.0
+ **/
 hb_ot_name_id_t
 hb_ot_var_named_instance_get_postscript_name_id (hb_face_t  *face,
                                                unsigned int instance_index)
@@ -157,6 +233,21 @@ hb_ot_var_named_instance_get_postscript_name_id (hb_face_t  *face,
   return face->table.fvar->get_instance_postscript_name_id (instance_index);
 }
 
+/**
+ * hb_ot_var_named_instance_get_design_coords:
+ * @face: The #hb_face_t to work on
+ * @instance_index: The index of the named instance to query
+ * @coords_length: (inout) (optional): Input = the maximum number of coordinates to return;
+ *                 Output = the actual number of coordinates returned (may be zero)
+ * @coords: (out) (array length=coords_length): The array of coordinates found for the query
+ *
+ * Fetches the design-space coordinates corresponding to the given
+ * named instance in the face.
+ *
+ * Return value: the number of variation axes in the face
+ *
+ * Since: 2.2.0
+ **/
 unsigned int
 hb_ot_var_named_instance_get_design_coords (hb_face_t    *face,
                                            unsigned int  instance_index,
@@ -169,6 +260,13 @@ hb_ot_var_named_instance_get_design_coords (hb_face_t    *face,
 
 /**
  * hb_ot_var_normalize_variations:
+ * @face: The #hb_face_t to work on
+ * @variations: The array of variations to normalize
+ * @variations_length: The number of variations to normalize
+ * @coords: (out) (array length=coords_length): The array of normalized coordinates 
+ * @coords_length: The length of the coordinate array
+ *
+ * Normalizes all of the coordinates in the given list of variation axes.
  *
  * Since: 1.4.2
  **/
@@ -196,6 +294,20 @@ hb_ot_var_normalize_variations (hb_face_t            *face,
 
 /**
  * hb_ot_var_normalize_coords:
+ * @face: The #hb_face_t to work on
+ * @coords_length: The length of the coordinate array
+ * @design_coords: The design-space coordinates to normalize
+ * @normalized_coords: (out): The normalized coordinates
+ *
+ * Normalizes the given design-space coordinates. The minimum and maximum
+ * values for the axis are mapped to the interval [-1,1], with the default
+ * axis value mapped to 0.
+ *
+ * The normalized values have 14 bits of fixed-point sub-integer precision as per
+ * OpenType specification.
+ *
+ * Any additional scaling defined in the face's `avar` table is also
+ * applied, as described at https://docs.microsoft.com/en-us/typography/opentype/spec/avar
  *
  * Since: 1.4.2
  **/
@@ -211,3 +323,6 @@ hb_ot_var_normalize_coords (hb_face_t    *face,
 
   face->table.avar->map_coords (normalized_coords, coords_length);
 }
+
+
+#endif