QtBase  v6.3.1
Classes | Macros | Functions
hb-ot-layout.cc File Reference
#include "hb.hh"
#include "hb-open-type.hh"
#include "hb-ot-layout.hh"
#include "hb-ot-face.hh"
#include "hb-ot-map.hh"
#include "hb-map.hh"
#include "hb-ot-kern-table.hh"
#include "hb-ot-layout-gdef-table.hh"
#include "hb-ot-layout-gsub-table.hh"
#include "hb-ot-layout-gpos-table.hh"
#include "hb-ot-layout-base-table.hh"
#include "hb-ot-layout-jstf-table.hh"
#include "hb-ot-name-table.hh"
#include "hb-ot-os2-table.hh"
#include "hb-aat-layout-morx-table.hh"
#include "hb-aat-layout-opbd-table.hh"
Include dependency graph for hb-ot-layout.cc:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  hb_collect_features_context_t
 
struct  GSUBProxy
 
struct  GPOSProxy
 
struct  hb_get_glyph_alternates_dispatch_t
 

Macros

#define HB_OT_TAG_LATIN_SCRIPT   HB_TAG ('l', 'a', 't', 'n')
 

Functions

bool hb_ot_layout_has_kerning (hb_face_t *face)
 
bool hb_ot_layout_has_machine_kerning (hb_face_t *face)
 
bool hb_ot_layout_has_cross_kerning (hb_face_t *face)
 
void hb_ot_layout_kern (const hb_ot_shape_plan_t *plan, hb_font_t *font, hb_buffer_t *buffer)
 
hb_bool_t hb_ot_layout_has_glyph_classes (hb_face_t *face)
 
hb_ot_layout_glyph_class_t hb_ot_layout_get_glyph_class (hb_face_t *face, hb_codepoint_t glyph)
 
void hb_ot_layout_get_glyphs_in_class (hb_face_t *face, hb_ot_layout_glyph_class_t klass, hb_set_t *glyphs)
 
unsigned int hb_ot_layout_get_attach_points (hb_face_t *face, hb_codepoint_t glyph, unsigned int start_offset, unsigned int *point_count, unsigned int *point_array)
 
unsigned int hb_ot_layout_get_ligature_carets (hb_font_t *font, hb_direction_t direction, hb_codepoint_t glyph, unsigned int start_offset, unsigned int *caret_count, hb_position_t *caret_array)
 
unsigned int hb_ot_layout_table_get_script_tags (hb_face_t *face, hb_tag_t table_tag, unsigned int start_offset, unsigned int *script_count, hb_tag_t *script_tags)
 
hb_bool_t hb_ot_layout_table_find_script (hb_face_t *face, hb_tag_t table_tag, hb_tag_t script_tag, unsigned int *script_index)
 
hb_bool_t hb_ot_layout_table_choose_script (hb_face_t *face, hb_tag_t table_tag, const hb_tag_t *script_tags, unsigned int *script_index, hb_tag_t *chosen_script)
 
hb_bool_t hb_ot_layout_table_select_script (hb_face_t *face, hb_tag_t table_tag, unsigned int script_count, const hb_tag_t *script_tags, unsigned int *script_index, hb_tag_t *chosen_script)
 
unsigned int hb_ot_layout_table_get_feature_tags (hb_face_t *face, hb_tag_t table_tag, unsigned int start_offset, unsigned int *feature_count, hb_tag_t *feature_tags)
 
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)
 
unsigned int hb_ot_layout_script_get_language_tags (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int start_offset, unsigned int *language_count, hb_tag_t *language_tags)
 
hb_bool_t hb_ot_layout_script_find_language (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, hb_tag_t language_tag, unsigned int *language_index)
 
hb_bool_t hb_ot_layout_script_select_language (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_count, const hb_tag_t *language_tags, unsigned int *language_index)
 
hb_bool_t hb_ot_layout_language_get_required_feature_index (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, unsigned int *feature_index)
 
hb_bool_t hb_ot_layout_language_get_required_feature (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, unsigned int *feature_index, hb_tag_t *feature_tag)
 
unsigned int hb_ot_layout_language_get_feature_indexes (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, unsigned int start_offset, unsigned int *feature_count, unsigned int *feature_indexes)
 
unsigned int hb_ot_layout_language_get_feature_tags (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, unsigned int start_offset, unsigned int *feature_count, hb_tag_t *feature_tags)
 
