Lines Matching refs:buffer

167 						   hb_buffer_t  *buffer)
169 unsigned int count = buffer->len;
170 hb_glyph_info_t *info = buffer->info;
181 zero_mark_advances (hb_buffer_t *buffer,
185 hb_glyph_info_t *info = buffer->info;
189 buffer->pos[i].x_advance = 0;
190 buffer->pos[i].y_advance = 0;
197 hb_buffer_t *buffer,
203 if (!font->get_glyph_extents (buffer->info[i].codepoint,
209 hb_glyph_position_t &pos = buffer->pos[i];
220 if (buffer->props.direction == HB_DIRECTION_LTR) {
223 } else if (buffer->props.direction == HB_DIRECTION_RTL) {
303 hb_buffer_t *buffer,
309 if (!font->get_glyph_extents (buffer->info[base].codepoint,
313 zero_mark_advances (buffer, base + 1, end);
316 base_extents.x_bearing += buffer->pos[base].x_offset;
317 base_extents.y_bearing += buffer->pos[base].y_offset;
319 unsigned int lig_id = _hb_glyph_info_get_lig_id (&buffer->info[base]);
320 unsigned int num_lig_components = _hb_glyph_info_get_lig_num_comps (&buffer->info[base]);
323 if (HB_DIRECTION_IS_FORWARD (buffer->props.direction)) {
324 x_offset -= buffer->pos[base].x_advance;
325 y_offset -= buffer->pos[base].y_advance;
332 hb_glyph_info_t *info = buffer->info;
368 position_mark (plan, font, buffer, cluster_extents, i, this_combining_class);
370 buffer->pos[i].x_advance = 0;
371 buffer->pos[i].y_advance = 0;
372 buffer->pos[i].x_offset += x_offset;
373 buffer->pos[i].y_offset += y_offset;
376 if (HB_DIRECTION_IS_FORWARD (buffer->props.direction)) {
377 x_offset -= buffer->pos[i].x_advance;
378 y_offset -= buffer->pos[i].y_advance;
380 x_offset += buffer->pos[i].x_advance;
381 y_offset += buffer->pos[i].y_advance;
389 hb_buffer_t *buffer,
397 hb_glyph_info_t *info = buffer->info;
407 position_around_base (plan, font, buffer, i, j);
416 hb_buffer_t *buffer)
418 _hb_buffer_assert_gsubgpos_vars (buffer);
421 unsigned int last_cluster = buffer->info[0].cluster;
422 unsigned int count = buffer->len;
424 if (buffer->info[i].cluster != last_cluster) {
425 position_cluster (plan, font, buffer, start, i);
427 last_cluster = buffer->info[i].cluster;
429 position_cluster (plan, font, buffer, start, count);
437 hb_buffer_t *buffer)
441 OT::hb_apply_context_t c (1, font, buffer);
445 unsigned int count = buffer->len;
446 hb_glyph_info_t *info = buffer->info;
447 hb_glyph_position_t *pos = buffer->pos;
460 buffer->props.direction,