## hb-face

hb-face

## Synopsis

    hb_face_t *         hb_face_create                      (hb_blob_t *blob,
                                                             unsigned int index);
    hb_face_t *         hb_face_create_for_tables           (hb_reference_table_func_t reference_table_func,
                                                             void *user_data,
                                                             hb_destroy_func_t destroy);
    void                hb_face_destroy                     (hb_face_t *face);
    hb_face_t *         hb_face_get_empty                   (void);
    unsigned int        hb_face_get_glyph_count             (hb_face_t *face);
    unsigned int        hb_face_get_index                   (hb_face_t *face);
    unsigned int        hb_face_get_upem                    (hb_face_t *face);
    void *              hb_face_get_user_data               (hb_face_t *face,
                                                             hb_user_data_key_t *key);
    hb_bool_t           hb_face_is_immutable                (hb_face_t *face);
    void                hb_face_make_immutable              (hb_face_t *face);
    hb_face_t *         hb_face_reference                   (hb_face_t *face);
    hb_blob_t *         hb_face_reference_blob              (hb_face_t *face);
    hb_blob_t *         hb_face_reference_table             (hb_face_t *face,
                                                             hb_tag_t tag);
    void                hb_face_set_glyph_count             (hb_face_t *face,
                                                             unsigned int glyph_count);
    void                hb_face_set_index                   (hb_face_t *face,
                                                             unsigned int index);
    void                hb_face_set_upem                    (hb_face_t *face,
                                                             unsigned int upem);
    hb_bool_t           hb_face_set_user_data               (hb_face_t *face,
                                                             hb_user_data_key_t *key,
                                                             void *data,
                                                             hb_destroy_func_t destroy,
                                                             hb_bool_t replace);
    typedef             hb_face_t;

## Description

## Details

### hb_face_create ()

    hb_face_t *         hb_face_create                      (hb_blob_t *blob,
                                                             unsigned int index);

### hb_face_create_for_tables ()

    hb_face_t *         hb_face_create_for_tables           (hb_reference_table_func_t reference_table_func,
                                                             void *user_data,
                                                             hb_destroy_func_t destroy);

`reference_table_func` : | . [closure user_data][destroy destroy][scope notified]
Returns : | (transfer full)

Since 1.0

### hb_face_destroy ()

    void                hb_face_destroy                     (hb_face_t *face);

`face` : | a face.

Since 1.0

### hb_face_get_empty ()

    hb_face_t *         hb_face_get_empty                   (void);

Returns : | (transfer full)

Since 1.0

### hb_face_get_glyph_count ()

    unsigned int        hb_face_get_glyph_count             (hb_face_t *face);

`face` : | a face.

Since 1.0

### hb_face_get_index ()

    unsigned int        hb_face_get_index                   (hb_face_t *face);

`face` : | a face.

Since 1.0

### hb_face_get_upem ()

    unsigned int        hb_face_get_upem                    (hb_face_t *face);

`face` : | a face.

Since 1.0

### hb_face_get_user_data ()

    void *              hb_face_get_user_data               (hb_face_t *face,
                                                             hb_user_data_key_t *key);

`face` : | a face.
Returns : | . [transfer none]

Since 1.0

### hb_face_is_immutable ()

    hb_bool_t           hb_face_is_immutable                (hb_face_t *face);

`face` : | a face.

Since 1.0

### hb_face_make_immutable ()

    void                hb_face_make_immutable              (hb_face_t *face);

`face` : | a face.

Since 1.0

### hb_face_reference ()

    hb_face_t *         hb_face_reference                   (hb_face_t *face);

`face` : | a face.

Since 1.0

### hb_face_reference_blob ()

    hb_blob_t *         hb_face_reference_blob              (hb_face_t *face);

`face` : | a face.
Returns : | . [transfer full]

Since 1.0

### hb_face_reference_table ()

    hb_blob_t *         hb_face_reference_table             (hb_face_t *face,
                                                             hb_tag_t tag);

`face` : | a face.
Returns : | . [transfer full]

Since 1.0

### hb_face_set_glyph_count ()

    void                hb_face_set_glyph_count             (hb_face_t *face,
                                                             unsigned int glyph_count);

`face` : | a face.

Since 1.0

### hb_face_set_index ()

    void                hb_face_set_index                   (hb_face_t *face,
                                                             unsigned int index);

`face` : | a face.

Since 1.0

### hb_face_set_upem ()

    void                hb_face_set_upem                    (hb_face_t *face,
                                                             unsigned int upem);

`face` : | a face.

Since 1.0

### hb_face_set_user_data ()

    hb_bool_t           hb_face_set_user_data               (hb_face_t *face,
                                                             hb_user_data_key_t *key,
                                                             void *data,
                                                             hb_destroy_func_t destroy,
                                                             hb_bool_t replace);

`face` : | a face.

Since 1.0

### hb_face_t

    typedef struct hb_face_t hb_face_t;