hb_bool_t hb_ot_layout_language_find_feature (hb_face_t *face, hb_tag_t table_tag, unsigned int script_index, unsigned int language_index, hb_tag_t feature_tag, unsigned int *feature_index)
 
unsigned int hb_ot_layout_feature_get_lookups (hb_face_t *face, hb_tag_t table_tag, unsigned int feature_index, unsigned int start_offset, unsigned int *lookup_count, unsigned int *lookup_indexes)
 
unsigned int hb_ot_layout_table_get_lookup_count (hb_face_t *face, hb_tag_t table_tag)
 
void hb_ot_layout_collect_features (hb_face_t *face, hb_tag_t table_tag, const hb_tag_t *scripts, const hb_tag_t *languages, const hb_tag_t *features, hb_set_t *feature_indexes)
 
void hb_ot_layout_collect_lookups (hb_face_t *face, hb_tag_t table_tag, const hb_tag_t *scripts, const hb_tag_t *languages, const hb_tag_t *features, hb_set_t *lookup_indexes)
 
void hb_ot_layout_lookup_collect_glyphs (hb_face_t *face, hb_tag_t table_tag, unsigned int lookup_index, hb_set_t *glyphs_before, hb_set_t *glyphs_input, hb_set_t *glyphs_after, hb_set_t *glyphs_output)
 
hb_bool_t hb_ot_layout_table_find_feature_variations (hb_face_t *face, hb_tag_t table_tag, const int *coords, unsigned int num_coords, unsigned int *variations_index)
 
unsigned int hb_ot_layout_feature_with_variations_get_lookups (hb_face_t *face, hb_tag_t table_tag, unsigned int feature_index, unsigned int variations_index, unsigned int start_offset, unsigned int *lookup_count, unsigned int *lookup_indexes)
 
hb_bool_t hb_ot_layout_has_substitution (hb_face_t *face)
 
hb_bool_t hb_ot_layout_lookup_would_substitute (hb_face_t *face, unsigned int lookup_index, const hb_codepoint_t *glyphs, unsigned int glyphs_length, hb_bool_t zero_context)
 
void hb_ot_layout_substitute_start (hb_font_t *font, hb_buffer_t *buffer)
 
void hb_ot_layout_delete_glyphs_inplace (hb_buffer_t *buffer, bool(*filter)(const hb_glyph_info_t *info))
 
void hb_ot_layout_lookup_substitute_closure (hb_face_t *face, unsigned int lookup_index, hb_set_t *glyphs)
 
void hb_ot_layout_lookups_substitute_closure (hb_face_t *face, const hb_set_t *lookups, hb_set_t *glyphs)
 
hb_bool_t hb_ot_layout_has_positioning (hb_face_t *face)
 
void hb_ot_layout_position_start (hb_font_t *font, hb_buffer_t *buffer)
 
void hb_ot_layout_position_finish_advances (hb_font_t *font, hb_buffer_t *buffer)
 
void hb_ot_layout_position_finish_offsets (hb_font_t *font, hb_buffer_t *buffer)
 
hb_bool_t hb_ot_layout_get_size_params (hb_face_t *face, unsigned int *design_size, unsigned int *subfamily_id, hb_ot_name_id_t *subfamily_name_id, unsigned int *range_start, unsigned int *range_end)
 
hb_bool_t hb_ot_layout_feature_get_name_ids (hb_face_t *face, hb_tag_t table_tag, unsigned int feature_index, hb_ot_name_id_t *label_id, hb_ot_name_id_t *tooltip_id, hb_ot_name_id_t *sample_id, unsigned int *num_named_parameters, hb_ot_name_id_t *first_param_id)
 
unsigned int hb_ot_layout_feature_get_characters (hb_face_t *face, hb_tag_t table_tag, unsigned int feature_index, unsigned int start_offset, unsigned int *char_count, hb_codepoint_t *characters)
 
void hb_ot_layout_substitute_lookup (OT::hb_ot_apply_context_t *c, const OT::SubstLookup &lookup, const OT::hb_ot_layout_lookup_accelerator_t &accel)
 
hb_ot_layout_baseline_tag_t hb_ot_layout_get_horizontal_baseline_tag_for_script (hb_script_t script)
 
hb_bool_t hb_ot_layout_get_baseline (hb_font_t *font, hb_ot_layout_baseline_tag_t baseline_tag, hb_direction_t direction, hb_tag_t script_tag, hb_tag_t language_tag, hb_position_t *coord)
 
