QtBase  v6.3.1
Namespaces | Macros | Enumerations | Functions
hb-ot-layout.hh File Reference
#include "hb.hh"
#include "hb-font.hh"
#include "hb-buffer.hh"
#include "hb-open-type.hh"
#include "hb-ot-shape.hh"
#include "hb-set-digest.hh"
Include dependency graph for hb-ot-layout.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 OT
 
 OT::Layout
 
 OT::Layout::GSUB
 

Macros

#define unicode_props()   var2.u16[0]
 
#define glyph_props()   var1.u16[0] /* GDEF glyph properties */
 
#define lig_props()   var1.u8[2] /* GSUB/GPOS ligature tracking */
 
#define syllable()   var1.u8[3] /* GSUB/GPOS shaping boundaries */
 
#define foreach_syllable(buffer, start, end)
 
#define info_cc(info)   (_hb_glyph_info_get_modified_combining_class (&(info)))
 
#define foreach_grapheme(buffer, start, end)    foreach_group (buffer, start, end, _hb_grapheme_group_func)
 
#define IS_LIG_BASE   0x10
 

Enumerations

enum  hb_ot_layout_glyph_props_flags_t {
  HB_OT_LAYOUT_GLYPH_PROPS_BASE_GLYPH = 0x02u , HB_OT_LAYOUT_GLYPH_PROPS_LIGATURE = 0x04u , HB_OT_LAYOUT_GLYPH_PROPS_MARK = 0x08u , HB_OT_LAYOUT_GLYPH_PROPS_SUBSTITUTED = 0x10u ,
  HB_OT_LAYOUT_GLYPH_PROPS_LIGATED = 0x20u , HB_OT_LAYOUT_GLYPH_PROPS_MULTIPLIED = 0x40u , HB_OT_LAYOUT_GLYPH_PROPS_PRESERVE
}
 
enum  hb_unicode_props_flags_t {
  UPROPS_MASK_GEN_CAT = 0x001Fu , UPROPS_MASK_IGNORABLE = 0x0020u , UPROPS_MASK_HIDDEN = 0x0040u , UPROPS_MASK_CONTINUATION =0x0080u ,
  UPROPS_MASK_Cf_ZWJ = 0x0100u , UPROPS_MASK_Cf_ZWNJ = 0x0200u
}
 

Functions

HB_INTERNAL bool hb_ot_layout_has_kerning (hb_face_t *face)
 
HB_INTERNAL bool hb_ot_layout_has_machine_kerning (hb_face_t *face)
 
HB_INTERNAL bool hb_ot_layout_has_cross_kerning (hb_face_t *face)
 
HB_INTERNAL void hb_ot_layout_kern (const hb_ot_shape_plan_t *plan, hb_font_t *font, hb_buffer_t *buffer)
 
HB_INTERNAL bool hb_ot_layout_table_find_feature (hb_face_t *face, hb_tag_t table_tag, hb_tag_t feature_tag, unsigned int *feature_index)
 
 HB_MARK_AS_FLAG_T (hb_ot_layout_glyph_props_flags_t)
 
HB_INTERNAL void hb_ot_layout_substitute_start (hb_font_t *font, hb_buffer_t *buffer)
 
HB_INTERNAL void hb_ot_layout_delete_glyphs_inplace (hb_buffer_t *buffer, bool(*filter)(const hb_glyph_info_t *info))
 
HB_INTERNAL void hb_ot_layout_substitute_lookup (OT::hb_ot_apply_context_t *c, const OT::Layout::GSUB::SubstLookup &lookup, const OT::hb_ot_layout_lookup_accelerator_t &accel)
 
HB_INTERNAL void hb_ot_layout_position_start (hb_font_t *font, hb_buffer_t *buffer)
 
HB_INTERNAL void hb_ot_layout_position_finish_advances (hb_font_t *font, hb_buffer_t *buffer)
 
HB_INTERNAL void hb_ot_layout_position_finish_offsets (hb_font_t *font, hb_buffer_t *buffer)
 
 HB_MARK_AS_FLAG_T (hb_unicode_props_flags_t)
 

