## hb-shape-plan

hb-shape-plan

## Functions

hb_shape_plan_t * | hb_shape_plan_create ()
hb_shape_plan_t * | hb_shape_plan_create_cached ()
void | hb_shape_plan_destroy ()
hb_bool_t | hb_shape_plan_execute ()
hb_shape_plan_t * | hb_shape_plan_get_empty ()
const char * | hb_shape_plan_get_shaper ()
void * | hb_shape_plan_get_user_data ()
hb_shape_plan_t * | hb_shape_plan_reference ()
hb_bool_t | hb_shape_plan_set_user_data ()

## Types and Values

typedef | hb_shape_plan_t

## Object Hierarchy

        GBoxed
        ╰── hb_shape_plan_t

## Description

## Functions

### hb_shape_plan_create ()

    hb_shape_plan_t *
    hb_shape_plan_create (hb_face_t *face,
                          const hb_segment_properties_t *props,
                          const hb_feature_t *user_features,
                          unsigned int num_user_features,
                          const char * const *shaper_list);

#### Returns

### hb_shape_plan_create_cached ()

    hb_shape_plan_t *
    hb_shape_plan_create_cached (hb_face_t *face,
                                 const hb_segment_properties_t *props,
                                 const hb_feature_t *user_features,
                                 unsigned int num_user_features,
                                 const char * const *shaper_list);

#### Parameters

user_features | . | [array length=num_user_features]
shaper_list | . | [array zero-terminated=1]

#### Returns

.

[transfer full]

Since 1.0

### hb_shape_plan_destroy ()

    void
    hb_shape_plan_destroy (hb_shape_plan_t *shape_plan);

#### Parameters

shape_plan | a shape plan. |

Since 1.0

### hb_shape_plan_execute ()

    hb_bool_t
    hb_shape_plan_execute (hb_shape_plan_t *shape_plan,
                           hb_font_t *font,
                           hb_buffer_t *buffer,
                           const hb_feature_t *features,
                           unsigned int num_features);

#### Parameters

shape_plan | a shape plan. |
font | a font. |
buffer | a buffer. |
features | . | [array length=num_features]

#### Returns

Since 1.0

### hb_shape_plan_get_empty ()

    hb_shape_plan_t *
    hb_shape_plan_get_empty (void);

#### Returns

.

[transfer full]

Since 1.0

### hb_shape_plan_get_shaper ()

    const char *
    hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan);

#### Parameters

shape_plan | a shape plan. |

#### Returns

.

[transfer none]

Since 1.0

### hb_shape_plan_get_user_data ()

    void *
    hb_shape_plan_get_user_data (hb_shape_plan_t *shape_plan,
                                 hb_user_data_key_t *key);

#### Parameters

shape_plan | a shape plan. |

#### Returns

.

[transfer none]

Since 1.0

### hb_shape_plan_reference ()

    hb_shape_plan_t *
    hb_shape_plan_reference (hb_shape_plan_t *shape_plan);

#### Parameters

shape_plan | a shape plan. |

#### Returns

.

[transfer full]

Since 1.0

### hb_shape_plan_set_user_data ()

    hb_bool_t
    hb_shape_plan_set_user_data (hb_shape_plan_t *shape_plan,
                                 hb_user_data_key_t *key,
                                 void *data,
                                 hb_destroy_func_t destroy,
                                 hb_bool_t replace);

#### Parameters

shape_plan | a shape plan. |

#### Returns

Since 1.0

## Types and Values

### hb_shape_plan_t

    typedef struct hb_shape_plan_t hb_shape_plan_t;