| Top |  |  |  |  | 
Shape plans are not used for shaping directly, but can be access to query certain information about how shaping will perform given a set of input parameters (script, language, direction, features, etc.) Most client would not need to deal with shape plans directly.
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);
[Xconstructor]
Since: 0.9.7
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);
Since: 0.9.7
hb_shape_plan_t * hb_shape_plan_create2 (hb_face_t *face,const hb_segment_properties_t *props,const hb_feature_t *user_features,unsigned int num_user_features,const int *coords,unsigned int num_coords,const char * const *shaper_list);
hb_shape_plan_t * hb_shape_plan_create_cached2 (hb_face_t *face,const hb_segment_properties_t *props,const hb_feature_t *user_features,unsigned int num_user_features,const int *coords,unsigned int num_coords,const char * const *shaper_list);
void
hb_shape_plan_destroy (hb_shape_plan_t *shape_plan);
[skip]
Since: 0.9.7
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);
| shape_plan | a shape plan. | |
| font | a font. | |
| buffer | a buffer. | |
| features | . | [array length=num_features] | 
Since: 0.9.7
const char *
hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan);
Since: 0.9.7
void * hb_shape_plan_get_user_data (hb_shape_plan_t *shape_plan,hb_user_data_key_t *key);
[skip]
Since: 0.9.7
hb_shape_plan_t *
hb_shape_plan_reference (hb_shape_plan_t *shape_plan);
[skip]
Since: 0.9.7
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);
[skip]
Since: 0.9.7