Home | History | Annotate | Download | only in src

Lines Matching refs:buffer

211   hb_buffer_t  *buffer;
227 hb_set_unicode_props (hb_buffer_t *buffer)
229 unsigned int count = buffer->len;
230 hb_glyph_info_t *info = buffer->info;
232 _hb_glyph_info_set_unicode_props (&info[i], buffer->unicode);
236 hb_insert_dotted_circle (hb_buffer_t *buffer, hb_font_t *font)
238 if (!(buffer->flags & HB_BUFFER_FLAG_BOT) ||
239 buffer->context_len[0] ||
240 _hb_glyph_info_get_general_category (&buffer->info[0]) !=
249 _hb_glyph_info_set_unicode_props (&dottedcircle, buffer->unicode);
251 buffer->clear_output ();
253 buffer->idx = 0;
255 info.cluster = buffer->cur().cluster;
256 info.mask = buffer->cur().mask;
257 buffer->output_info (info);
258 while (buffer->idx < buffer->len)
259 buffer->next_glyph ();
261 buffer->swap_buffers ();
265 hb_form_clusters (hb_buffer_t *buffer)
267 unsigned int count = buffer->len;
268 hb_glyph_info_t *info = buffer->info;
271 buffer->merge_clusters (i - 1, i + 1);
275 hb_ensure_native_direction (hb_buffer_t *buffer)
277 hb_direction_t direction = buffer->props.direction;
283 if ((HB_DIRECTION_IS_HORIZONTAL (direction) && direction != hb_script_get_horizontal_direction (buffer->props.script)) ||
286 hb_buffer_reverse_clusters (buffer);
287 buffer->props.direction = HB_DIRECTION_REVERSE (buffer->props.direction);
300 hb_buffer_t *buffer = c->buffer;
301 hb_unicode_funcs_t *unicode = buffer->unicode;
304 unsigned int count = buffer->len;
305 hb_glyph_info_t *info = buffer->info;
321 hb_buffer_t *buffer = c->buffer;
324 unsigned int count = buffer->len;
325 hb_glyph_info_t *info = buffer->info;
355 hb_buffer_t *buffer = c->buffer;
358 buffer->reset_masks (global_mask);
365 hb_buffer_t *buffer = c->buffer;
370 c->plan->shaper->setup_masks (c->plan, buffer, c->font);
378 buffer->set_masks (feature->value << shift, mask, feature->start, feature->end);
384 hb_ot_map_glyphs_fast (hb_buffer_t *buffer)
387 unsigned int count = buffer->len;
388 hb_glyph_info_t *info = buffer->info;
396 unsigned int count = c->buffer->len;
397 hb_glyph_info_t *info = c->buffer->info;
422 hb_buffer_t *buffer = c->buffer;
425 c->plan->shaper->preprocess_text (c->plan, buffer, c->font);
431 HB_BUFFER_ALLOCATE_VAR (buffer, glyph_index);
433 _hb_ot_shape_normalize (c->plan, buffer, c->font);
439 _hb_ot_shape_fallback_position_recategorize_marks (c->plan, c->font, buffer);
441 hb_ot_map_glyphs_fast (buffer);
443 HB_BUFFER_DEALLOCATE_VAR (buffer, glyph_index);
449 hb_buffer_t *buffer = c->buffer;
451 _hb_buffer_allocate_gsubgpos_vars (buffer);
452 hb_ot_layout_substitute_start (c->font, buffer);
457 c->plan->substitute (c->font, buffer);
459 hb_ot_layout_substitute_finish (c->font, buffer);
488 zero_mark_widths_by_unicode (hb_buffer_t *buffer, bool adjust_offsets)
490 unsigned int count = buffer->len;
491 hb_glyph_info_t *info = buffer->info;
496 adjust_mark_offsets (&buffer->pos[i]);
497 zero_mark_width (&buffer->pos[i]);
502 zero_mark_widths_by_gdef (hb_buffer_t *buffer, bool adjust_offsets)
504 unsigned int count = buffer->len;
505 hb_glyph_info_t *info = buffer->info;
510 adjust_mark_offsets (&buffer->pos[i]);
511 zero_mark_width (&buffer->pos[i]);
518 hb_direction_t direction = c->buffer->props.direction;
519 unsigned int count = c->buffer->len;
520 hb_glyph_info_t *info = c->buffer->info;
521 hb_glyph_position_t *pos = c->buffer->pos;
540 unsigned int count = c->buffer->len;
552 HB_DIRECTION_IS_BACKWARD (c->buffer->props.direction));
557 zero_mark_widths_by_gdef (c->buffer, adjust_offsets_when_zeroing);
562 zero_mark_widths_by_unicode (c->buffer, adjust_offsets_when_zeroing);
575 hb_glyph_info_t *info = c->buffer->info;
576 hb_glyph_position_t *pos = c->buffer->pos;
587 c->plan->position (c->font, c->buffer);
602 zero_mark_widths_by_unicode (c->buffer, adjust_offsets_when_zeroing);
606 zero_mark_widths_by_gdef (c->buffer, adjust_offsets_when_zeroing);
622 hb_ot_layout_position_start (c->font, c->buffer);
628 hb_ot_layout_position_finish (c->font, c->buffer);
631 _hb_ot_shape_fallback_position (c->plan, c->font, c->buffer);
633 if (HB_DIRECTION_IS_BACKWARD (c->buffer->props.direction))
634 hb_buffer_reverse (c->buffer);
639 _hb_ot_shape_fallback_kern (c->plan, c->font, c->buffer);
641 _hb_buffer_deallocate_gsubgpos_vars (c->buffer);
650 if (c->buffer->flags & HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES)
660 unsigned int count = c->buffer->len;
661 hb_glyph_info_t *info = c->buffer->info;
662 hb_glyph_position_t *pos = c->buffer->pos;
688 c->buffer->len = j;
697 c->buffer->deallocate_var_all ();
700 c->target_direction = c->buffer->props.direction;
702 _hb_buffer_allocate_unicode_vars (c->buffer);
704 c->buffer->clear_output ();
706 hb_set_unicode_props (c->buffer);
707 hb_insert_dotted_circle (c->buffer, c->font);
708 hb_form_clusters (c->buffer);
710 hb_ensure_native_direction (c->buffer);
717 _hb_buffer_deallocate_unicode_vars (c->buffer);
719 c->buffer->props.direction = c->target_direction;
721 c->buffer->deallocate_var_all ();
728 hb_buffer_t *buffer,
732 hb_ot_shape_context_t c = {HB_SHAPER_DATA_GET (shape_plan), font, font->face, buffer, features, num_features};
771 hb_buffer_t *buffer,
779 hb_shape_plan_t *shape_plan = hb_shape_plan_create_cached (font->face, &buffer->props,
782 bool mirror = hb_script_get_horizontal_direction (buffer->props.script) == HB_DIRECTION_RTL;
784 unsigned int count = buffer->len;
785 hb_glyph_info_t *info = buffer->info;
787 add_char (font, buffer->unicode, mirror, info[i].codepoint, glyphs);