1 #ifndef CLIB_HARFBUZZ_PROTOS_H 2 #define CLIB_HARFBUZZ_PROTOS_H 3 4 /* 5 harfbuzz.library C prototypes 6 7 Copyright © 2016-2022 The MorphOS Development Team, All Rights Reserved. 8 */ 9 10 #ifndef LIBRARIES_HARFBUZZ_H 11 # include <libraries/harfbuzz.h> 12 #endif 13 14 #ifdef __cplusplus 15 extern "C" { 16 #endif 17 18 hb_tag_t hb_tag_from_string (const char *str, int len); 19 void hb_tag_to_string (hb_tag_t tag, char *buf); 20 hb_direction_t hb_direction_from_string (const char *str, int len); 21 const char *hb_direction_to_string (hb_direction_t direction); 22 hb_language_t hb_language_from_string (const char *str, int len); 23 const char *hb_language_to_string (hb_language_t language); 24 hb_language_t hb_language_get_default (void); 25 hb_script_t hb_script_from_iso15924_tag (hb_tag_t tag); 26 hb_script_t hb_script_from_string (const char *str, int len); 27 hb_tag_t hb_script_to_iso15924_tag (hb_script_t script); 28 hb_direction_t hb_script_get_horizontal_direction (hb_script_t script); 29 hb_bool_t hb_feature_from_string (const char *str, int len, hb_feature_t *feature); 30 void hb_feature_to_string (hb_feature_t *feature, char *buf, unsigned int size); 31 hb_bool_t hb_variation_from_string (const char *str, int len, hb_variation_t *variation); 32 void hb_variation_to_string (hb_variation_t *variation, char *buf, unsigned int size); 33 34 hb_blob_t *hb_blob_create (const char *data, unsigned int length, hb_memory_mode_t mode, void *user_data, hb_destroy_func_t destroy); 35 hb_blob_t *hb_blob_create_sub_blob (hb_blob_t *parent, unsigned int offset, unsigned int length); 36 hb_blob_t *hb_blob_get_empty (void); 37 hb_blob_t *hb_blob_reference (hb_blob_t *blob); 38 void hb_blob_destroy (hb_blob_t *blob); 39 hb_bool_t hb_blob_set_user_data (hb_blob_t *blob, hb_user_data_key_t *key, void * data, hb_destroy_func_t destroy, hb_bool_t replace); 40 void *hb_blob_get_user_data (hb_blob_t *blob, hb_user_data_key_t *key); 41 void hb_blob_make_immutable (hb_blob_t *blob); 42 hb_bool_t hb_blob_is_immutable (hb_blob_t *blob); 43 unsigned int hb_blob_get_length (hb_blob_t *blob); 44 const char *hb_blob_get_data (hb_blob_t *blob, unsigned int *length); 45 char *hb_blob_get_data_writable (hb_blob_t *blob, unsigned int *length); 46 hb_blob_t *hb_blob_copy_writable_or_fail (hb_blob_t *blob); 47 48 hb_bool_t hb_segment_properties_equal (const hb_segment_properties_t *a, const hb_segment_properties_t *b); 49 unsigned int hb_segment_properties_hash (const hb_segment_properties_t *p); 50 hb_buffer_t *hb_buffer_create (void); 51 hb_buffer_t *hb_buffer_get_empty (void); 52 hb_buffer_t *hb_buffer_reference (hb_buffer_t *buffer); 53 void hb_buffer_destroy (hb_buffer_t *buffer); 54 hb_bool_t hb_buffer_set_user_data (hb_buffer_t *buffer, hb_user_data_key_t *key, void *data, hb_destroy_func_t destroy, hb_bool_t replace); 55 void *hb_buffer_get_user_data (hb_buffer_t *buffer, hb_user_data_key_t *key); 56 void hb_buffer_set_content_type (hb_buffer_t *buffer, hb_buffer_content_type_t content_type); 57 hb_buffer_content_type_t hb_buffer_get_content_type (hb_buffer_t *buffer); 58 void hb_buffer_set_unicode_funcs (hb_buffer_t *buffer, hb_unicode_funcs_t *unicode_funcs); 59 hb_unicode_funcs_t *hb_buffer_get_unicode_funcs (hb_buffer_t *buffer); 60 void hb_buffer_set_direction (hb_buffer_t *buffer, hb_direction_t direction); 61 hb_direction_t hb_buffer_get_direction (hb_buffer_t *buffer); 62 void hb_buffer_set_script (hb_buffer_t *buffer, hb_script_t script); 63 hb_script_t hb_buffer_get_script (hb_buffer_t *buffer); 64 void hb_buffer_set_language (hb_buffer_t *buffer, hb_language_t language); 65 hb_language_t hb_buffer_get_language (hb_buffer_t *buffer); 66 void hb_buffer_set_segment_properties (hb_buffer_t *buffer, const hb_segment_properties_t *props); 67 void hb_buffer_get_segment_properties (hb_buffer_t *buffer, hb_segment_properties_t *props); 68 void hb_buffer_guess_segment_properties (hb_buffer_t *buffer); 69 void hb_buffer_set_flags (hb_buffer_t *buffer, hb_buffer_flags_t flags); 70 hb_buffer_flags_t hb_buffer_get_flags (hb_buffer_t *buffer); 71 void hb_buffer_set_cluster_level (hb_buffer_t *buffer, hb_buffer_cluster_level_t cluster_level); 72 hb_buffer_cluster_level_t hb_buffer_get_cluster_level (hb_buffer_t *buffer); 73 void hb_buffer_set_replacement_codepoint (hb_buffer_t *buffer, hb_codepoint_t replacement); 74 hb_codepoint_t hb_buffer_get_replacement_codepoint (hb_buffer_t *buffer); 75 void hb_buffer_reset (hb_buffer_t *buffer); 76 void hb_buffer_clear_contents (hb_buffer_t *buffer); 77 hb_bool_t hb_buffer_pre_allocate (hb_buffer_t *buffer, unsigned int size); 78 hb_bool_t hb_buffer_allocation_successful (hb_buffer_t *buffer); 79 void hb_buffer_reverse (hb_buffer_t *buffer); 80 void hb_buffer_reverse_range (hb_buffer_t *buffer, unsigned int start, unsigned int end); 81 void hb_buffer_reverse_clusters (hb_buffer_t *buffer); 82 void hb_buffer_add (hb_buffer_t *buffer, hb_codepoint_t codepoint, unsigned int cluster); 83 void hb_buffer_add_utf8 (hb_buffer_t *buffer, const char *text, int text_length, unsigned int item_offset, int item_length); 84 void hb_buffer_add_utf16 (hb_buffer_t *buffer, const uint16_t *text, int text_length, unsigned int item_offset, int item_length); 85 void hb_buffer_add_utf32 (hb_buffer_t *buffer, const uint32_t *text, int text_length, unsigned int item_offset, int item_length); 86 void hb_buffer_add_latin1 (hb_buffer_t *buffer, const uint8_t *text, int text_length, unsigned int item_offset, int item_length); 87 void hb_buffer_add_codepoints (hb_buffer_t *buffer, const hb_codepoint_t *text, int text_length, unsigned int item_offset, int item_length); 88 hb_bool_t hb_buffer_set_length (hb_buffer_t *buffer, unsigned int length); 89 unsigned int hb_buffer_get_length (hb_buffer_t *buffer); 90 hb_glyph_info_t *hb_buffer_get_glyph_infos (hb_buffer_t *buffer, unsigned int *length); 91 hb_glyph_position_t *hb_buffer_get_glyph_positions (hb_buffer_t *buffer, unsigned int *length); 92 void hb_buffer_normalize_glyphs (hb_buffer_t *buffer); 93 hb_buffer_serialize_format_t hb_buffer_serialize_format_from_string (const char *str, int len); 94 const char *hb_buffer_serialize_format_to_string (hb_buffer_serialize_format_t format); 95 const char **hb_buffer_serialize_list_formats (void); 96 unsigned int hb_buffer_serialize_glyphs (hb_buffer_t *buffer, unsigned int start, unsigned int end, char *buf, unsigned int buf_size, unsigned int *buf_consumed, hb_font_t *font, hb_buffer_serialize_format_t format, hb_buffer_serialize_flags_t flags); 97 hb_bool_t hb_buffer_deserialize_glyphs (hb_buffer_t *buffer, const char *buf, int buf_len, const char **end_ptr, hb_font_t *font, hb_buffer_serialize_format_t format); 98 void hb_buffer_set_message_func (hb_buffer_t *buffer, hb_buffer_message_func_t func, void *user_data, hb_destroy_func_t destroy); 99 #undef hb_glyph_info_get_glyph_flags 100 hb_glyph_flags_t hb_glyph_info_get_glyph_flags (const hb_glyph_info_t *info); 101 void hb_buffer_append (hb_buffer_t *buffer, hb_buffer_t *source, unsigned int start, unsigned int end); 102 hb_buffer_diff_flags_t hb_buffer_diff (hb_buffer_t *buffer, hb_buffer_t *reference, hb_codepoint_t dottedcircle_glyph, unsigned int position_fuzz); 103 104 hb_face_t *hb_face_create (hb_blob_t *blob, unsigned int index); 105 hb_face_t *hb_face_create_for_tables (hb_reference_table_func_t reference_table_func, void *user_data, hb_destroy_func_t destroy); 106 hb_face_t *hb_face_get_empty (void); 107 hb_face_t *hb_face_reference (hb_face_t *face); 108 void hb_face_destroy (hb_face_t *face); 109 hb_bool_t hb_face_set_user_data (hb_face_t *face, hb_user_data_key_t *key, void *data, hb_destroy_func_t destroy, hb_bool_t replace); 110 void *hb_face_get_user_data (hb_face_t *face, hb_user_data_key_t *key); 111 void hb_face_make_immutable (hb_face_t *face); 112 hb_bool_t hb_face_is_immutable (hb_face_t *face); 113 hb_blob_t *hb_face_reference_table (hb_face_t *face, hb_tag_t tag); 114 hb_blob_t *hb_face_reference_blob (hb_face_t *face); 115 void hb_face_set_index (hb_face_t *face, unsigned int index); 116 unsigned int hb_face_get_index (hb_face_t *face); 117 void hb_face_set_upem (hb_face_t *face, unsigned int upem); 118 unsigned int hb_face_get_upem (hb_face_t *face); 119 void hb_face_set_glyph_count (hb_face_t *face, unsigned int glyph_count); 120 unsigned int hb_face_get_glyph_count (hb_face_t *face); 121 unsigned int hb_face_get_table_tags (hb_face_t *face, unsigned int start_offset, unsigned int *table_count, hb_tag_t *table_tags); 122 123 hb_font_funcs_t *hb_font_funcs_create (void); 124 hb_font_funcs_t *hb_font_funcs_get_empty (void); 125 hb_font_funcs_t *hb_font_funcs_reference (hb_font_funcs_t *ffuncs); 126 void hb_font_funcs_destroy (hb_font_funcs_t *ffuncs); 127 hb_bool_t hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs, hb_user_data_key_t *key, void *data, hb_destroy_func_t destroy, hb_bool_t replace); 128 void *hb_font_funcs_get_user_data (hb_font_funcs_t *ffuncs, hb_user_data_key_t *key); 129 void hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs); 130 hb_bool_t hb_font_funcs_is_immutable (hb_font_funcs_t *ffuncs); 131 void hb_font_funcs_set_font_h_extents_func (hb_font_funcs_t *ffuncs, hb_font_get_font_h_extents_func_t func, void *user_data, hb_destroy_func_t destroy); 132 void hb_font_funcs_set_font_v_extents_func (hb_font_funcs_t *ffuncs, hb_font_get_font_v_extents_func_t func, void *user_data, hb_destroy_func_t destroy); 133 HB_DEPRECATED_FOR (hb_font_funcs_set_nominal_glyph_func and hb_font_funcs_set_variation_glyph_func) void hb_font_funcs_set_glyph_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_func_t func, void *user_data, hb_destroy_func_t destroy); 134 void hb_font_funcs_set_nominal_glyph_func (hb_font_funcs_t *ffuncs, hb_font_get_nominal_glyph_func_t func, void *user_data, hb_destroy_func_t destroy); 135 void hb_font_funcs_set_variation_glyph_func (hb_font_funcs_t *ffuncs, hb_font_get_variation_glyph_func_t func, void *user_data, hb_destroy_func_t destroy); 136 void hb_font_funcs_set_glyph_h_advance_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_h_advance_func_t func, void *user_data, hb_destroy_func_t destroy); 137 void hb_font_funcs_set_glyph_v_advance_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_v_advance_func_t func, void *user_data, hb_destroy_func_t destroy); 138 void hb_font_funcs_set_glyph_h_origin_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_h_origin_func_t func, void *user_data, hb_destroy_func_t destroy); 139 void hb_font_funcs_set_glyph_v_origin_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_v_origin_func_t func, void *user_data, hb_destroy_func_t destroy); 140 void hb_font_funcs_set_glyph_h_kerning_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_h_kerning_func_t func, void *user_data, hb_destroy_func_t destroy); 141 HB_DEPRECATED void hb_font_funcs_set_glyph_v_kerning_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_v_kerning_func_t func, void *user_data, hb_destroy_func_t destroy); 142 void hb_font_funcs_set_glyph_extents_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_extents_func_t func, void *user_data, hb_destroy_func_t destroy); 143 void hb_font_funcs_set_glyph_contour_point_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_contour_point_func_t func, void *user_data, hb_destroy_func_t destroy); 144 void hb_font_funcs_set_glyph_name_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_name_func_t func, void *user_data, hb_destroy_func_t destroy); 145 void hb_font_funcs_set_glyph_from_name_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_from_name_func_t func, void *user_data, hb_destroy_func_t destroy); 146 hb_bool_t hb_font_get_h_extents (hb_font_t *font, hb_font_extents_t *extents); 147 hb_bool_t hb_font_get_v_extents (hb_font_t *font, hb_font_extents_t *extents); 148 hb_bool_t hb_font_get_glyph (hb_font_t *font, hb_codepoint_t unicode, hb_codepoint_t variation_selector, hb_codepoint_t *glyph); 149 hb_bool_t hb_font_get_nominal_glyph (hb_font_t *font, hb_codepoint_t unicode, hb_codepoint_t *glyph); 150 hb_bool_t hb_font_get_variation_glyph (hb_font_t *font, hb_codepoint_t unicode, hb_codepoint_t variation_selector, hb_codepoint_t *glyph); 151 hb_position_t hb_font_get_glyph_h_advance (hb_font_t *font, hb_codepoint_t glyph); 152 hb_position_t hb_font_get_glyph_v_advance (hb_font_t *font, hb_codepoint_t glyph); 153 hb_bool_t hb_font_get_glyph_h_origin (hb_font_t *font, hb_codepoint_t glyph, hb_position_t *x, hb_position_t *y); 154 hb_bool_t hb_font_get_glyph_v_origin (hb_font_t *font, hb_codepoint_t glyph, hb_position_t *x, hb_position_t *y); 155 hb_position_t hb_font_get_glyph_h_kerning (hb_font_t *font, hb_codepoint_t left_glyph, hb_codepoint_t right_glyph); 156 HB_DEPRECATED hb_position_t hb_font_get_glyph_v_kerning (hb_font_t *font, hb_codepoint_t top_glyph, hb_codepoint_t bottom_glyph); 157 hb_bool_t hb_font_get_glyph_extents (hb_font_t *font, hb_codepoint_t glyph, hb_glyph_extents_t *extents); 158 hb_bool_t hb_font_get_glyph_contour_point (hb_font_t *font, hb_codepoint_t glyph, unsigned int point_index, hb_position_t *x, hb_position_t *y); 159 hb_bool_t hb_font_get_glyph_name (hb_font_t *font, hb_codepoint_t glyph, char *name, unsigned int size); 160 hb_bool_t hb_font_get_glyph_from_name (hb_font_t *font, const char *name, int len, hb_codepoint_t *glyph); 161 void hb_font_get_extents_for_direction (hb_font_t *font, hb_direction_t direction, hb_font_extents_t *extents); 162 void hb_font_get_glyph_advance_for_direction (hb_font_t *font, hb_codepoint_t glyph, hb_direction_t direction, hb_position_t *x, hb_position_t *y); 163 void hb_font_get_glyph_origin_for_direction (hb_font_t *font, hb_codepoint_t glyph, hb_direction_t direction, hb_position_t *x, hb_position_t *y); 164 void hb_font_add_glyph_origin_for_direction (hb_font_t *font, hb_codepoint_t glyph, hb_direction_t direction, hb_position_t *x, hb_position_t *y); 165 void hb_font_subtract_glyph_origin_for_direction (hb_font_t *font, hb_codepoint_t glyph, hb_direction_t direction, hb_position_t *x, hb_position_t *y); 166 void hb_font_get_glyph_kerning_for_direction (hb_font_t *font, hb_codepoint_t first_glyph, hb_codepoint_t second_glyph, hb_direction_t direction, hb_position_t *x, hb_position_t *y); 167 hb_bool_t hb_font_get_glyph_extents_for_origin (hb_font_t *font, hb_codepoint_t glyph, hb_direction_t direction, hb_glyph_extents_t *extents); 168 hb_bool_t hb_font_get_glyph_contour_point_for_origin (hb_font_t *font, hb_codepoint_t glyph, unsigned int point_index, hb_direction_t direction, hb_position_t *x, hb_position_t *y); 169 void hb_font_glyph_to_string (hb_font_t *font, hb_codepoint_t glyph, char *s, unsigned int size); 170 hb_bool_t hb_font_glyph_from_string (hb_font_t *font, const char *s, int len, hb_codepoint_t *glyph); 171 hb_font_t *hb_font_create (hb_face_t *face); 172 hb_font_t *hb_font_create_sub_font (hb_font_t *parent); 173 hb_font_t *hb_font_get_empty (void); 174 hb_font_t *hb_font_reference (hb_font_t *font); 175 void hb_font_destroy (hb_font_t *font); 176 hb_bool_t hb_font_set_user_data (hb_font_t *font, hb_user_data_key_t *key, void *data, hb_destroy_func_t destroy, hb_bool_t replace); 177 void *hb_font_get_user_data (hb_font_t *font, hb_user_data_key_t *key); 178 void hb_font_make_immutable (hb_font_t *font); 179 hb_bool_t hb_font_is_immutable (hb_font_t *font); 180 void hb_font_set_parent (hb_font_t *font, hb_font_t *parent); 181 hb_font_t *hb_font_get_parent (hb_font_t *font); 182 void hb_font_set_face (hb_font_t *font, hb_face_t *face); 183 hb_face_t *hb_font_get_face (hb_font_t *font); 184 void hb_font_set_funcs (hb_font_t *font, hb_font_funcs_t *klass, void *font_data, hb_destroy_func_t destroy); 185 void hb_font_set_funcs_data (hb_font_t *font, void *font_data, hb_destroy_func_t destroy); 186 void hb_font_set_scale (hb_font_t *font, int x_scale, int y_scale); 187 void hb_font_get_scale (hb_font_t *font, int *x_scale, int *y_scale); 188 void hb_font_set_ppem (hb_font_t *font, unsigned int x_ppem, unsigned int y_ppem); 189 void hb_font_get_ppem (hb_font_t *font, unsigned int *x_ppem, unsigned int *y_ppem); 190 void hb_font_set_variations (hb_font_t *font, const hb_variation_t *variations, unsigned int variations_length); 191 void hb_font_set_var_coords_design (hb_font_t *font, const float *coords, unsigned int coords_length); 192 void hb_font_set_var_coords_normalized (hb_font_t *font, const int *coords, unsigned int coords_length); 193 const int *hb_font_get_var_coords_normalized (hb_font_t *font, unsigned int *length); 194 void hb_font_set_ptem (hb_font_t *font, float ptem); 195 float hb_font_get_ptem (hb_font_t *font); 196 197 hb_set_t *hb_set_create (void); 198 hb_set_t *hb_set_get_empty (void); 199 hb_set_t *hb_set_reference (hb_set_t *set); 200 void hb_set_destroy (hb_set_t *set); 201 hb_bool_t hb_set_set_user_data (hb_set_t *set, hb_user_data_key_t *key, void *data, hb_destroy_func_t destroy, hb_bool_t replace); 202 void *hb_set_get_user_data (hb_set_t *set, hb_user_data_key_t *key); 203 hb_bool_t hb_set_allocation_successful (const hb_set_t *set); 204 void hb_set_clear (hb_set_t *set); 205 hb_bool_t hb_set_is_empty (const hb_set_t *set); 206 hb_bool_t hb_set_has (const hb_set_t *set, hb_codepoint_t codepoint); 207 void hb_set_add (hb_set_t *set, hb_codepoint_t codepoint); 208 void hb_set_add_range (hb_set_t *set, hb_codepoint_t first, hb_codepoint_t last); 209 void hb_set_del (hb_set_t *set, hb_codepoint_t codepoint); 210 void hb_set_del_range (hb_set_t *set, hb_codepoint_t first, hb_codepoint_t last); 211 hb_bool_t hb_set_is_equal (const hb_set_t *set, const hb_set_t *other); 212 void hb_set_set (hb_set_t *set, const hb_set_t *other); 213 void hb_set_union (hb_set_t *set, const hb_set_t *other); 214 void hb_set_intersect (hb_set_t *set, const hb_set_t *other); 215 void hb_set_subtract (hb_set_t *set, const hb_set_t *other); 216 void hb_set_symmetric_difference (hb_set_t *set, const hb_set_t *other); 217 void hb_set_invert (hb_set_t *set); 218 unsigned int hb_set_get_population (const hb_set_t *set); 219 hb_codepoint_t hb_set_get_min (const hb_set_t *set); 220 hb_codepoint_t hb_set_get_max (const hb_set_t *set); 221 hb_bool_t hb_set_next (const hb_set_t *set, hb_codepoint_t *codepoint); 222 hb_bool_t hb_set_next_range (const hb_set_t *set, hb_codepoint_t *first, hb_codepoint_t *last); 223 hb_bool_t hb_set_previous (const hb_set_t *set, hb_codepoint_t *codepoint); 224 hb_bool_t hb_set_previous_range (const hb_set_t *set, hb_codepoint_t *first, hb_codepoint_t *last); 225 226 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); 227 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); 228 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); 229 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); 230 hb_shape_plan_t *hb_shape_plan_get_empty (void); 231 hb_shape_plan_t *hb_shape_plan_reference (hb_shape_plan_t *shape_plan); 232 void hb_shape_plan_destroy (hb_shape_plan_t *shape_plan); 233 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); 234 void *hb_shape_plan_get_user_data (hb_shape_plan_t *shape_plan, hb_user_data_key_t *key); 235 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); 236 const char *hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan); 237 238 void hb_shape (hb_font_t *font, hb_buffer_t *buffer, const hb_feature_t *features, unsigned int num_features); 239 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); 240 const char **hb_shape_list_shapers (void); 241 242 hb_unicode_funcs_t *hb_unicode_funcs_get_default_REF (void); 243 hb_unicode_funcs_t *hb_unicode_funcs_create (hb_unicode_funcs_t *parent); 244 hb_unicode_funcs_t *hb_unicode_funcs_get_empty (void); 245 hb_unicode_funcs_t *hb_unicode_funcs_reference (hb_unicode_funcs_t *ufuncs); 246 void hb_unicode_funcs_destroy (hb_unicode_funcs_t *ufuncs); 247 hb_bool_t hb_unicode_funcs_set_user_data (hb_unicode_funcs_t *ufuncs, hb_user_data_key_t *key, void *data, hb_destroy_func_t destroy, hb_bool_t replace); 248 void *hb_unicode_funcs_get_user_data (hb_unicode_funcs_t *ufuncs, hb_user_data_key_t *key); 249 void hb_unicode_funcs_make_immutable (hb_unicode_funcs_t *ufuncs); 250 hb_bool_t hb_unicode_funcs_is_immutable (hb_unicode_funcs_t *ufuncs); 251 hb_unicode_funcs_t *hb_unicode_funcs_get_parent (hb_unicode_funcs_t *ufuncs); 252 void hb_unicode_funcs_set_combining_class_func (hb_unicode_funcs_t *ufuncs, hb_unicode_combining_class_func_t func, void *user_data, hb_destroy_func_t destroy); 253 HB_DEPRECATED void hb_unicode_funcs_set_eastasian_width_func (hb_unicode_funcs_t *ufuncs, hb_unicode_eastasian_width_func_t func, void *user_data, hb_destroy_func_t destroy); 254 void hb_unicode_funcs_set_general_category_func (hb_unicode_funcs_t *ufuncs, hb_unicode_general_category_func_t func, void *user_data, hb_destroy_func_t destroy); 255 void hb_unicode_funcs_set_mirroring_func (hb_unicode_funcs_t *ufuncs, hb_unicode_mirroring_func_t func, void *user_data, hb_destroy_func_t destroy); 256 void hb_unicode_funcs_set_script_func (hb_unicode_funcs_t *ufuncs, hb_unicode_script_func_t func, void *user_data, hb_destroy_func_t destroy); 257 void hb_unicode_funcs_set_compose_func (hb_unicode_funcs_t *ufuncs, hb_unicode_compose_func_t func, void *user_data, hb_destroy_func_t destroy); 258 void hb_unicode_funcs_set_decompose_func (hb_unicode_funcs_t *ufuncs, hb_unicode_decompose_func_t func, void *user_data, hb_destroy_func_t destroy); 259 HB_DEPRECATED void hb_unicode_funcs_set_decompose_compatibility_func (hb_unicode_funcs_t *ufuncs, hb_unicode_decompose_compatibility_func_t func, void *user_data, hb_destroy_func_t destroy); 260 hb_unicode_combining_class_t hb_unicode_combining_class (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode); 261 HB_DEPRECATED unsigned int hb_unicode_eastasian_width (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode); 262 hb_unicode_general_category_t hb_unicode_general_category (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode); 263 hb_codepoint_t hb_unicode_mirroring (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode); 264 hb_script_t hb_unicode_script (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode); 265 hb_bool_t hb_unicode_compose (hb_unicode_funcs_t *ufuncs, hb_codepoint_t a, hb_codepoint_t b, hb_codepoint_t *ab); 266 hb_bool_t hb_unicode_decompose (hb_unicode_funcs_t *ufuncs, hb_codepoint_t ab, hb_codepoint_t *a, hb_codepoint_t *b); 267 HB_DEPRECATED unsigned int hb_unicode_decompose_compatibility (hb_unicode_funcs_t *ufuncs, hb_codepoint_t u, hb_codepoint_t *decomposed); 268 269 void hb_version (unsigned int *major, unsigned int *minor, unsigned int *micro); 270 const char *hb_version_string (void); 271 hb_bool_t hb_version_atleast (unsigned int major, unsigned int minor, unsigned int micro); 272 273 hb_face_t *hb_ft_face_create (void *ft_face, hb_destroy_func_t destroy); 274 hb_face_t *hb_ft_face_create_cached (void *ft_face); 275 hb_face_t *hb_ft_face_create_referenced (void *ft_face); 276 hb_font_t *hb_ft_font_create (void *ft_face, hb_destroy_func_t destroy); 277 hb_font_t *hb_ft_font_create_referenced (void *ft_face); 278 void *hb_ft_font_get_face (hb_font_t *font); 279 void hb_ft_font_set_load_flags (hb_font_t *font, int load_flags); 280 int hb_ft_font_get_load_flags (hb_font_t *font); 281 void hb_ft_font_set_funcs (hb_font_t *font); 282 void hb_ft_font_changed (hb_font_t *font); 283 284 void hb_ot_font_set_funcs (hb_font_t *font); 285 hb_bool_t hb_ot_layout_has_glyph_classes (hb_face_t *face); 286 hb_ot_layout_glyph_class_t hb_ot_layout_get_glyph_class (hb_face_t *face, hb_codepoint_t glyph); 287 void hb_ot_layout_get_glyphs_in_class (hb_face_t *face, hb_ot_layout_glyph_class_t klass, hb_set_t *glyphs); 288 unsigned int hb_ot_layout_get_attach_points (hb_face_t *face, hb_codepoint_t glyph, unsigned int start_offset, unsigned int *point_count, unsigned int *point_array); 289 unsigned int hb_ot_layout_get_ligature_carets (hb_font_t *font, hb_direction_t direction, hb_codepoint_t glyph, unsigned int start_offset, unsigned int *caret_count, hb_position_t *caret_array); 290 unsigned int hb_ot_layout_table_get_script_tags (hb_face_t *face, hb_tag_t table_tag, unsigned int start_offset, unsigned int *script_count, hb_tag_t *script_tags); 291 hb_bool_t hb_ot_layout_table_find_script (hb_face_t *face, hb_tag_t table_tag, hb_tag_t script_tag, unsigned int *script_index); 292 HB_DEPRECATED_FOR (hb_ot_layout_table_select_script) hb_bool_t hb_ot_layout_table_choose_script (hb_face_t *face, hb_tag_t table_tag, const hb_tag_t *script_tags, unsigned int *script_index, hb_tag_t *chosen_script); 293 unsigned int hb_ot_layout_table_get_feature_tags (hb_face_t *face, hb_tag_t table_tag, unsigned int start_offset, unsigned int *feature_count, hb_tag_t *feature_tags); 294 unsigned int hb_ot_layout_script_get_language_tags (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int start_offset, unsigned int *language_count, hb_tag_t *language_tags); 295 HB_DEPRECATED_FOR (hb_ot_layout_script_select_language) hb_bool_t hb_ot_layout_script_find_language (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, hb_tag_t language_tag, unsigned int *language_index); 296 hb_bool_t hb_ot_layout_language_get_required_feature_index (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, unsigned int *feature_index); 297 hb_bool_t hb_ot_layout_language_get_required_feature (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, unsigned int *feature_index, hb_tag_t *feature_tag); 298 unsigned int hb_ot_layout_language_get_feature_indexes (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, unsigned int start_offset, unsigned int *feature_count, unsigned int *feature_indexes); 299 unsigned int hb_ot_layout_language_get_feature_tags (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, unsigned int start_offset, unsigned int *feature_count, hb_tag_t *feature_tags); 300 hb_bool_t hb_ot_layout_language_find_feature (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, hb_tag_t feature_tag, unsigned int *feature_index); 301 unsigned int hb_ot_layout_feature_get_lookups (hb_face_t *face, hb_tag_t table_tag, unsigned int feature_index, unsigned int start_offset, unsigned int *lookup_count, unsigned int *lookup_indexes); 302 unsigned int hb_ot_layout_table_get_lookup_count (hb_face_t *face, hb_tag_t table_tag); 303 void hb_ot_layout_collect_lookups (hb_face_t *face, hb_tag_t table_tag, const hb_tag_t *scripts, const hb_tag_t *languages, const hb_tag_t *features, hb_set_t *lookup_indexes); 304 void hb_ot_layout_lookup_collect_glyphs (hb_face_t *face, hb_tag_t table_tag, unsigned int lookup_index, hb_set_t *glyphs_before, hb_set_t *glyphs_input, hb_set_t *glyphs_after, hb_set_t *glyphs_output); 305 hb_bool_t hb_ot_layout_table_find_feature_variations (hb_face_t *face, hb_tag_t table_tag, const int *coords, unsigned int num_coords, unsigned int *variations_index); 306 unsigned int hb_ot_layout_feature_with_variations_get_lookups (hb_face_t *face, hb_tag_t table_tag, unsigned int feature_index, unsigned int variations_index, unsigned int start_offset, unsigned int *lookup_count, unsigned int *lookup_indexes); 307 hb_bool_t hb_ot_layout_has_substitution (hb_face_t *face); 308 hb_bool_t hb_ot_layout_lookup_would_substitute (hb_face_t *face, unsigned int lookup_index, const hb_codepoint_t *glyphs, unsigned int glyphs_length, hb_bool_t zero_context); 309 void hb_ot_layout_lookup_substitute_closure (hb_face_t *face, unsigned int lookup_index, hb_set_t *glyphs); 310 hb_bool_t hb_ot_layout_has_positioning (hb_face_t *face); 311 hb_bool_t hb_ot_layout_get_size_params (hb_face_t *face, unsigned int *design_size, unsigned int *subfamily_id, unsigned int *subfamily_name_id, unsigned int *range_start, unsigned int *range_end); 312 hb_bool_t hb_ot_math_has_data (hb_face_t *face); 313 hb_position_t hb_ot_math_get_constant (hb_font_t *font, hb_ot_math_constant_t constant); 314 hb_position_t hb_ot_math_get_glyph_italics_correction (hb_font_t *font, hb_codepoint_t glyph); 315 hb_position_t hb_ot_math_get_glyph_top_accent_attachment (hb_font_t *font, hb_codepoint_t glyph); 316 hb_bool_t hb_ot_math_is_glyph_extended_shape (hb_face_t *face, hb_codepoint_t glyph); 317 hb_position_t hb_ot_math_get_glyph_kerning (hb_font_t *font, hb_codepoint_t glyph, hb_ot_math_kern_t kern, hb_position_t correction_height); 318 unsigned int hb_ot_math_get_glyph_variants (hb_font_t *font, hb_codepoint_t glyph, hb_direction_t direction, unsigned int start_offset, unsigned int *variants_count, hb_ot_math_glyph_variant_t *variants); 319 hb_position_t hb_ot_math_get_min_connector_overlap (hb_font_t *font, hb_direction_t direction); 320 unsigned int hb_ot_math_get_glyph_assembly (hb_font_t *font, hb_codepoint_t glyph, hb_direction_t direction, unsigned int start_offset, unsigned int *parts_count, hb_ot_math_glyph_part_t *parts, hb_position_t *italics_correction); 321 void hb_ot_shape_glyphs_closure (hb_font_t *font, hb_buffer_t *buffer, const hb_feature_t *features, unsigned int num_features, hb_set_t *glyphs); 322 void hb_ot_shape_plan_collect_lookups (hb_shape_plan_t *shape_plan, hb_tag_t table_tag, hb_set_t *lookup_indexes); 323 HB_DEPRECATED_FOR (hb_ot_tags_from_script_and_language) void hb_ot_tags_from_script (hb_script_t script, hb_tag_t *script_tag_1, hb_tag_t *script_tag_2); 324 hb_script_t hb_ot_tag_to_script (hb_tag_t tag); 325 HB_DEPRECATED_FOR (hb_ot_tags_from_script_and_language) hb_tag_t hb_ot_tag_from_language (hb_language_t language); 326 hb_language_t hb_ot_tag_to_language (hb_tag_t tag); 327 hb_bool_t hb_ot_var_has_data (hb_face_t *face); 328 unsigned int hb_ot_var_get_axis_count (hb_face_t *face); 329 HB_DEPRECATED_FOR (hb_ot_var_get_axis_infos) unsigned int hb_ot_var_get_axes (hb_face_t *face, unsigned int start_offset, unsigned int *axes_count, hb_ot_var_axis_t *axes_array); 330 HB_DEPRECATED_FOR (hb_ot_var_find_axis_info) hb_bool_t hb_ot_var_find_axis (hb_face_t *face, hb_tag_t axis_tag, unsigned int *axis_index, hb_ot_var_axis_t *axis_info); 331 void hb_ot_var_normalize_variations (hb_face_t *face, const hb_variation_t *variations, unsigned int variations_length, int *coords, unsigned int coords_length); 332 void hb_ot_var_normalize_coords (hb_face_t *face, unsigned int coords_length, const float *design_coords, int *normalized_coords); 333 334 /* 1.7.7 */ 335 336 hb_blob_t *hb_blob_create_from_file (const char *file_name); 337 unsigned int hb_face_count (hb_blob_t *blob); 338 hb_map_t *hb_map_create (void); 339 hb_map_t *hb_map_get_empty (void); 340 hb_map_t *hb_map_reference (hb_map_t *map); 341 void hb_map_destroy (hb_map_t *map); 342 hb_bool_t hb_map_set_user_data (hb_map_t *map, hb_user_data_key_t *key, void *data, hb_destroy_func_t destroy, hb_bool_t replace); 343 void *hb_map_get_user_data (hb_map_t *map, hb_user_data_key_t *key); 344 hb_bool_t hb_map_allocation_successful (const hb_map_t *map); 345 void hb_map_clear (hb_map_t *map); 346 hb_bool_t hb_map_is_empty (const hb_map_t *map); 347 unsigned int hb_map_get_population (const hb_map_t *map); 348 void hb_map_set (hb_map_t *map, hb_codepoint_t key, hb_codepoint_t value); 349 hb_codepoint_t hb_map_get (const hb_map_t *map, hb_codepoint_t key); 350 void hb_map_del (hb_map_t *map, hb_codepoint_t key); 351 hb_bool_t hb_map_has (const hb_map_t *map, hb_codepoint_t key); 352 353 /* 1.8.6 */ 354 355 void hb_font_funcs_set_glyph_h_advances_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_h_advances_func_t func, void *user_data, hb_destroy_func_t destroy); 356 void hb_font_funcs_set_glyph_v_advances_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_v_advances_func_t func, void *user_data, hb_destroy_func_t destroy); 357 void hb_font_get_glyph_advances_for_direction (hb_font_t *font, hb_direction_t direction, unsigned int count, const hb_codepoint_t *first_glyph, unsigned glyph_stride, hb_position_t *first_advance, unsigned advance_stride); 358 void hb_font_get_glyph_h_advances (hb_font_t *font, unsigned int count, const hb_codepoint_t *first_glyph, unsigned glyph_stride, hb_position_t *first_advance, unsigned advance_stride); 359 void hb_font_get_glyph_v_advances (hb_font_t *font, unsigned int count, const hb_codepoint_t *first_glyph, unsigned glyph_stride, hb_position_t *first_advance, unsigned advance_stride); 360 361 /* 1.8.8 */ 362 363 hb_unicode_funcs_t *hb_unicode_funcs_get_default (void); 364 365 /* 1.9.0 */ 366 367 void hb_face_collect_unicodes (hb_face_t *face, hb_set_t *out); 368 void hb_face_collect_variation_selectors (hb_face_t *face, hb_set_t *out); 369 void hb_face_collect_variation_unicodes (hb_face_t *face, hb_codepoint_t variation_selector, hb_set_t *out); 370 hb_face_t *hb_face_builder_create (void); 371 hb_bool_t hb_face_builder_add_table (hb_face_t *face, hb_tag_t tag, hb_blob_t *blob); 372 373 /* 2.0.0 */ 374 375 void hb_buffer_set_invisible_glyph (hb_buffer_t *buffer, hb_codepoint_t invisible); 376 hb_codepoint_t hb_buffer_get_invisible_glyph (hb_buffer_t *buffer); 377 void hb_font_funcs_set_nominal_glyphs_func (hb_font_funcs_t *ffuncs, hb_font_get_nominal_glyphs_func_t func, void *user_data, hb_destroy_func_t destroy); 378 hb_bool_t hb_ot_layout_table_select_script (hb_face_t *face, hb_tag_t table_tag, unsigned int script_count, const hb_tag_t *script_tags, unsigned int *script_index, hb_tag_t *chosen_script); 379 hb_bool_t hb_ot_layout_script_select_language (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_count, const hb_tag_t *language_tags, unsigned int *language_index); 380 hb_bool_t hb_ot_layout_feature_get_name_ids (hb_face_t *face, hb_tag_t table_tag, unsigned int feature_index, hb_ot_name_id_t *label_id, hb_ot_name_id_t *tooltip_id, hb_ot_name_id_t *sample_id, unsigned int *num_named_parameters, hb_ot_name_id_t *first_param_id); 381 unsigned int hb_ot_layout_feature_get_characters (hb_face_t *face, hb_tag_t table_tag, unsigned int feature_index, unsigned int start_offset, unsigned int *char_count, hb_codepoint_t *characters); 382 void hb_ot_tags_from_script_and_language (hb_script_t script, hb_language_t language, unsigned int *script_count, hb_tag_t *script_tags, unsigned int *language_count, hb_tag_t *language_tags); 383 void hb_ot_tags_to_script_and_language (hb_tag_t script_tag, hb_tag_t language_tag, hb_script_t *script, hb_language_t *language); 384 385 /* 2.1.0 */ 386 387 uint8_t hb_color_get_alpha (hb_color_t color); 388 uint8_t hb_color_get_red (hb_color_t color); 389 uint8_t hb_color_get_green (hb_color_t color); 390 uint8_t hb_color_get_blue (hb_color_t color); 391 hb_bool_t hb_ot_color_has_palettes (hb_face_t *face); 392 unsigned int hb_ot_color_palette_get_count (hb_face_t *face); 393 hb_ot_name_id_t hb_ot_color_palette_get_name_id (hb_face_t *face, unsigned int palette_index); 394 hb_ot_name_id_t hb_ot_color_palette_color_get_name_id (hb_face_t *face, unsigned int color_index); 395 hb_ot_color_palette_flags_t hb_ot_color_palette_get_flags (hb_face_t *face, unsigned int palette_index); 396 unsigned int hb_ot_color_palette_get_colors (hb_face_t *face, unsigned int palette_index, unsigned int start_offset, unsigned int *color_count, hb_color_t *colors); 397 hb_bool_t hb_ot_color_has_layers (hb_face_t *face); 398 unsigned int hb_ot_color_glyph_get_layers (hb_face_t *face, hb_codepoint_t glyph, unsigned int start_offset, unsigned int *layer_count, hb_ot_color_layer_t *layers); 399 hb_bool_t hb_ot_color_has_svg (hb_face_t *face); 400 hb_blob_t *hb_ot_color_glyph_reference_svg (hb_face_t *face, hb_codepoint_t glyph); 401 hb_bool_t hb_ot_color_has_png (hb_face_t *face); 402 hb_blob_t *hb_ot_color_glyph_reference_png (hb_font_t *font, hb_codepoint_t glyph); 403 const hb_ot_name_entry_t *hb_ot_name_list_names (hb_face_t *face, unsigned int *num_entries); 404 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); 405 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); 406 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); 407 408 /* 2.2.0 */ 409 410 unsigned int hb_aat_layout_get_feature_types (hb_face_t *face, unsigned int start_offset, unsigned int *feature_count, hb_aat_layout_feature_type_t *features); 411 hb_ot_name_id_t hb_aat_layout_feature_type_get_name_id (hb_face_t *face, hb_aat_layout_feature_type_t feature_type); 412 unsigned int hb_aat_layout_feature_type_get_selector_infos (hb_face_t *face, hb_aat_layout_feature_type_t feature_type, unsigned int start_offset, unsigned int *selector_count, hb_aat_layout_feature_selector_info_t *selectors, unsigned int *default_index); 413 unsigned int hb_ot_var_get_axis_infos (hb_face_t *face, unsigned int start_offset, unsigned int *axes_count, hb_ot_var_axis_info_t *axes_array); 414 hb_bool_t hb_ot_var_find_axis_info (hb_face_t *face, hb_tag_t axis_tag, hb_ot_var_axis_info_t *axis_info); 415 unsigned int hb_ot_var_get_named_instance_count (hb_face_t *face); 416 hb_ot_name_id_t hb_ot_var_named_instance_get_subfamily_name_id (hb_face_t *face, unsigned int instance_index); 417 hb_ot_name_id_t hb_ot_var_named_instance_get_postscript_name_id (hb_face_t *face, unsigned int instance_index); 418 unsigned int hb_ot_var_named_instance_get_design_coords (hb_face_t *face, unsigned int instance_index, unsigned int *coords_length, float *coords); 419 420 /* 2.3.0 */ 421 422 hb_bool_t hb_aat_layout_has_substitution (hb_face_t *face); 423 hb_bool_t hb_aat_layout_has_positioning (hb_face_t *face); 424 hb_bool_t hb_aat_layout_has_tracking (hb_face_t *face); 425 426 /* 2.6.0 */ 427 428 void hb_font_set_var_named_instance (hb_font_t *font, unsigned instance_index); 429 hb_bool_t hb_ot_layout_get_baseline (hb_font_t *font, hb_ot_layout_baseline_tag_t baseline_tag, hb_direction_t direction, hb_tag_t script_tag, hb_tag_t language_tag, hb_position_t *coord); 430 unsigned int hb_ot_meta_get_entry_tags (hb_face_t *face, unsigned int start_offset, unsigned int *entries_count, hb_ot_meta_tag_t *entries); 431 hb_blob_t *hb_ot_meta_reference_entry (hb_face_t *face, hb_ot_meta_tag_t meta_tag); 432 hb_bool_t hb_ot_metrics_get_position (hb_font_t *font, hb_ot_metrics_tag_t metrics_tag, hb_position_t *position); 433 float hb_ot_metrics_get_variation (hb_font_t *font, hb_ot_metrics_tag_t metrics_tag); 434 hb_position_t hb_ot_metrics_get_x_variation (hb_font_t *font, hb_ot_metrics_tag_t metrics_tag); 435 hb_position_t hb_ot_metrics_get_y_variation (hb_font_t *font, hb_ot_metrics_tag_t metrics_tag); 436 437 /* 2.6.3 */ 438 439 unsigned int hb_font_get_nominal_glyphs (hb_font_t *font, unsigned int count, const hb_codepoint_t *first_unicode, unsigned int unicode_stride, hb_codepoint_t *first_glyph, unsigned int glyph_stride); 440 441 /* 2.6.5 */ 442 443 void *hb_ft_font_lock_face (hb_font_t *font); 444 void hb_ft_font_unlock_face (hb_font_t *font); 445 446 /* 2.6.8 */ 447 448 unsigned hb_ot_layout_lookup_get_glyph_alternates (hb_face_t *face, unsigned lookup_index, hb_codepoint_t glyph, unsigned start_offset, unsigned *alternate_count, hb_codepoint_t *alternate_glyphs); 449 450 /* 2.7.3 */ 451 452 hb_bool_t hb_buffer_has_positions (hb_buffer_t *buffer); 453 unsigned int hb_buffer_serialize (hb_buffer_t *buffer, unsigned int start, unsigned int end, char *buf, unsigned int buf_size, unsigned int *buf_consumed, hb_font_t *font, hb_buffer_serialize_format_t format, hb_buffer_serialize_flags_t flags); 454 unsigned int hb_buffer_serialize_unicode (hb_buffer_t *buffer, unsigned int start, unsigned int end, char *buf, unsigned int buf_size, unsigned int *buf_consumed, hb_buffer_serialize_format_t format, hb_buffer_serialize_flags_t flags); 455 hb_bool_t hb_buffer_deserialize_unicode (hb_buffer_t *buffer, const char *buf, int buf_len, const char **end_ptr, hb_buffer_serialize_format_t format); 456 457 /* 2.8.2 */ 458 459 hb_blob_t *hb_blob_create_or_fail (const char *data, unsigned int length, hb_memory_mode_t mode, void *user_data, hb_destroy_func_t destroy); 460 hb_blob_t *hb_blob_create_from_file_or_fail (const char *file_name); 461 hb_set_t *hb_set_copy (const hb_set_t *set); 462 463 /* 3.0.0 */ 464 465 float hb_style_get_value (hb_font_t *font, hb_style_tag_t style_tag); 466 hb_subset_input_t *hb_subset_input_create_or_fail (void); 467 hb_subset_input_t *hb_subset_input_reference (hb_subset_input_t *input); 468 void hb_subset_input_destroy (hb_subset_input_t *input); 469 hb_bool_t hb_subset_input_set_user_data (hb_subset_input_t *input, hb_user_data_key_t *key, void *data, hb_destroy_func_t destroy, hb_bool_t replace); 470 void *hb_subset_input_get_user_data (const hb_subset_input_t *input, hb_user_data_key_t *key); 471 hb_set_t *hb_subset_input_unicode_set (hb_subset_input_t *input); 472 hb_set_t *hb_subset_input_glyph_set (hb_subset_input_t *input); 473 hb_set_t *hb_subset_input_set (hb_subset_input_t *input, hb_subset_sets_t set_type); 474 hb_subset_flags_t hb_subset_input_get_flags (hb_subset_input_t *input); 475 void hb_subset_input_set_flags (hb_subset_input_t *input, unsigned value); 476 hb_face_t *hb_subset_or_fail (hb_face_t *source, const hb_subset_input_t *input); 477 478 /* 3.1.1 */ 479 480 void hb_buffer_set_not_found_glyph (hb_buffer_t *buffer, hb_codepoint_t not_found); 481 hb_codepoint_t hb_buffer_get_not_found_glyph (hb_buffer_t *buffer); 482 483 /* 3.3.0 */ 484 485 void hb_segment_properties_overlay (hb_segment_properties_t *p, const hb_segment_properties_t *src); 486 hb_buffer_t *hb_buffer_create_similar (const hb_buffer_t *src); 487 void hb_font_set_synthetic_slant (hb_font_t *font, float slant); 488 float hb_font_get_synthetic_slant (hb_font_t *font); 489 const float *hb_font_get_var_coords_design (hb_font_t *font, unsigned int *length); 490 491 #ifdef __cplusplus 492 } 493 #endif 494 495 #endif /* CLIB_HARFBUZZ_PROTOS_H */