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 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 inline void get_stage_lookups (unsigned int table_index, unsigned int stage, | 106 inline void get_stage_lookups (unsigned int table_index, unsigned int stage, |
107 const struct lookup_map_t **plookups, unsigned
int *lookup_count) const { | 107 const struct lookup_map_t **plookups, unsigned
int *lookup_count) const { |
108 if (unlikely (stage == (unsigned int) -1)) { | 108 if (unlikely (stage == (unsigned int) -1)) { |
109 *plookups = NULL; | 109 *plookups = NULL; |
110 *lookup_count = 0; | 110 *lookup_count = 0; |
111 return; | 111 return; |
112 } | 112 } |
113 assert (stage <= stages[table_index].len); | 113 assert (stage <= stages[table_index].len); |
114 unsigned int start = stage ? stages[table_index][stage - 1].last_lookup : 0; | 114 unsigned int start = stage ? stages[table_index][stage - 1].last_lookup : 0; |
115 unsigned int end = stage < stages[table_index].len ? stages[table_index][s
tage].last_lookup : lookups[table_index].len; | 115 unsigned int end = stage < stages[table_index].len ? stages[table_index][s
tage].last_lookup : lookups[table_index].len; |
116 *plookups = &lookups[table_index][start]; | 116 *plookups = end == start ? NULL : &lookups[table_index][start]; |
117 *lookup_count = end - start; | 117 *lookup_count = end - start; |
118 } | 118 } |
119 | 119 |
120 HB_INTERNAL void collect_lookups (unsigned int table_index, hb_set_t *lookups)
const; | 120 HB_INTERNAL void collect_lookups (unsigned int table_index, hb_set_t *lookups)
const; |
121 template <typename Proxy> | 121 template <typename Proxy> |
122 HB_INTERNAL inline void apply (const Proxy &proxy, | 122 HB_INTERNAL inline void apply (const Proxy &proxy, |
123 const struct hb_ot_shape_plan_t *plan, hb_font_
t *font, hb_buffer_t *buffer) const; | 123 const struct hb_ot_shape_plan_t *plan, hb_font_
t *font, hb_buffer_t *buffer) const; |
124 HB_INTERNAL void substitute (const struct hb_ot_shape_plan_t *plan, hb_font_t
*font, hb_buffer_t *buffer) const; | 124 HB_INTERNAL void substitute (const struct hb_ot_shape_plan_t *plan, hb_font_t
*font, hb_buffer_t *buffer) const; |
125 HB_INTERNAL void position (const struct hb_ot_shape_plan_t *plan, hb_font_t *f
ont, hb_buffer_t *buffer) const; | 125 HB_INTERNAL void position (const struct hb_ot_shape_plan_t *plan, hb_font_t *f
ont, hb_buffer_t *buffer) const; |
126 | 126 |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 private: | 230 private: |
231 | 231 |
232 unsigned int current_stage[2]; /* GSUB/GPOS */ | 232 unsigned int current_stage[2]; /* GSUB/GPOS */ |
233 hb_prealloced_array_t<feature_info_t, 32> feature_infos; | 233 hb_prealloced_array_t<feature_info_t, 32> feature_infos; |
234 hb_prealloced_array_t<stage_info_t, 8> stages[2]; /* GSUB/GPOS */ | 234 hb_prealloced_array_t<stage_info_t, 8> stages[2]; /* GSUB/GPOS */ |
235 }; | 235 }; |
236 | 236 |
237 | 237 |
238 | 238 |
239 #endif /* HB_OT_MAP_PRIVATE_HH */ | 239 #endif /* HB_OT_MAP_PRIVATE_HH */ |
OLD | NEW |