## hb-ot-name

hb-ot-name — OpenType font name information

## Functions

const hb_ot_name_entry_t * | hb_ot_name_list_names ()
unsigned int | hb_ot_name_get_utf16 ()
unsigned int | hb_ot_name_get_utf32 ()
unsigned int | hb_ot_name_get_utf8 ()

## Includes

    #include <hb-ot.h>

## Description

Functions for fetching name strings from OpenType fonts.

## Functions

### hb_ot_name_list_names ()

    const hb_ot_name_entry_t *
    hb_ot_name_list_names (hb_face_t *face,
                           unsigned int *num_entries);

Enumerates all available name IDs and language combinations. Returned array is owned by the `face` and should not be modified. It can be used as long as `face` is alive.

#### Parameters

face | font face. |
num_entries | number of returned entries. | [out][allow-none]

#### Returns

Array of available name entries.

[out][transfer none][array length=num_entries]

Since: 2.1.0

### hb_ot_name_get_utf16 ()

    unsigned int
    hb_ot_name_get_utf16 (hb_face_t *face,
                          hb_ot_name_id_t name_id,
                          hb_language_t language,
                          unsigned int *text_size,
                          uint16_t *text);

Fetches a font name from the OpenType 'name' table. If `language` is HB_LANGUAGE_INVALID, English ("en") is assumed. Returns string in UTF-16 encoding.

#### Parameters

face | font face. |
name_id | OpenType name identifier to fetch. |
language | language to fetch the name for. |
text_size | input size of `text` buffer, and output size of text written to buffer. | [inout][allow-none]
text | buffer to write fetched name into. | [out caller-allocates][array length=text_size]

#### Returns

full length of the requested string, or 0 if not found.

Since: 2.1.0

### hb_ot_name_get_utf32 ()

    unsigned int
    hb_ot_name_get_utf32 (hb_face_t *face,
                          hb_ot_name_id_t name_id,
                          hb_language_t language,
                          unsigned int *text_size,
                          uint32_t *text);

Fetches a font name from the OpenType 'name' table. If `language` is HB_LANGUAGE_INVALID, English ("en") is assumed. Returns string in UTF-32 encoding.

#### Parameters

face | font face. |
name_id | OpenType name identifier to fetch. |
language | language to fetch the name for. |
text_size | input size of `text` buffer, and output size of text written to buffer. | [inout][allow-none]
text | buffer to write fetched name into. | [out caller-allocates][array length=text_size]

#### Returns

full length of the requested string, or 0 if not found.

Since: 2.1.0

### hb_ot_name_get_utf8 ()

    unsigned int
    hb_ot_name_get_utf8 (hb_face_t *face,
                         hb_ot_name_id_t name_id,
                         hb_language_t language,
                         unsigned int *text_size,
                         char *text);

Fetches a font name from the OpenType 'name' table. If `language` is HB_LANGUAGE_INVALID, English ("en") is assumed. Returns string in UTF-8 encoding.

#### Parameters

face | font face. |
name_id | OpenType name identifier to fetch. |
language | language to fetch the name for. |
text_size | input size of `text` buffer, and output size of text written to buffer. | [inout][allow-none]
text | buffer to write fetched name into. | [out caller-allocates][array length=text_size]

#### Returns

full length of the requested string, or 0 if not found.

Since: 2.1.0

## Types and Values