void hb_ot_layout_get_baseline_with_fallback (hb_font_t *font, hb_ot_layout_baseline_tag_t baseline_tag, hb_direction_t direction, hb_tag_t script_tag, hb_tag_t language_tag, hb_position_t *coord)
 
HB_EXTERN unsigned hb_ot_layout_lookup_get_glyph_alternates (hb_face_t *face, unsigned lookup_index, hb_codepoint_t glyph, unsigned start_offset, unsigned *alternate_count, hb_codepoint_t *alternate_glyphs)
 

Macro Definition Documentation

◆ HB_OT_TAG_LATIN_SCRIPT

#define HB_OT_TAG_LATIN_SCRIPT   HB_TAG ('l', 'a', 't', 'n')

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

Function Documentation

◆ hb_ot_layout_collect_features()

void hb_ot_layout_collect_features ( hb_face_t face,
hb_tag_t  table_tag,
const hb_tag_t scripts,
const hb_tag_t languages,
const hb_tag_t features,
hb_set_t feature_indexes 
)

hb_ot_layout_collect_features: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @scripts: The array of scripts to collect features for @languages: The array of languages to collect features for @features: The array of features to collect @feature_indexes: (out): The array of feature indexes found for the query

Fetches a list of all feature indexes in the specified face's GSUB table or GPOS table, underneath the specified scripts, languages, and features. If no list of scripts is provided, all scripts will be queried. If no list of languages is provided, all languages will be queried. If no list of features is provided, all features will be queried.

Since: 1.8.5

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

◆ hb_ot_layout_collect_lookups()

void hb_ot_layout_collect_lookups ( hb_face_t face,
hb_tag_t  table_tag,
const hb_tag_t scripts,
const hb_tag_t languages,
const hb_tag_t features,
hb_set_t lookup_indexes 
)

hb_ot_layout_collect_lookups: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @scripts: The array of scripts to collect lookups for @languages: The array of languages to collect lookups for @features: The array of features to collect lookups for @lookup_indexes: (out): The array of lookup indexes found for the query

Fetches a list of all feature-lookup indexes in the specified face's GSUB table or GPOS table, underneath the specified scripts, languages, and features. If no list of scripts is provided, all scripts will be queried. If no list of languages is provided, all languages will be queried. If no list of features is provided, all features will be queried.

Since: 0.9.8

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

◆ hb_ot_layout_delete_glyphs_inplace()

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_feature_get_characters()

unsigned int hb_ot_layout_feature_get_characters ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  feature_index,
unsigned int  start_offset,
unsigned int *  char_count,
hb_codepoint_t characters 
)

hb_ot_layout_feature_get_characters: @face: hb_face_t to work upon @table_tag: table tag to query, "GSUB" or "GPOS". @feature_index: index of feature to query. @start_offset: offset of the first character to retrieve @char_count: (inout) (optional): Input = the maximum number of characters to return; Output = the actual number of characters returned (may be zero) @characters: (out caller-allocates) (array length=char_count): A buffer pointer. The Unicode codepoints of the characters for which this feature provides glyph variants.

Fetches a list of the characters defined as having a variant under the specified "Character Variant" ("cvXX") feature tag.

Return value: Number of total sample characters in the cvXX feature.

Since: 2.0.0

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

◆ hb_ot_layout_feature_get_lookups()

unsigned int hb_ot_layout_feature_get_lookups ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  feature_index,
unsigned int  start_offset,
unsigned int *  lookup_count,
unsigned int *  lookup_indexes 
)

hb_ot_layout_feature_get_lookups: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @feature_index: The index of the requested feature @start_offset: offset of the first lookup to retrieve @lookup_count: (inout) (optional): Input = the maximum number of lookups to return; Output = the actual number of lookups returned (may be zero) @lookup_indexes: (out) (array length=lookup_count): The array of lookup indexes found for the query

Fetches a list of all lookups enumerated for the specified feature, in the specified face's GSUB table or GPOS table. The list returned will begin at the offset provided.

Return value: Total number of lookups.

Since: 0.9.7

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

Here is the call graph for this function:

◆ hb_ot_layout_feature_get_name_ids()

hb_bool_t hb_ot_layout_feature_get_name_ids ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  feature_index,
hb_ot_name_id_t label_id,
hb_ot_name_id_t tooltip_id,
hb_ot_name_id_t sample_id,
unsigned int *  num_named_parameters,
hb_ot_name_id_t first_param_id 
)

