Lines Matching defs:hb_buffer_t
86 struct hb_buffer_t struct
88 hb_object_header_t header;
91 hb_unicode_funcs_t *unicode; /* Unicode functions */
92 hb_buffer_flags_t flags; /* BOT / EOT / etc. */
93 hb_buffer_cluster_level_t cluster_level;
94 hb_codepoint_t replacement; /* U+FFFD or something else. */
95 hb_codepoint_t invisible; /* 0 or something else. */
96 hb_buffer_scratch_flags_t scratch_flags; /* Have space-fallback, etc. */
97 unsigned int max_len; /* Maximum allowed len. */
98 int max_ops; /* Maximum allowed operations. */
101 hb_buffer_content_type_t content_type;
102 hb_segment_properties_t props; /* Script, language, direction */
104 bool successful; /* Allocations successful */
105 bool have_output; /* Whether we have an output buffer going on */
106 bool have_positions; /* Whether we have positions */
108 unsigned int idx; /* Cursor into ->info and ->pos arrays */
109 unsigned int len; /* Length of ->info and ->pos arrays */
110 unsigned int out_len; /* Length of ->out array if have_output */
112 unsigned int allocated; /* Length of allocated arrays */
113 hb_glyph_info_t *info;
114 hb_glyph_info_t *out_info;
115 hb_glyph_position_t *pos;
117 unsigned int serial;
122 enum { CONTEXT_LENGTH = 5 };
123 hb_codepoint_t context[2][CONTEXT_LENGTH];
124 unsigned int context_len[2];
127 hb_buffer_message_func_t message_func;
128 void *message_data;
129 hb_destroy_func_t message_destroy;
134 uint8_t allocated_var_bits;
140 bool in_error () const { return !successful; } in in_error()
142 void allocate_var (unsigned int start, unsigned int count) in allocate_var()
152 void deallocate_var (unsigned int start, unsigned int count) in deallocate_var()
162 void assert_var (unsigned int start, unsigned int count) in assert_var()
171 void deallocate_var_all () in deallocate_var_all()
178 hb_glyph_info_t &cur (unsigned int i = 0) { return info[idx + i]; } in cur()
179 hb_glyph_info_t cur (unsigned int i = 0) const { return info[idx + i]; } in cur()
181 hb_glyph_position_t &cur_pos (unsigned int i = 0) { return pos[idx + i]; } in cur_pos()
182 hb_glyph_position_t cur_pos (unsigned int i = 0) const { return pos[idx + i]; } in cur_pos()
184 hb_glyph_info_t &prev () { return out_info[out_len ? out_len - 1 : 0]; } in prev()
185 hb_glyph_info_t prev () const { return out_info[out_len ? out_len - 1 : 0]; } in prev()
187 bool has_separate_output () const { return info != out_info; } in has_separate_output()
193 unsigned int backtrack_len () const { return have_output? out_len : idx; } in backtrack_len()
194 unsigned int lookahead_len () const { return len - idx; } in lookahead_len()
195 unsigned int next_serial () { return serial++; } in next_serial()
215 void replace_glyph (hb_codepoint_t glyph_index) in replace_glyph()
227 hb_glyph_info_t & output_glyph (hb_codepoint_t glyph_index) in output_glyph()
241 void output_info (const hb_glyph_info_t &glyph_info) in output_info()
250 void copy_glyph () in copy_glyph()
261 next_glyph () in next_glyph()
278 next_glyphs (unsigned int n) in next_glyphs()
293 void skip_glyph () { idx++; } in skip_glyph()
294 void reset_masks (hb_mask_t mask) in reset_masks()
299 void add_masks (hb_mask_t mask) in add_masks()
307 void merge_clusters (unsigned int start, unsigned int end) in merge_clusters()
318 void unsafe_to_break (unsigned int start, in unsafe_to_break()
334 bool ensure (unsigned int size) in ensure()
337 bool ensure_inplace (unsigned int size) in ensure_inplace()
343 typedef long scratch_buffer_t;
346 void clear_context (unsigned int side) { context_len[side] = 0; } in clear_context()
350 bool messaging () { return unlikely (message_func); } in messaging()
351 bool message (hb_font_t *font, const char *fmt, ...) HB_PRINTF_FUNC(3, 4) in message()
364 set_cluster (hb_glyph_info_t &inf, unsigned int cluster, unsigned int mask = 0) in set_cluster()
377 _unsafe_to_break_find_min_cluster (const hb_glyph_info_t *infos, in _unsafe_to_break_find_min_cluster()
406 DECLARE_NULL_INSTANCE (hb_buffer_t); argument