File indexing completed on 2025-02-21 10:04:02
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR)
0028 #error "Include <hb.h> instead."
0029 #endif
0030
0031 #ifndef HB_SHAPE_PLAN_H
0032 #define HB_SHAPE_PLAN_H
0033
0034 #include "hb-common.h"
0035 #include "hb-font.h"
0036
0037 HB_BEGIN_DECLS
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053 typedef struct hb_shape_plan_t hb_shape_plan_t;
0054
0055 HB_EXTERN hb_shape_plan_t *
0056 hb_shape_plan_create (hb_face_t *face,
0057 const hb_segment_properties_t *props,
0058 const hb_feature_t *user_features,
0059 unsigned int num_user_features,
0060 const char * const *shaper_list);
0061
0062 HB_EXTERN hb_shape_plan_t *
0063 hb_shape_plan_create_cached (hb_face_t *face,
0064 const hb_segment_properties_t *props,
0065 const hb_feature_t *user_features,
0066 unsigned int num_user_features,
0067 const char * const *shaper_list);
0068
0069 HB_EXTERN hb_shape_plan_t *
0070 hb_shape_plan_create2 (hb_face_t *face,
0071 const hb_segment_properties_t *props,
0072 const hb_feature_t *user_features,
0073 unsigned int num_user_features,
0074 const int *coords,
0075 unsigned int num_coords,
0076 const char * const *shaper_list);
0077
0078 HB_EXTERN hb_shape_plan_t *
0079 hb_shape_plan_create_cached2 (hb_face_t *face,
0080 const hb_segment_properties_t *props,
0081 const hb_feature_t *user_features,
0082 unsigned int num_user_features,
0083 const int *coords,
0084 unsigned int num_coords,
0085 const char * const *shaper_list);
0086
0087
0088 HB_EXTERN hb_shape_plan_t *
0089 hb_shape_plan_get_empty (void);
0090
0091 HB_EXTERN hb_shape_plan_t *
0092 hb_shape_plan_reference (hb_shape_plan_t *shape_plan);
0093
0094 HB_EXTERN void
0095 hb_shape_plan_destroy (hb_shape_plan_t *shape_plan);
0096
0097 HB_EXTERN hb_bool_t
0098 hb_shape_plan_set_user_data (hb_shape_plan_t *shape_plan,
0099 hb_user_data_key_t *key,
0100 void * data,
0101 hb_destroy_func_t destroy,
0102 hb_bool_t replace);
0103
0104 HB_EXTERN void *
0105 hb_shape_plan_get_user_data (const hb_shape_plan_t *shape_plan,
0106 hb_user_data_key_t *key);
0107
0108
0109 HB_EXTERN hb_bool_t
0110 hb_shape_plan_execute (hb_shape_plan_t *shape_plan,
0111 hb_font_t *font,
0112 hb_buffer_t *buffer,
0113 const hb_feature_t *features,
0114 unsigned int num_features);
0115
0116 HB_EXTERN const char *
0117 hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan);
0118
0119
0120 HB_END_DECLS
0121
0122 #endif