hb_ot_layout_feature_get_name_ids: @face: hb_face_t to work upon @table_tag: table tag to query, "GSUB" or "GPOS". @feature_index: index of feature to query. @label_id: (out) (optional): The ‘name’ table name ID that specifies a string for a user-interface label for this feature. (May be NULL.) @tooltip_id: (out) (optional): The ‘name’ table name ID that specifies a string that an application can use for tooltip text for this feature. (May be NULL.) @sample_id: (out) (optional): The ‘name’ table name ID that specifies sample text that illustrates the effect of this feature. (May be NULL.) @num_named_parameters: (out) (optional): Number of named parameters. (May be zero.) @first_param_id: (out) (optional): The first ‘name’ table name ID used to specify strings for user-interface labels for the feature parameters. (Must be zero if numParameters is zero.)

Fetches name indices from feature parameters for "Stylistic Set" ('ssXX') or "Character Variant" ('cvXX') features.

Return value: true if data found, false otherwise

Since: 2.0.0

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

◆ hb_ot_layout_feature_with_variations_get_lookups()

unsigned int hb_ot_layout_feature_with_variations_get_lookups ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  feature_index,
unsigned int  variations_index,
unsigned int  start_offset,
unsigned int *  lookup_count,
unsigned int *  lookup_indexes 
)

hb_ot_layout_feature_with_variations_get_lookups: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @feature_index: The index of the feature to query @variations_index: The index of the feature variation to query @start_offset: offset of the first lookup to retrieve @lookup_count: (inout) (optional): Input = the maximum number of lookups to return; Output = the actual number of lookups returned (may be zero) @lookup_indexes: (out) (array length=lookup_count): The array of lookups found for the query

Fetches a list of all lookups enumerated for the specified feature, in the specified face's GSUB table or GPOS table, enabled at the specified variations index. The list returned will begin at the offset provided.

Return value: Total number of lookups.

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

Here is the caller graph for this function:

◆ hb_ot_layout_get_attach_points()

unsigned int hb_ot_layout_get_attach_points ( hb_face_t face,
hb_codepoint_t  glyph,
unsigned int  start_offset,
unsigned int *  point_count,
unsigned int *  point_array 
)

hb_ot_layout_get_attach_points: @face: The hb_face_t to work on @glyph: The hb_codepoint_t code point to query @start_offset: offset of the first attachment point to retrieve @point_count: (inout) (optional): Input = the maximum number of attachment points to return; Output = the actual number of attachment points returned (may be zero) @point_array: (out) (array length=point_count): The array of attachment points found for the query

Fetches a list of all attachment points for the specified glyph in the GDEF table of the face. The list returned will begin at the offset provided.

Useful if the client program wishes to cache the list.

Return value: Total number of attachment points for @glyph.

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

◆ hb_ot_layout_get_baseline()

hb_bool_t hb_ot_layout_get_baseline ( hb_font_t font,
hb_ot_layout_baseline_tag_t  baseline_tag,
hb_direction_t  direction,
hb_tag_t  script_tag,
hb_tag_t  language_tag,
hb_position_t coord 
)

hb_ot_layout_get_baseline: @font: a font @baseline_tag: a baseline tag @direction: text direction. @script_tag: script tag. @language_tag: language tag, currently unused. @coord: (out) (nullable): baseline value if found.

Fetches a baseline value from the face.

Return value: true if found baseline value in the font.

Since: 2.6.0

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

Here is the caller graph for this function:

◆ hb_ot_layout_get_baseline_with_fallback()

void hb_ot_layout_get_baseline_with_fallback ( hb_font_t font,
hb_ot_layout_baseline_tag_t  baseline_tag,
hb_direction_t  direction,
hb_tag_t  script_tag,
hb_tag_t  language_tag,
hb_position_t coord 
)

hb_ot_layout_get_baseline_with_fallback: @font: a font @baseline_tag: a baseline tag @direction: text direction. @script_tag: script tag. @language_tag: language tag, currently unused. @coord: (out): baseline value if found.

Fetches a baseline value from the face, and synthesizes it if the font does not have it.

Since: 4.0.0

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

Here is the call graph for this function:

◆ hb_ot_layout_get_glyph_class()

hb_ot_layout_glyph_class_t hb_ot_layout_get_glyph_class ( hb_face_t face,
hb_codepoint_t  glyph 
)

hb_ot_layout_get_glyph_class: @face: The hb_face_t to work on @glyph: The hb_codepoint_t code point to query

Fetches the GDEF class of the requested glyph in the specified face.

