## hb-shape hb-shape |

## Synopsis

    hb_bool_t           hb_feature_from_string              (const char *str,
                                                             int len,
                                                             hb_feature_t *feature);
                        hb_feature_t;
    void                hb_feature_to_string                (hb_feature_t *feature,
                                                             char *buf,
                                                             unsigned int size);
    void                hb_shape                            (hb_font_t *font,
                                                             hb_buffer_t *buffer,
                                                             const hb_feature_t *features,
                                                             unsigned int num_features);
    hb_bool_t           hb_shape_full                       (hb_font_t *font,
                                                             hb_buffer_t *buffer,
                                                             const hb_feature_t *features,
                                                             unsigned int num_features,
                                                             const char * const *shaper_list);
    const char **       hb_shape_list_shapers               (void);

## Description

## Details

### hb_feature_from_string ()

    hb_bool_t           hb_feature_from_string              (const char *str,
                                                             int len,
                                                             hb_feature_t *feature);

`str` : | . [array length=len]
`feature` : | . [out]

Since 1.0

### hb_feature_t

    typedef struct {
      hb_tag_t      tag;
      uint32_t      value;
      unsigned int  start;
      unsigned int  end;
    } hb_feature_t;

### hb_feature_to_string ()

    void                hb_feature_to_string                (hb_feature_t *feature,
                                                             char *buf,
                                                             unsigned int size);

`buf` : | . [array length=size]

Since 1.0

### hb_shape ()

    void                hb_shape                            (hb_font_t *font,
                                                             hb_buffer_t *buffer,
                                                             const hb_feature_t *features,
                                                             unsigned int num_features);

`font` : | a font.
`buffer` : | a buffer.
`features` : | . [array length=num_features]

Since 1.0

### hb_shape_full ()

    hb_bool_t           hb_shape_full                       (hb_font_t *font,
                                                             hb_buffer_t *buffer,
                                                             const hb_feature_t *features,
                                                             unsigned int num_features,
                                                             const char * const *shaper_list);

`font` : | a font.
`buffer` : | a buffer.
`features` : | . [array length=num_features]
`shaper_list` : | . [array zero-terminated=1]

Since 1.0

### hb_shape_list_shapers ()

    const char **       hb_shape_list_shapers               (void);

Returns : | . [transfer none]

Since 1.0