Macro Definition Documentation

◆ foreach_grapheme

#define foreach_grapheme (   buffer,
  start,
  end 
)     foreach_group (buffer, start, end, _hb_grapheme_group_func)

Definition at line 352 of file hb-ot-layout.hh.

◆ foreach_syllable

#define foreach_syllable (   buffer,
  start,
  end 
)
Value:
for (unsigned int \
_count = buffer->len, \
start = 0, end = _count ? _hb_next_syllable (buffer, 0) : 0; \
start < _count; \
start = end, end = _hb_next_syllable (buffer, start))
GLuint GLuint end
GLenum GLuint buffer
GLuint start

Definition at line 155 of file hb-ot-layout.hh.

◆ glyph_props

#define glyph_props ( )    var1.u16[0] /* GDEF glyph properties */

Definition at line 149 of file hb-ot-layout.hh.

◆ info_cc

#define info_cc (   info)    (_hb_glyph_info_get_modified_combining_class (&(info)))

Definition at line 287 of file hb-ot-layout.hh.

◆ IS_LIG_BASE

#define IS_LIG_BASE   0x10

Definition at line 422 of file hb-ot-layout.hh.

◆ lig_props

#define lig_props ( )    var1.u8[2] /* GSUB/GPOS ligature tracking */

Definition at line 150 of file hb-ot-layout.hh.

◆ syllable

#define syllable ( )    var1.u8[3] /* GSUB/GPOS shaping boundaries */

Definition at line 151 of file hb-ot-layout.hh.

◆ unicode_props

#define unicode_props ( )    var2.u16[0]

Definition at line 146 of file hb-ot-layout.hh.

Enumeration Type Documentation

◆ hb_ot_layout_glyph_props_flags_t

Enumerator
HB_OT_LAYOUT_GLYPH_PROPS_BASE_GLYPH 
HB_OT_LAYOUT_GLYPH_PROPS_LIGATURE 
HB_OT_LAYOUT_GLYPH_PROPS_MARK 
HB_OT_LAYOUT_GLYPH_PROPS_SUBSTITUTED 
HB_OT_LAYOUT_GLYPH_PROPS_LIGATED 
HB_OT_LAYOUT_GLYPH_PROPS_MULTIPLIED 
HB_OT_LAYOUT_GLYPH_PROPS_PRESERVE 

Definition at line 76 of file hb-ot-layout.hh.

◆ hb_unicode_props_flags_t

Enumerator
UPROPS_MASK_GEN_CAT 
UPROPS_MASK_IGNORABLE 
UPROPS_MASK_HIDDEN 
UPROPS_MASK_CONTINUATION 
UPROPS_MASK_Cf_ZWJ 
UPROPS_MASK_Cf_ZWNJ 

Definition at line 195 of file hb-ot-layout.hh.

Function Documentation

◆ HB_MARK_AS_FLAG_T() [1/2]

HB_MARK_AS_FLAG_T ( hb_ot_layout_glyph_props_flags_t  )

◆ HB_MARK_AS_FLAG_T() [2/2]

HB_MARK_AS_FLAG_T ( hb_unicode_props_flags_t  )

◆ hb_ot_layout_delete_glyphs_inplace()