Return value: The hb_ot_layout_glyph_class_t glyph class of the given code point in the GDEF table of the face.

Since: 0.9.7

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

◆ hb_ot_layout_get_glyphs_in_class()

void hb_ot_layout_get_glyphs_in_class ( hb_face_t face,
hb_ot_layout_glyph_class_t  klass,
hb_set_t glyphs 
)

hb_ot_layout_get_glyphs_in_class: @face: The hb_face_t to work on @klass: The hb_ot_layout_glyph_class_t GDEF class to retrieve @glyphs: (out): The hb_set_t set of all glyphs belonging to the requested class.

Retrieves the set of all glyphs from the face that belong to the requested glyph class in the face's GDEF table.

Since: 0.9.7

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

◆ hb_ot_layout_get_horizontal_baseline_tag_for_script()

hb_ot_layout_baseline_tag_t hb_ot_layout_get_horizontal_baseline_tag_for_script ( hb_script_t  script)

hb_ot_layout_get_horizontal_baseline_tag_for_script: @script: a script tag.

Fetches the dominant horizontal baseline tag used by @script.

Return value: dominant baseline tag for the @script.

Since: 4.0.0

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

◆ hb_ot_layout_get_ligature_carets()

unsigned int hb_ot_layout_get_ligature_carets ( hb_font_t font,
hb_direction_t  direction,
hb_codepoint_t  glyph,
unsigned int  start_offset,
unsigned int *  caret_count,
hb_position_t caret_array 
)

hb_ot_layout_get_ligature_carets: @font: The hb_font_t to work on @direction: The hb_direction_t text direction to use @glyph: The hb_codepoint_t code point to query @start_offset: offset of the first caret position to retrieve @caret_count: (inout) (optional): Input = the maximum number of caret positions to return; Output = the actual number of caret positions returned (may be zero) @caret_array: (out) (array length=caret_count): The array of caret positions found for the query

Fetches a list of the caret positions defined for a ligature glyph in the GDEF table of the font. The list returned will begin at the offset provided.

Note that a ligature that is formed from n characters will have n-1 caret positions. The first character is not represented in the array, since its caret position is the glyph position.

The positions returned by this function are 'unshaped', and will have to be fixed up for kerning that may be applied to the ligature glyph.

Return value: Total number of ligature caret positions for @glyph.

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

◆ hb_ot_layout_get_size_params()

hb_bool_t hb_ot_layout_get_size_params ( hb_face_t face,
unsigned int *  design_size,
unsigned int *  subfamily_id,
hb_ot_name_id_t subfamily_name_id,
unsigned int *  range_start,
unsigned int *  range_end 
)

hb_ot_layout_get_size_params: @face: hb_face_t to work upon @design_size: (out): The design size of the face @subfamily_id: (out): The identifier of the face within the font subfamily @subfamily_name_id: (out): The ‘name’ table name ID of the face within the font subfamily @range_start: (out): The minimum size of the recommended size range for the face @range_end: (out): The maximum size of the recommended size range for the face

Fetches optical-size feature data (i.e., the size feature from GPOS). Note that the subfamily_id and the subfamily name string (accessible via the subfamily_name_id) as used here are defined as pertaining only to fonts within a font family that differ specifically in their respective size ranges; other ways to differentiate fonts within a subfamily are not covered by the size feature.

For more information on this distinction, see the size feature documentation.

Return value: true if data found, false otherwise

Since: 0.9.10

Definition at line 1648 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_has_cross_kerning()

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_glyph_classes()

hb_bool_t hb_ot_layout_has_glyph_classes ( hb_face_t face)

hb_ot_layout_has_glyph_classes: @face: hb_face_t to work upon

Tests whether a face has any glyph classes defined in its GDEF table.

Return value: true if data found, false otherwise

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

Here is the caller graph for this function:

◆ hb_ot_layout_has_kerning()

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()

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_has_positioning()

hb_bool_t hb_ot_layout_has_positioning ( hb_face_t face)

hb_ot_layout_has_positioning: @face: hb_face_t to work upon

Tests whether the specified face includes any GPOS positioning.

Return value: true if the face has GPOS data, false otherwise

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

Here is the caller graph for this function:

◆ hb_ot_layout_has_substitution()

hb_bool_t hb_ot_layout_has_substitution ( hb_face_t face)

hb_ot_layout_has_substitution: @face: hb_face_t to work upon

Tests whether the specified face includes any GSUB substitutions.

Return value: true if data found, false otherwise

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

Here is the caller graph for this function:

