| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright © 2009,2010 Red Hat, Inc. | 2 * Copyright © 2009,2010 Red Hat, Inc. |
| 3 * Copyright © 2010,2011,2012,2013 Google, Inc. | 3 * Copyright © 2010,2011,2012,2013 Google, Inc. |
| 4 * | 4 * |
| 5 * This is part of HarfBuzz, a text shaping library. | 5 * This is part of HarfBuzz, a text shaping library. |
| 6 * | 6 * |
| 7 * Permission is hereby granted, without written agreement and without | 7 * Permission is hereby granted, without written agreement and without |
| 8 * license or royalty fees, to use, copy, modify, and distribute this | 8 * license or royalty fees, to use, copy, modify, and distribute this |
| 9 * software and its documentation for any purpose, provided that the | 9 * software and its documentation for any purpose, provided that the |
| 10 * above copyright notice and the following two paragraphs appear in | 10 * above copyright notice and the following two paragraphs appear in |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 | 196 |
| 197 struct feature_info_t { | 197 struct feature_info_t { |
| 198 hb_tag_t tag; | 198 hb_tag_t tag; |
| 199 unsigned int seq; /* sequence#, used for stable sorting only */ | 199 unsigned int seq; /* sequence#, used for stable sorting only */ |
| 200 unsigned int max_value; | 200 unsigned int max_value; |
| 201 hb_ot_map_feature_flags_t flags; | 201 hb_ot_map_feature_flags_t flags; |
| 202 unsigned int default_value; /* for non-global features, what should the unse
t glyphs take */ | 202 unsigned int default_value; /* for non-global features, what should the unse
t glyphs take */ |
| 203 unsigned int stage[2]; /* GSUB/GPOS */ | 203 unsigned int stage[2]; /* GSUB/GPOS */ |
| 204 | 204 |
| 205 static int cmp (const feature_info_t *a, const feature_info_t *b) | 205 static int cmp (const feature_info_t *a, const feature_info_t *b) |
| 206 { return (a->tag != b->tag) ? (a->tag < b->tag ? -1 : 1) : (a->seq < b->seq
? -1 : 1); } | 206 { return (a->tag != b->tag) ? (a->tag < b->tag ? -1 : 1) : |
| 207 » (a->seq < b->seq ? -1 : a->seq > b->seq ? 1 : 0); } |
| 207 }; | 208 }; |
| 208 | 209 |
| 209 struct stage_info_t { | 210 struct stage_info_t { |
| 210 unsigned int index; | 211 unsigned int index; |
| 211 hb_ot_map_t::pause_func_t pause_func; | 212 hb_ot_map_t::pause_func_t pause_func; |
| 212 }; | 213 }; |
| 213 | 214 |
| 214 HB_INTERNAL void add_pause (unsigned int table_index, hb_ot_map_t::pause_func_
t pause_func); | 215 HB_INTERNAL void add_pause (unsigned int table_index, hb_ot_map_t::pause_func_
t pause_func); |
| 215 | 216 |
| 216 public: | 217 public: |
| 217 | 218 |
| 218 hb_face_t *face; | 219 hb_face_t *face; |
| 219 hb_segment_properties_t props; | 220 hb_segment_properties_t props; |
| 220 | 221 |
| 221 hb_tag_t chosen_script[2]; | 222 hb_tag_t chosen_script[2]; |
| 222 bool found_script[2]; | 223 bool found_script[2]; |
| 223 unsigned int script_index[2], language_index[2]; | 224 unsigned int script_index[2], language_index[2]; |
| 224 | 225 |
| 225 private: | 226 private: |
| 226 | 227 |
| 227 unsigned int current_stage[2]; /* GSUB/GPOS */ | 228 unsigned int current_stage[2]; /* GSUB/GPOS */ |
| 228 hb_prealloced_array_t<feature_info_t, 32> feature_infos; | 229 hb_prealloced_array_t<feature_info_t, 32> feature_infos; |
| 229 hb_prealloced_array_t<stage_info_t, 8> stages[2]; /* GSUB/GPOS */ | 230 hb_prealloced_array_t<stage_info_t, 8> stages[2]; /* GSUB/GPOS */ |
| 230 }; | 231 }; |
| 231 | 232 |
| 232 | 233 |
| 233 | 234 |
| 234 #endif /* HB_OT_MAP_PRIVATE_HH */ | 235 #endif /* HB_OT_MAP_PRIVATE_HH */ |
| OLD | NEW |