HB_INTERNAL void hb_ot_layout_delete_glyphs_inplace ( hb_buffer_t buffer,
bool(*)(const hb_glyph_info_t *info filter 
)

Definition at line 1438 of file hb-ot-layout.cc.

Here is the caller graph for this function:

◆ hb_ot_layout_has_cross_kerning()

HB_INTERNAL bool hb_ot_layout_has_cross_kerning ( hb_face_t face)

hb_ot_layout_has_cross_kerning: @face: The hb_face_t to work on

Tests whether a face has any cross-stream kerning (i.e., kerns that make adjustments perpendicular to the direction of the text flow: Y adjustments in horizontal text or X adjustments in vertical text) in the 'kern' table.

Does NOT examine the GPOS table.

Return value: true is data found, false otherwise

Definition at line 121 of file hb-ot-layout.cc.

Here is the caller graph for this function:

◆ hb_ot_layout_has_kerning()

HB_INTERNAL bool hb_ot_layout_has_kerning ( hb_face_t face)

SECTION:hb-ot-layout @title: hb-ot-layout @short_description: OpenType Layout hb-ot.h

Functions for querying OpenType Layout features in the font face. hb_ot_layout_has_kerning: @face: The hb_face_t to work on

Tests whether a face includes any kerning data in the 'kern' table. Does NOT test for kerning lookups in the GPOS table.

Return value: true if data found, false otherwise

Definition at line 85 of file hb-ot-layout.cc.

Here is the caller graph for this function:

◆ hb_ot_layout_has_machine_kerning()

HB_INTERNAL bool hb_ot_layout_has_machine_kerning ( hb_face_t face)

hb_ot_layout_has_machine_kerning: @face: The hb_face_t to work on

Tests whether a face includes any state-machine kerning in the 'kern' table. Does NOT examine the GPOS table.

Return value: true if data found, false otherwise

Definition at line 101 of file hb-ot-layout.cc.

Here is the caller graph for this function:

◆ hb_ot_layout_kern()

HB_INTERNAL void hb_ot_layout_kern ( const hb_ot_shape_plan_t plan,
hb_font_t font,
hb_buffer_t buffer 
)

Definition at line 127 of file hb-ot-layout.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hb_ot_layout_position_finish_advances()

HB_INTERNAL void hb_ot_layout_position_finish_advances ( hb_font_t font,
hb_buffer_t buffer 
)

hb_ot_layout_position_finish_advances: @font: hb_font_t to use @buffer: hb_buffer_t buffer to work upon

Called after positioning lookups are performed, to finish glyph advances.

Definition at line 1604 of file hb-ot-layout.cc.

Here is the call graph for this function:

◆ hb_ot_layout_position_finish_offsets()

HB_INTERNAL void hb_ot_layout_position_finish_offsets ( hb_font_t font,
hb_buffer_t buffer 
)

hb_ot_layout_position_finish_offsets: @font: hb_font_t to use @buffer: hb_buffer_t buffer to work upon

Called after positioning lookups are performed, to finish glyph offsets.

Definition at line 1618 of file hb-ot-layout.cc.

Here is the call graph for this function:

◆ hb_ot_layout_position_start()

HB_INTERNAL void hb_ot_layout_position_start ( hb_font_t font,
hb_buffer_t buffer 
)

hb_ot_layout_position_start: @font: hb_font_t to use @buffer: hb_buffer_t buffer to work upon

Called before positioning lookups are performed, to ensure that glyph attachment types and glyph-attachment chains are set for the glyphs in the buffer.

Definition at line 1589 of file hb-ot-layout.cc.

Here is the call graph for this function:

◆ hb_ot_layout_substitute_lookup()

Definition at line 1964 of file hb-ot-layout.cc.

◆ hb_ot_layout_substitute_start()

HB_INTERNAL void hb_ot_layout_substitute_start ( hb_font_t font,
hb_buffer_t buffer 
)

hb_ot_layout_substitute_start: @font: hb_font_t to use @buffer: hb_buffer_t buffer to work upon

Called before substitution lookups are performed, to ensure that glyph class and other properties are set on the glyphs in the buffer.

Definition at line 1431 of file hb-ot-layout.cc.

◆ hb_ot_layout_table_find_feature()

HB_INTERNAL bool hb_ot_layout_table_find_feature ( hb_face_t face,
hb_tag_t  table_tag,
hb_tag_t  feature_tag,
unsigned int *  feature_index 
)

hb_ot_layout_table_find_feature: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @feature_tag: The hb_tag_t of the requested feature tag @feature_index: (out): The index of the requested feature

Fetches the index for a given feature tag in the specified face's GSUB table or GPOS table.

Return value: true if the feature is found, false otherwise

Definition at line 634 of file hb-ot-layout.cc.