◆ hb_ot_layout_kern()

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_language_find_feature()

hb_bool_t hb_ot_layout_language_find_feature ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  script_index,
unsigned int  language_index,
hb_tag_t  feature_tag,
unsigned int *  feature_index 
)

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

Fetches the index of a given feature tag in the specified face's GSUB table or GPOS table, underneath the specified script and language.

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

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

◆ hb_ot_layout_language_get_feature_indexes()

unsigned int hb_ot_layout_language_get_feature_indexes ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  script_index,
unsigned int  language_index,
unsigned int  start_offset,
unsigned int *  feature_count,
unsigned int *  feature_indexes 
)

hb_ot_layout_language_get_feature_indexes: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @script_index: The index of the requested script tag @language_index: The index of the requested language tag @start_offset: offset of the first feature tag to retrieve @feature_count: (inout) (optional): Input = the maximum number of feature tags to return; Output: the actual number of feature tags returned (may be zero) @feature_indexes: (out) (array length=feature_count): The array of feature indexes found for the query

Fetches a list of all features in the specified face's GSUB table or GPOS table, underneath the specified script and language. The list returned will begin at the offset provided.

Return value: Total number of features.

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

◆ hb_ot_layout_language_get_feature_tags()

unsigned int hb_ot_layout_language_get_feature_tags ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  script_index,
unsigned int  language_index,
unsigned int  start_offset,
unsigned int *  feature_count,
hb_tag_t feature_tags 
)

hb_ot_layout_language_get_feature_tags: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @script_index: The index of the requested script tag @language_index: The index of the requested language tag @start_offset: offset of the first feature tag to retrieve @feature_count: (inout) (optional): Input = the maximum number of feature tags to return; Output = the actual number of feature tags returned (may be zero) @feature_tags: (out) (array length=feature_count): The array of hb_tag_t feature tags found for the query

Fetches a list of all features in the specified face's GSUB table or GPOS table, underneath the specified script and language. The list returned will begin at the offset provided.

Return value: Total number of feature tags.

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

◆ hb_ot_layout_language_get_required_feature()

hb_bool_t hb_ot_layout_language_get_required_feature ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  script_index,
unsigned int  language_index,
unsigned int *  feature_index,
hb_tag_t feature_tag 
)

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

Fetches the tag of a requested feature index in the given face's GSUB or GPOS table, underneath the specified script and language.

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

Since: 0.9.30

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

Here is the caller graph for this function:

◆ hb_ot_layout_language_get_required_feature_index()

hb_bool_t hb_ot_layout_language_get_required_feature_index ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  script_index,
unsigned int  language_index,
unsigned int *  feature_index 
)

hb_ot_layout_language_get_required_feature_index: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @script_index: The index of the requested script tag @language_index: The index of the requested language tag @feature_index: (out): The index of the requested feature

Fetches the index of a requested feature in the given face's GSUB or GPOS table, underneath the specified script and language.

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

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

Here is the call graph for this function:

◆ hb_ot_layout_lookup_collect_glyphs()

void hb_ot_layout_lookup_collect_glyphs ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  lookup_index,
hb_set_t glyphs_before,
hb_set_t glyphs_input,
hb_set_t glyphs_after,
hb_set_t glyphs_output 
)

hb_ot_layout_lookup_collect_glyphs: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @lookup_index: The index of the feature lookup to query @glyphs_before: (out): Array of glyphs preceding the substitution range @glyphs_input: (out): Array of input glyphs that would be substituted by the lookup @glyphs_after: (out): Array of glyphs following the substitution range @glyphs_output: (out): Array of glyphs that would be the substituted output of the lookup

Fetches a list of all glyphs affected by the specified lookup in the specified face's GSUB table or GPOS table.

Since: 0.9.7

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

◆ hb_ot_layout_lookup_get_glyph_alternates()

HB_EXTERN unsigned hb_ot_layout_lookup_get_glyph_alternates ( hb_face_t face,
unsigned  lookup_index,
hb_codepoint_t  glyph,
unsigned  start_offset,
unsigned *  alternate_count,
hb_codepoint_t alternate_glyphs 
)

hb_ot_layout_lookup_get_glyph_alternates: @face: a face. @lookup_index: index of the feature lookup to query. @glyph: a glyph id. @start_offset: starting offset. @alternate_count: (inout) (optional): Input = the maximum number of alternate glyphs to return; Output = the actual number of alternate glyphs returned (may be zero). @alternate_glyphs: (out caller-allocates) (array length=alternate_count): A glyphs buffer. Alternate glyphs associated with the glyph id.

