## hb-ot-var

hb-ot-var — OpenType Font Variations

## Functions

hb_bool_t | hb_ot_var_has_data ()
hb_bool_t | hb_ot_var_find_axis_info ()
unsigned int | hb_ot_var_get_axis_count ()
unsigned int | hb_ot_var_get_axis_infos ()
unsigned int | hb_ot_var_get_named_instance_count ()
hb_ot_name_id_t | hb_ot_var_named_instance_get_subfamily_name_id ()
hb_ot_name_id_t | hb_ot_var_named_instance_get_postscript_name_id ()
unsigned int | hb_ot_var_named_instance_get_design_coords ()
void | hb_ot_var_normalize_variations ()
void | hb_ot_var_normalize_coords ()

## Types and Values

#define | HB_OT_TAG_VAR_AXIS_ITALIC
#define | HB_OT_TAG_VAR_AXIS_OPTICAL_SIZE
#define | HB_OT_TAG_VAR_AXIS_SLANT
#define | HB_OT_TAG_VAR_AXIS_WEIGHT
#define | HB_OT_TAG_VAR_AXIS_WIDTH
enum | hb_ot_var_axis_flags_t

## Object Hierarchy

        GFlags
        ╰── hb_ot_var_axis_flags_t

## Includes

    #include <hb-ot.h>

## Description

Functions for fetching information about OpenType Variable Fonts.

## Functions

### hb_ot_var_has_data ()

    hb_bool_t
    hb_ot_var_has_data (hb_face_t *face);

This function allows to verify the presence of OpenType variation data on the face.

#### Parameters

face | hb_face_t to test |

#### Returns

true if face has a `fvar' table and false otherwise

Since: 1.4.2

### hb_ot_var_find_axis_info ()

    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);

Since: 2.2.0

### hb_ot_var_get_axis_count ()

    unsigned int
    hb_ot_var_get_axis_count (hb_face_t *face);

Since: 1.4.2

### hb_ot_var_get_axis_infos ()

    unsigned int
    hb_ot_var_get_axis_infos (hb_face_t *face,
                              unsigned int start_offset,
                              unsigned int *axes_count,
                              hb_ot_var_axis_info_t *axes_array);

Since: 2.2.0

### hb_ot_var_get_named_instance_count ()

    unsigned int
    hb_ot_var_get_named_instance_count (hb_face_t *face);

### hb_ot_var_named_instance_get_subfamily_name_id ()

    hb_ot_name_id_t
    hb_ot_var_named_instance_get_subfamily_name_id
                                   (hb_face_t *face,
                                    unsigned int instance_index);

### hb_ot_var_named_instance_get_postscript_name_id ()

    hb_ot_name_id_t
    hb_ot_var_named_instance_get_postscript_name_id
                                   (hb_face_t *face,
                                    unsigned int instance_index);

### hb_ot_var_named_instance_get_design_coords ()

    unsigned int
    hb_ot_var_named_instance_get_design_coords
                                   (hb_face_t *face,
                                    unsigned int instance_index,
                                    unsigned int *coords_length,
                                    float *coords);

### hb_ot_var_normalize_variations ()

    void
    hb_ot_var_normalize_variations (hb_face_t *face,
                                    const hb_variation_t *variations,
                                    unsigned int variations_length,
                                    int *coords,
                                    unsigned int coords_length);

Since: 1.4.2

### hb_ot_var_normalize_coords ()

    void
    hb_ot_var_normalize_coords (hb_face_t *face,
                                unsigned int coords_length,
                                const float *design_coords,
                                int *normalized_coords);

Since: 1.4.2

## Types and Values

### HB_OT_TAG_VAR_AXIS_ITALIC

    #define HB_OT_TAG_VAR_AXIS_ITALIC HB_TAG('i','t','a','l')

### HB_OT_TAG_VAR_AXIS_OPTICAL_SIZE

    #define HB_OT_TAG_VAR_AXIS_OPTICAL_SIZE HB_TAG('o','p','s','z')

### HB_OT_TAG_VAR_AXIS_SLANT

    #define HB_OT_TAG_VAR_AXIS_SLANT HB_TAG('s','l','n','t')

### HB_OT_TAG_VAR_AXIS_WEIGHT

    #define HB_OT_TAG_VAR_AXIS_WEIGHT HB_TAG('w','g','h','t')

### HB_OT_TAG_VAR_AXIS_WIDTH

    #define HB_OT_TAG_VAR_AXIS_WIDTH HB_TAG('w','d','t','h')

### enum hb_ot_var_axis_flags_t

#### Members

HB_OT_VAR_AXIS_FLAG_HIDDEN | The axis should not be exposed directly in user interfaces. |
_HB_OT_VAR_AXIS_FLAG_MAX_VALUE |  |

Since: 2.2.0