Warning, file /include/harfbuzz/hb-subset.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
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 #ifndef HB_SUBSET_H
0028 #define HB_SUBSET_H
0029
0030 #include "hb.h"
0031 #include "hb-ot.h"
0032
0033 HB_BEGIN_DECLS
0034
0035
0036
0037
0038
0039
0040
0041 typedef struct hb_subset_input_t hb_subset_input_t;
0042
0043
0044
0045
0046
0047
0048
0049
0050 typedef struct hb_subset_plan_t hb_subset_plan_t;
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088 typedef enum {
0089 HB_SUBSET_FLAGS_DEFAULT = 0x00000000u,
0090 HB_SUBSET_FLAGS_NO_HINTING = 0x00000001u,
0091 HB_SUBSET_FLAGS_RETAIN_GIDS = 0x00000002u,
0092 HB_SUBSET_FLAGS_DESUBROUTINIZE = 0x00000004u,
0093 HB_SUBSET_FLAGS_NAME_LEGACY = 0x00000008u,
0094 HB_SUBSET_FLAGS_SET_OVERLAPS_FLAG = 0x00000010u,
0095 HB_SUBSET_FLAGS_PASSTHROUGH_UNRECOGNIZED = 0x00000020u,
0096 HB_SUBSET_FLAGS_NOTDEF_OUTLINE = 0x00000040u,
0097 HB_SUBSET_FLAGS_GLYPH_NAMES = 0x00000080u,
0098 HB_SUBSET_FLAGS_NO_PRUNE_UNICODE_RANGES = 0x00000100u,
0099 HB_SUBSET_FLAGS_NO_LAYOUT_CLOSURE = 0x00000200u,
0100 HB_SUBSET_FLAGS_OPTIMIZE_IUP_DELTAS = 0x00000400u,
0101 HB_SUBSET_FLAGS_NO_BIDI_CLOSURE = 0x00000800u,
0102 #ifdef HB_EXPERIMENTAL_API
0103 HB_SUBSET_FLAGS_IFTB_REQUIREMENTS = 0x00001000u,
0104 #endif
0105 } hb_subset_flags_t;
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126 typedef enum {
0127 HB_SUBSET_SETS_GLYPH_INDEX = 0,
0128 HB_SUBSET_SETS_UNICODE,
0129 HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG,
0130 HB_SUBSET_SETS_DROP_TABLE_TAG,
0131 HB_SUBSET_SETS_NAME_ID,
0132 HB_SUBSET_SETS_NAME_LANG_ID,
0133 HB_SUBSET_SETS_LAYOUT_FEATURE_TAG,
0134 HB_SUBSET_SETS_LAYOUT_SCRIPT_TAG,
0135 } hb_subset_sets_t;
0136
0137 HB_EXTERN hb_subset_input_t *
0138 hb_subset_input_create_or_fail (void);
0139
0140 HB_EXTERN hb_subset_input_t *
0141 hb_subset_input_reference (hb_subset_input_t *input);
0142
0143 HB_EXTERN void
0144 hb_subset_input_destroy (hb_subset_input_t *input);
0145
0146 HB_EXTERN hb_bool_t
0147 hb_subset_input_set_user_data (hb_subset_input_t *input,
0148 hb_user_data_key_t *key,
0149 void * data,
0150 hb_destroy_func_t destroy,
0151 hb_bool_t replace);
0152
0153 HB_EXTERN void *
0154 hb_subset_input_get_user_data (const hb_subset_input_t *input,
0155 hb_user_data_key_t *key);
0156
0157 HB_EXTERN void
0158 hb_subset_input_keep_everything (hb_subset_input_t *input);
0159
0160 HB_EXTERN hb_set_t *
0161 hb_subset_input_unicode_set (hb_subset_input_t *input);
0162
0163 HB_EXTERN hb_set_t *
0164 hb_subset_input_glyph_set (hb_subset_input_t *input);
0165
0166 HB_EXTERN hb_set_t *
0167 hb_subset_input_set (hb_subset_input_t *input, hb_subset_sets_t set_type);
0168
0169 HB_EXTERN hb_map_t*
0170 hb_subset_input_old_to_new_glyph_mapping (hb_subset_input_t *input);
0171
0172 HB_EXTERN hb_subset_flags_t
0173 hb_subset_input_get_flags (hb_subset_input_t *input);
0174
0175 HB_EXTERN void
0176 hb_subset_input_set_flags (hb_subset_input_t *input,
0177 unsigned value);
0178
0179 HB_EXTERN hb_bool_t
0180 hb_subset_input_pin_all_axes_to_default (hb_subset_input_t *input,
0181 hb_face_t *face);
0182
0183 HB_EXTERN hb_bool_t
0184 hb_subset_input_pin_axis_to_default (hb_subset_input_t *input,
0185 hb_face_t *face,
0186 hb_tag_t axis_tag);
0187
0188 HB_EXTERN hb_bool_t
0189 hb_subset_input_pin_axis_location (hb_subset_input_t *input,
0190 hb_face_t *face,
0191 hb_tag_t axis_tag,
0192 float axis_value);
0193
0194 HB_EXTERN hb_bool_t
0195 hb_subset_input_get_axis_range (hb_subset_input_t *input,
0196 hb_tag_t axis_tag,
0197 float *axis_min_value,
0198 float *axis_max_value,
0199 float *axis_def_value);
0200
0201 HB_EXTERN hb_bool_t
0202 hb_subset_input_set_axis_range (hb_subset_input_t *input,
0203 hb_face_t *face,
0204 hb_tag_t axis_tag,
0205 float axis_min_value,
0206 float axis_max_value,
0207 float axis_def_value);
0208
0209 HB_EXTERN hb_bool_t
0210 hb_subset_axis_range_from_string (const char *str, int len,
0211 float *axis_min_value,
0212 float *axis_max_value,
0213 float *axis_def_value);
0214
0215 HB_EXTERN void
0216 hb_subset_axis_range_to_string (hb_subset_input_t *input,
0217 hb_tag_t axis_tag,
0218 char *buf,
0219 unsigned size);
0220
0221 #ifdef HB_EXPERIMENTAL_API
0222 HB_EXTERN hb_bool_t
0223 hb_subset_input_override_name_table (hb_subset_input_t *input,
0224 hb_ot_name_id_t name_id,
0225 unsigned platform_id,
0226 unsigned encoding_id,
0227 unsigned language_id,
0228 const char *name_str,
0229 int str_len);
0230
0231
0232
0233
0234
0235
0236 HB_EXTERN hb_blob_t*
0237 hb_subset_cff_get_charstring_data (hb_face_t* face, hb_codepoint_t glyph_index);
0238
0239 HB_EXTERN hb_blob_t*
0240 hb_subset_cff_get_charstrings_index (hb_face_t* face);
0241
0242 HB_EXTERN hb_blob_t*
0243 hb_subset_cff2_get_charstring_data (hb_face_t* face, hb_codepoint_t glyph_index);
0244
0245 HB_EXTERN hb_blob_t*
0246 hb_subset_cff2_get_charstrings_index (hb_face_t* face);
0247 #endif
0248
0249 HB_EXTERN hb_face_t *
0250 hb_subset_preprocess (hb_face_t *source);
0251
0252 HB_EXTERN hb_face_t *
0253 hb_subset_or_fail (hb_face_t *source, const hb_subset_input_t *input);
0254
0255 HB_EXTERN hb_face_t *
0256 hb_subset_plan_execute_or_fail (hb_subset_plan_t *plan);
0257
0258 HB_EXTERN hb_subset_plan_t *
0259 hb_subset_plan_create_or_fail (hb_face_t *face,
0260 const hb_subset_input_t *input);
0261
0262 HB_EXTERN void
0263 hb_subset_plan_destroy (hb_subset_plan_t *plan);
0264
0265 HB_EXTERN hb_map_t *
0266 hb_subset_plan_old_to_new_glyph_mapping (const hb_subset_plan_t *plan);
0267
0268 HB_EXTERN hb_map_t *
0269 hb_subset_plan_new_to_old_glyph_mapping (const hb_subset_plan_t *plan);
0270
0271 HB_EXTERN hb_map_t *
0272 hb_subset_plan_unicode_to_old_glyph_mapping (const hb_subset_plan_t *plan);
0273
0274
0275 HB_EXTERN hb_subset_plan_t *
0276 hb_subset_plan_reference (hb_subset_plan_t *plan);
0277
0278 HB_EXTERN hb_bool_t
0279 hb_subset_plan_set_user_data (hb_subset_plan_t *plan,
0280 hb_user_data_key_t *key,
0281 void *data,
0282 hb_destroy_func_t destroy,
0283 hb_bool_t replace);
0284
0285 HB_EXTERN void *
0286 hb_subset_plan_get_user_data (const hb_subset_plan_t *plan,
0287 hb_user_data_key_t *key);
0288
0289
0290 HB_END_DECLS
0291
0292 #endif