Fetches alternates of a glyph from a given GSUB lookup index.

Return value: Total number of alternates found in the specific lookup index for the given glyph id.

Since: 2.6.8

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

Here is the call graph for this function:

◆ hb_ot_layout_lookup_substitute_closure()

void hb_ot_layout_lookup_substitute_closure ( hb_face_t face,
unsigned int  lookup_index,
hb_set_t glyphs 
)

hb_ot_layout_lookup_substitute_closure: @face: hb_face_t to work upon @lookup_index: index of the feature lookup to query @glyphs: (out): Array of glyphs comprising the transitive closure of the lookup

Compute the transitive closure of glyphs needed for a specified lookup.

Since: 0.9.7

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

Here is the call graph for this function:

◆ hb_ot_layout_lookup_would_substitute()

hb_bool_t hb_ot_layout_lookup_would_substitute ( hb_face_t face,
unsigned int  lookup_index,
const hb_codepoint_t glyphs,
unsigned int  glyphs_length,
hb_bool_t  zero_context 
)

hb_ot_layout_lookup_would_substitute: @face: hb_face_t to work upon @lookup_index: The index of the lookup to query @glyphs: The sequence of glyphs to query for substitution @glyphs_length: The length of the glyph sequence @zero_context: hb_bool_t indicating whether pre-/post-context are disallowed in substitutions

Tests whether a specified lookup in the specified face would trigger a substitution on the given glyph sequence.

Return value: true if a substitution would be triggered, false otherwise

Since: 0.9.7

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

Here is the caller graph for this function:

◆ hb_ot_layout_lookups_substitute_closure()

void hb_ot_layout_lookups_substitute_closure ( hb_face_t face,
const hb_set_t lookups,
hb_set_t glyphs 
)

hb_ot_layout_lookups_substitute_closure: @face: hb_face_t to work upon @lookups: The set of lookups to query @glyphs: (out): Array of glyphs comprising the transitive closure of the lookups

Compute the transitive closure of glyphs needed for all of the provided lookups.

Since: 1.8.1

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

Here is the call graph for this function:

◆ hb_ot_layout_position_finish_advances()

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()

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()

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_script_find_language()

hb_bool_t hb_ot_layout_script_find_language ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  script_index,
hb_tag_t  language_tag,
unsigned int *  language_index 
)

hb_ot_layout_script_find_language: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @script_index: The index of the requested script tag @language_tag: The hb_tag_t of the requested language @language_index: The index of the requested language

Fetches the index of a given language tag in the specified face's GSUB table or GPOS table, underneath the specified script tag.

Return value: true if the language tag is found, false otherwise

Since: 0.6.0 Deprecated: 2.0.0

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

Here is the call graph for this function:

◆ hb_ot_layout_script_get_language_tags()

unsigned int hb_ot_layout_script_get_language_tags ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  script_index,
unsigned int  start_offset,
unsigned int *  language_count,
hb_tag_t language_tags 
)

hb_ot_layout_script_get_language_tags: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @script_index: The index of the requested script tag @start_offset: offset of the first language tag to retrieve @language_count: (inout) (optional): Input = the maximum number of language tags to return; Output = the actual number of language tags returned (may be zero) @language_tags: (out) (array length=language_count): Array of language tags found in the table

Fetches a list of language tags in the given face's GSUB or GPOS table, underneath the specified script index. The list returned will begin at the offset provided.

Return value: Total number of language tags.

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

◆ hb_ot_layout_script_select_language()

hb_bool_t hb_ot_layout_script_select_language ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  script_index,
unsigned int  language_count,
const hb_tag_t language_tags,
unsigned int *  language_index 
)

hb_ot_layout_script_select_language: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @script_index: The index of the requested script tag @language_count: The number of languages in the specified script @language_tags: The array of language tags @language_index: (out): The index of the requested language

Fetches the index of the first language tag fom @language_tags that is present in the specified face's GSUB or GPOS table, underneath the specified script index.

If none of the given language tags is found, false is returned and @language_index is set to the default language index.

Return value: true if one of the given language tags is found, false otherwise

Since: 2.0.0

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

Here is the caller graph for this function:

◆ hb_ot_layout_substitute_lookup()

void hb_ot_layout_substitute_lookup ( OT::hb_ot_apply_context_t c,
const OT::SubstLookup lookup,
const OT::hb_ot_layout_lookup_accelerator_t accel 
)

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

