Home | History | Annotate | Download | only in src

Lines Matching full:info

211   hb_glyph_info_t *info = buffer->info;
214 unsigned int syllable = info[start].syllable();
215 while (++start < count && syllable == info[start].syllable())
254 _hb_glyph_info_set_unicode_props (hb_glyph_info_t *info, hb_buffer_t *buffer)
257 unsigned int u = info->codepoint;
303 props |= unicode->modified_combining_class (info->codepoint)<<8;
317 info->unicode_props() = props;
321 _hb_glyph_info_set_general_category (hb_glyph_info_t *info,
325 info->unicode_props() = (unsigned int) gen_cat | (info->unicode_props() & (0xFF & ~UPROPS_MASK_GEN_CAT));
329 _hb_glyph_info_get_general_category (const hb_glyph_info_t *info)
331 return (hb_unicode_general_category_t) (info->unicode_props() & UPROPS_MASK_GEN_CAT);
335 _hb_glyph_info_is_unicode_mark (const hb_glyph_info_t *info)
337 return HB_UNICODE_GENERAL_CATEGORY_IS_MARK (info->unicode_props() & UPROPS_MASK_GEN_CAT);
340 _hb_glyph_info_set_modified_combining_class (hb_glyph_info_t *info,
343 if (unlikely (!_hb_glyph_info_is_unicode_mark (info)))
345 info->unicode_props() = (modified_class<<8) | (info->unicode_props() & 0xFF);
348 _hb_glyph_info_get_modified_combining_class (const hb_glyph_info_t *info)
350 return _hb_glyph_info_is_unicode_mark (info) ? info->unicode_props()>>8 : 0;
353 #define info_cc(info) (_hb_glyph_info_get_modified_combining_class (&(info)))
356 _hb_glyph_info_is_unicode_space (const hb_glyph_info_t *info)
358 return _hb_glyph_info_get_general_category (info) ==
362 _hb_glyph_info_set_unicode_space_fallback_type (hb_glyph_info_t *info, hb_unicode_funcs_t::space_t s)
364 if (unlikely (!_hb_glyph_info_is_unicode_space (info)))
366 info->unicode_props() = (((unsigned int) s)<<8) | (info->unicode_props() & 0xFF);
369 _hb_glyph_info_get_unicode_space_fallback_type (const hb_glyph_info_t *info)
371 return _hb_glyph_info_is_unicode_space (info) ?
372 (hb_unicode_funcs_t::space_t) (info->unicode_props()>>8) :
376 static inline bool _hb_glyph_info_ligated (const hb_glyph_info_t *info);
379 _hb_glyph_info_is_default_ignorable (const hb_glyph_info_t *info)
381 return (info->unicode_props() & UPROPS_MASK_IGNORABLE) &&
382 !_hb_glyph_info_ligated (info);
385 _hb_glyph_info_is_default_ignorable_and_not_hidden (const hb_glyph_info_t *info)
387 return ((info->unicode_props() & (UPROPS_MASK_IGNORABLE|UPROPS_MASK_HIDDEN))
389 !_hb_glyph_info_ligated (info);
393 _hb_glyph_info_is_unicode_format (const hb_glyph_info_t *info)
395 return _hb_glyph_info_get_general_category (info) ==
399 _hb_glyph_info_is_zwnj (const hb_glyph_info_t *info)
401 return _hb_glyph_info_is_unicode_format (info) && (info->unicode_props() & UPROPS_MASK_Cf_ZWNJ);
404 _hb_glyph_info_is_zwj (const hb_glyph_info_t *info)
406 return _hb_glyph_info_is_unicode_format (info) && (info->unicode_props() & UPROPS_MASK_Cf_ZWJ);
409 _hb_glyph_info_is_joiner (const hb_glyph_info_t *info)
411 return _hb_glyph_info_is_unicode_format (info) && (info->unicode_props() & (UPROPS_MASK_Cf_ZWNJ|UPROPS_MASK_Cf_ZWJ));
414 _hb_glyph_info_flip_joiners (hb_glyph_info_t *info)
416 if (!_hb_glyph_info_is_unicode_format (info))
418 info->unicode_props() ^= UPROPS_MASK_Cf_ZWNJ | UPROPS_MASK_Cf_ZWJ;
447 _hb_glyph_info_clear_lig_props (hb_glyph_info_t *info)
449 info->lig_props() = 0;
455 _hb_glyph_info_set_lig_props_for_ligature (hb_glyph_info_t *info,
459 info->lig_props() = (lig_id << 5) | IS_LIG_BASE | (lig_num_comps & 0x0F);
463 _hb_glyph_info_set_lig_props_for_mark (hb_glyph_info_t *info,
467 info->lig_props() = (lig_id << 5) | (lig_comp & 0x0F);
471 _hb_glyph_info_set_lig_props_for_component (hb_glyph_info_t *info, unsigned int comp)
473 _hb_glyph_info_set_lig_props_for_mark (info, 0, comp);
477 _hb_glyph_info_get_lig_id (const hb_glyph_info_t *info)
479 return info->lig_props() >> 5;
483 _hb_glyph_info_ligated_internal (const hb_glyph_info_t *info)
485 return !!(info->lig_props() & IS_LIG_BASE);
489 _hb_glyph_info_get_lig_comp (const hb_glyph_info_t *info)
491 if (_hb_glyph_info_ligated_internal (info))
494 return info->lig_props() & 0x0F;
498 _hb_glyph_info_get_lig_num_comps (const hb_glyph_info_t *info)
500 if ((info->glyph_props() & HB_OT_LAYOUT_GLYPH_PROPS_LIGATURE) &&
501 _hb_glyph_info_ligated_internal (info))
502 return info->lig_props() & 0x0F;
518 _hb_glyph_info_set_glyph_props (hb_glyph_info_t *info, unsigned int props)
520 info->glyph_props() = props;
524 _hb_glyph_info_get_glyph_props (const hb_glyph_info_t *info)
526 return info->glyph_props();
530 _hb_glyph_info_is_base_glyph (const hb_glyph_info_t *info)
532 info->glyph_props() & HB_OT_LAYOUT_GLYPH_PROPS_BASE_GLYPH);
536 _hb_glyph_info_is_ligature (const hb_glyph_info_t *info)
538 return !!(info->glyph_props() & HB_OT_LAYOUT_GLYPH_PROPS_LIGATURE);
542 _hb_glyph_info_is_mark (const hb_glyph_info_t *info)
544 return !!(info->glyph_props() & HB_OT_LAYOUT_GLYPH_PROPS_MARK);
548 _hb_glyph_info_substituted (const hb_glyph_info_t *info)
550 return !!(info->glyph_props() & HB_OT_LAYOUT_GLYPH_PROPS_SUBSTITUTED);
554 _hb_glyph_info_ligated (const hb_glyph_info_t *info)
556 return !!(info->glyph_props() & HB_OT_LAYOUT_GLYPH_PROPS_LIGATED);
560 _hb_glyph_info_multiplied (const hb_glyph_info_t *info)
562 return !!(info->glyph_props() & HB_OT_LAYOUT_GLYPH_PROPS_MULTIPLIED);
566 _hb_glyph_info_ligated_and_didnt_multiply (const hb_glyph_info_t *info)
568 return _hb_glyph_info_ligated (info) && !_hb_glyph_info_multiplied (info);
572 _hb_glyph_info_clear_ligated_and_multiplied (hb_glyph_info_t *info)
574 info->glyph_props() &= ~(HB_OT_LAYOUT_GLYPH_PROPS_LIGATED |
579 _hb_glyph_info_clear_substituted (hb_glyph_info_t *info)
581 info->glyph_props() &= ~(HB_OT_LAYOUT_GLYPH_PROPS_SUBSTITUTED);