◆ hb_ot_layout_substitute_start()

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_choose_script()

hb_bool_t hb_ot_layout_table_choose_script ( hb_face_t face,
hb_tag_t  table_tag,
const hb_tag_t script_tags,
unsigned int *  script_index,
hb_tag_t chosen_script 
)

hb_ot_layout_table_choose_script: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @script_tags: Array of hb_tag_t script tags @script_index: (out): The index of the requested script tag @chosen_script: (out): hb_tag_t of the script tag requested

Deprecated since 2.0.0

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

Here is the call graph for this function:

◆ hb_ot_layout_table_find_feature()

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.

◆ hb_ot_layout_table_find_feature_variations()

hb_bool_t hb_ot_layout_table_find_feature_variations ( hb_face_t face,
hb_tag_t  table_tag,
const int *  coords,
unsigned int  num_coords,
unsigned int *  variations_index 
)

hb_ot_layout_table_find_feature_variations: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @coords: The variation coordinates to query @num_coords: The number of variation coordinates @variations_index: (out): The array of feature variations found for the query

Fetches a list of feature variations in the specified face's GSUB table or GPOS table, at the specified variation coordinates.

Return value: true if feature variations were found, false otherwise.

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

Here is the caller graph for this function:

◆ hb_ot_layout_table_find_script()

hb_bool_t hb_ot_layout_table_find_script ( hb_face_t face,
hb_tag_t  table_tag,
hb_tag_t  script_tag,
unsigned int *  script_index 
)

hb_ot_layout_table_find_script: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @script_tag: hb_tag_t of the script tag requested @script_index: (out): The index of the requested script tag

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

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

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

◆ hb_ot_layout_table_get_feature_tags()

unsigned int hb_ot_layout_table_get_feature_tags ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  start_offset,
unsigned int *  feature_count,
hb_tag_t feature_tags 
)

hb_ot_layout_table_get_feature_tags: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @start_offset: offset of the first feature tag to retrieve @feature_count: (inout) (optional): Input = the maximum number of feature tags to return; Output = the actual number of feature tags returned (may be zero) @feature_tags: (out) (array length=feature_count): Array of feature tags found in the table

Fetches a list of all feature tags in the given face's GSUB or GPOS table.

Return value: Total number of feature tags.

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

◆ hb_ot_layout_table_get_lookup_count()

unsigned int hb_ot_layout_table_get_lookup_count ( hb_face_t face,
hb_tag_t  table_tag 
)

hb_ot_layout_table_get_lookup_count: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS

Fetches the total number of lookups enumerated in the specified face's GSUB table or GPOS table.

Return value: Total number of lookups.

Since: 0.9.22

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

◆ hb_ot_layout_table_get_script_tags()

unsigned int hb_ot_layout_table_get_script_tags ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  start_offset,
unsigned int *  script_count,
hb_tag_t script_tags 
)

hb_ot_layout_table_get_script_tags: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @start_offset: offset of the first script tag to retrieve @script_count: (inout) (optional): Input = the maximum number of script tags to return; Output = the actual number of script tags returned (may be zero) @script_tags: (out) (array length=script_count): The array of hb_tag_t script tags found for the query

Fetches a list of all scripts enumerated in the specified face's GSUB table or GPOS table. The list returned will begin at the offset provided.

Return value: Total number of script tags.

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

◆ hb_ot_layout_table_select_script()

hb_bool_t hb_ot_layout_table_select_script ( hb_face_t face,
hb_tag_t  table_tag,
unsigned int  script_count,
const hb_tag_t script_tags,
unsigned int *  script_index,
hb_tag_t chosen_script 
)

hb_ot_layout_table_select_script: @face: hb_face_t to work upon @table_tag: HB_OT_TAG_GSUB or HB_OT_TAG_GPOS @script_count: Number of script tags in the array @script_tags: Array of hb_tag_t script tags @script_index: (out) (optional): The index of the requested script @chosen_script: (out) (optional): hb_tag_t of the requested script

Selects an OpenType script for @table_tag from the @script_tags array.

If the table does not have any of the requested scripts, then DFLT, dflt, and latn tags are tried in that order. If the table still does not have any of these scripts, @script_index and @chosen_script are set to HB_OT_LAYOUT_NO_SCRIPT_INDEX.

Return value: true if one of the requested scripts is selected, false if a fallback script is selected or if no scripts are selected.

Since: 2.0.0

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

Here is the caller graph for this function: