hb-font

hb-font — Font objects

Functions

void hb_font_add_glyph_origin_for_direction ()
hb_font_t * hb_font_create ()
hb_font_t * hb_font_create_sub_font ()
void hb_font_destroy ()
hb_font_funcs_t * hb_font_funcs_create ()
void hb_font_funcs_destroy ()
hb_font_funcs_t * hb_font_funcs_get_empty ()
void * hb_font_funcs_get_user_data ()
hb_bool_t hb_font_funcs_is_immutable ()
void hb_font_funcs_make_immutable ()
hb_font_funcs_t * hb_font_funcs_reference ()
void hb_font_funcs_set_glyph_contour_point_func ()
void hb_font_funcs_set_glyph_extents_func ()
void hb_font_funcs_set_glyph_from_name_func ()
void hb_font_funcs_set_glyph_h_advance_func ()
void hb_font_funcs_set_glyph_h_advances_func ()
void hb_font_funcs_set_glyph_h_kerning_func ()
void hb_font_funcs_set_glyph_h_origin_func ()
void hb_font_funcs_set_glyph_name_func ()
void hb_font_funcs_set_glyph_v_advance_func ()
void hb_font_funcs_set_glyph_v_advances_func ()
void hb_font_funcs_set_glyph_v_origin_func ()
void hb_font_funcs_set_nominal_glyph_func ()
void hb_font_funcs_set_nominal_glyphs_func ()
hb_bool_t hb_font_funcs_set_user_data ()
void hb_font_funcs_set_variation_glyph_func ()
hb_font_t * hb_font_get_empty ()
hb_face_t * hb_font_get_face ()
hb_bool_t hb_font_get_glyph ()
void hb_font_get_glyph_advance_for_direction ()
hb_position_t (*hb_font_get_glyph_advance_func_t) ()
void hb_font_get_glyph_advances_for_direction ()
void (*hb_font_get_glyph_advances_func_t) ()
hb_bool_t hb_font_get_glyph_contour_point ()
hb_bool_t hb_font_get_glyph_contour_point_for_origin ()
hb_bool_t (*hb_font_get_glyph_contour_point_func_t) ()
hb_bool_t hb_font_get_glyph_extents ()
hb_bool_t hb_font_get_glyph_extents_for_origin ()
hb_bool_t (*hb_font_get_glyph_extents_func_t) ()
hb_bool_t hb_font_get_glyph_from_name ()
hb_bool_t (*hb_font_get_glyph_from_name_func_t) ()
hb_position_t hb_font_get_glyph_h_advance ()
void hb_font_get_glyph_h_advances ()
hb_position_t hb_font_get_glyph_h_kerning ()
hb_bool_t hb_font_get_glyph_h_origin ()
void hb_font_get_glyph_kerning_for_direction ()
hb_position_t (*hb_font_get_glyph_kerning_func_t) ()
hb_bool_t hb_font_get_glyph_name ()
hb_bool_t (*hb_font_get_glyph_name_func_t) ()
void hb_font_get_glyph_origin_for_direction ()
hb_bool_t (*hb_font_get_glyph_origin_func_t) ()
hb_position_t hb_font_get_glyph_v_advance ()
void hb_font_get_glyph_v_advances ()
hb_bool_t hb_font_get_glyph_v_origin ()
hb_bool_t hb_font_get_nominal_glyph ()
hb_bool_t (*hb_font_get_nominal_glyph_func_t) ()
unsigned int hb_font_get_nominal_glyphs ()
unsigned int (*hb_font_get_nominal_glyphs_func_t) ()
hb_font_t * hb_font_get_parent ()
void hb_font_get_ppem ()
float hb_font_get_ptem ()
void hb_font_get_scale ()
void * hb_font_get_user_data ()
hb_bool_t hb_font_get_variation_glyph ()
hb_bool_t (*hb_font_get_variation_glyph_func_t) ()
const float * hb_font_get_var_coords_design ()
const int * hb_font_get_var_coords_normalized ()
hb_bool_t hb_font_glyph_from_string ()
void hb_font_glyph_to_string ()
hb_bool_t hb_font_is_immutable ()
void hb_font_make_immutable ()
hb_font_t * hb_font_reference ()
void hb_font_set_face ()
void hb_font_set_funcs ()
void hb_font_set_funcs_data ()
void hb_font_set_parent ()
void hb_font_set_ppem ()
void hb_font_set_ptem ()
void hb_font_set_scale ()
hb_bool_t hb_font_set_user_data ()
void hb_font_set_variations ()
void hb_font_set_var_coords_design ()
void hb_font_set_var_coords_normalized ()
void hb_font_set_var_named_instance ()
void hb_font_subtract_glyph_origin_for_direction ()
hb_blob_t * (*hb_reference_table_func_t) ()
void hb_font_funcs_set_font_h_extents_func ()
void hb_font_funcs_set_font_v_extents_func ()
void hb_font_get_extents_for_direction ()
hb_bool_t (*hb_font_get_font_extents_func_t) ()
hb_bool_t hb_font_get_h_extents ()
hb_bool_t hb_font_get_v_extents ()

Types and Values

Includes

#include <hb.h>

Description

Functions for working with font objects.

A font object represents a font face at a specific size and with certain other parameters (pixels-per-em, points-per-em, variation settings) specified. Font objects are created from font face objects, and are used as input to hb_shape(), among other things.

Client programs can optionally pass in their own functions that implement the basic, lower-level queries of font objects. This set of font functions is defined by the virtual methods in hb_font_funcs_t.

HarfBuzz provides a built-in set of lightweight default functions for each method in hb_font_funcs_t.

Functions

hb_font_add_glyph_origin_for_direction ()

void
hb_font_add_glyph_origin_for_direction
                               (hb_font_t *font,
                                hb_codepoint_t glyph,
                                hb_direction_t direction,
                                hb_position_t *x,
                                hb_position_t *y);

Adds the origin coordinates to an (X,Y) point coordinate, in the specified glyph ID in the specified font.

Calls the appropriate direction-specific variant (horizontal or vertical) depending on the value of direction .

Parameters

font

hb_font_t to work upon

 

glyph

The glyph ID to query

 

direction

The direction of the text segment

 

x

Input = The original X coordinate Output = The X coordinate plus the X-coordinate of the origin.

[inout]

y

Input = The original Y coordinate Output = The Y coordinate plus the Y-coordinate of the origin.

[inout]

Since: 0.9.2


hb_font_create ()

hb_font_t *
hb_font_create (hb_face_t *face);

Constructs a new font object from the specified face.

[Xconstructor]

Parameters

face

a face.

 

Returns

The new font object.

[transfer full]

Since: 0.9.2


hb_font_create_sub_font ()

hb_font_t *
hb_font_create_sub_font (hb_font_t *parent);

Constructs a sub-font font object from the specified parent font, replicating the parent's properties.

Parameters

parent

The parent font object

 

Returns

The new sub-font font object.

[transfer full]

Since: 0.9.2


hb_font_destroy ()

void
hb_font_destroy (hb_font_t *font);

Decreases the reference count on the given font object. When the reference count reaches zero, the font is destroyed, freeing all memory.

[skip]

Parameters

font

hb_font_t to work upon

 

Since: 0.9.2


hb_font_funcs_create ()

hb_font_funcs_t *
hb_font_funcs_create (void);

Creates a new hb_font_funcs_t structure of font functions.

[Xconstructor]

Returns

The font-functions structure.

[transfer full]

Since: 0.9.2


hb_font_funcs_destroy ()

void
hb_font_funcs_destroy (hb_font_funcs_t *ffuncs);

Decreases the reference count on a font-functions structure. When the reference count reaches zero, the font-functions structure is destroyed, freeing all memory.

[skip]

Parameters

ffuncs

The font-functions structure

 

Since: 0.9.2


hb_font_funcs_get_empty ()

hb_font_funcs_t *
hb_font_funcs_get_empty (void);

Fetches an empty font-functions structure.

Returns

The font-functions structure.

[transfer full]

Since: 0.9.2


hb_font_funcs_get_user_data ()

void *
hb_font_funcs_get_user_data (hb_font_funcs_t *ffuncs,
                             hb_user_data_key_t *key);

Fetches the user data associated with the specified key, attached to the specified font-functions structure.

[skip]

Parameters

ffuncs

The font-functions structure

 

key

The user-data key to query

 

Returns

A pointer to the user data.

[transfer none]

Since: 0.9.2


hb_font_funcs_is_immutable ()

hb_bool_t
hb_font_funcs_is_immutable (hb_font_funcs_t *ffuncs);

Tests whether a font-functions structure is immutable.

Parameters

ffuncs

The font-functions structure

 

Returns

true if ffuncs is immutable, false otherwise

Since: 0.9.2


hb_font_funcs_make_immutable ()

void
hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs);

Makes a font-functions structure immutable.

Parameters

ffuncs

The font-functions structure

 

Since: 0.9.2


hb_font_funcs_reference ()

hb_font_funcs_t *
hb_font_funcs_reference (hb_font_funcs_t *ffuncs);

Increases the reference count on a font-functions structure.

[skip]

Parameters

ffuncs

The font-functions structure

 

Returns

The font-functions structure

Since: 0.9.2


hb_font_funcs_set_glyph_contour_point_func ()

void
hb_font_funcs_set_glyph_contour_point_func
                               (hb_font_funcs_t *ffuncs,
                                hb_font_get_glyph_contour_point_func_t func,
                                void *user_data,
                                hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_glyph_contour_point_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 0.9.2


hb_font_funcs_set_glyph_extents_func ()

void
hb_font_funcs_set_glyph_extents_func (hb_font_funcs_t *ffuncs,
                                      hb_font_get_glyph_extents_func_t func,
                                      void *user_data,
                                      hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_glyph_extents_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 0.9.2


hb_font_funcs_set_glyph_from_name_func ()

void
hb_font_funcs_set_glyph_from_name_func
                               (hb_font_funcs_t *ffuncs,
                                hb_font_get_glyph_from_name_func_t func,
                                void *user_data,
                                hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_glyph_from_name_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 0.9.2


hb_font_funcs_set_glyph_h_advance_func ()

void
hb_font_funcs_set_glyph_h_advance_func
                               (hb_font_funcs_t *ffuncs,
                                hb_font_get_glyph_h_advance_func_t func,
                                void *user_data,
                                hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_glyph_h_advance_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 0.9.2


hb_font_funcs_set_glyph_h_advances_func ()

void
hb_font_funcs_set_glyph_h_advances_func
                               (hb_font_funcs_t *ffuncs,
                                hb_font_get_glyph_h_advances_func_t func,
                                void *user_data,
                                hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_glyph_h_advances_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 1.8.6


hb_font_funcs_set_glyph_h_kerning_func ()

void
hb_font_funcs_set_glyph_h_kerning_func
                               (hb_font_funcs_t *ffuncs,
                                hb_font_get_glyph_h_kerning_func_t func,
                                void *user_data,
                                hb_destroy_func_t destroy);

Parameters

ffuncs

font functions.

 

func

.

[closure user_data][destroy destroy][scope notified]

Since: 0.9.2


hb_font_funcs_set_glyph_h_origin_func ()

void
hb_font_funcs_set_glyph_h_origin_func (hb_font_funcs_t *ffuncs,
                                       hb_font_get_glyph_h_origin_func_t func,
                                       void *user_data,
                                       hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_glyph_h_origin_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 0.9.2


hb_font_funcs_set_glyph_name_func ()

void
hb_font_funcs_set_glyph_name_func (hb_font_funcs_t *ffuncs,
                                   hb_font_get_glyph_name_func_t func,
                                   void *user_data,
                                   hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_glyph_name_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 0.9.2


hb_font_funcs_set_glyph_v_advance_func ()

void
hb_font_funcs_set_glyph_v_advance_func
                               (hb_font_funcs_t *ffuncs,
                                hb_font_get_glyph_v_advance_func_t func,
                                void *user_data,
                                hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_glyph_v_advance_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 0.9.2


hb_font_funcs_set_glyph_v_advances_func ()

void
hb_font_funcs_set_glyph_v_advances_func
                               (hb_font_funcs_t *ffuncs,
                                hb_font_get_glyph_v_advances_func_t func,
                                void *user_data,
                                hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_glyph_v_advances_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 1.8.6


hb_font_funcs_set_glyph_v_origin_func ()

void
hb_font_funcs_set_glyph_v_origin_func (hb_font_funcs_t *ffuncs,
                                       hb_font_get_glyph_v_origin_func_t func,
                                       void *user_data,
                                       hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_glyph_v_origin_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 0.9.2


hb_font_funcs_set_nominal_glyph_func ()

void
hb_font_funcs_set_nominal_glyph_func (hb_font_funcs_t *ffuncs,
                                      hb_font_get_nominal_glyph_func_t func,
                                      void *user_data,
                                      hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_nominal_glyph_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 1.2.3


hb_font_funcs_set_nominal_glyphs_func ()

void
hb_font_funcs_set_nominal_glyphs_func (hb_font_funcs_t *ffuncs,
                                       hb_font_get_nominal_glyphs_func_t func,
                                       void *user_data,
                                       hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_nominal_glyphs_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 2.0.0


hb_font_funcs_set_user_data ()

hb_bool_t
hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs,
                             hb_user_data_key_t *key,
                             void *data,
                             hb_destroy_func_t destroy,
                             hb_bool_t replace);

Attaches a user-data key/data pair to the specified font-functions structure.

[skip]

Parameters

ffuncs

The font-functions structure

 

key

The user-data key to set

 

data

A pointer to the user data set

 

destroy

A callback to call when data is not needed anymore.

[optional]

replace

Whether to replace an existing data with the same key

 

Returns

true if success, false otherwise

Since: 0.9.2


hb_font_funcs_set_variation_glyph_func ()

void
hb_font_funcs_set_variation_glyph_func
                               (hb_font_funcs_t *ffuncs,
                                hb_font_get_variation_glyph_func_t func,
                                void *user_data,
                                hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_variation_glyph_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 1.2.3


hb_font_get_empty ()

hb_font_t *
hb_font_get_empty (void);

Fetches the empty font object.

Returns

The empty font object.

[transfer full]

Since: 0.9.2


hb_font_get_face ()

hb_face_t *
hb_font_get_face (hb_font_t *font);

Fetches the face associated with the specified font object.

Parameters

font

hb_font_t to work upon

 

Returns

The hb_face_t value.

[transfer none]

Since: 0.9.2


hb_font_get_glyph ()

hb_bool_t
hb_font_get_glyph (hb_font_t *font,
                   hb_codepoint_t unicode,
                   hb_codepoint_t variation_selector,
                   hb_codepoint_t *glyph);

Fetches the glyph ID for a Unicode code point in the specified font, with an optional variation selector.

If variation_selector is 0, calls hb_font_get_nominal_glyph(); otherwise calls hb_font_get_variation_glyph().

Parameters

font

hb_font_t to work upon

 

unicode

The Unicode code point to query

 

variation_selector

A variation-selector code point.

[optional]

glyph

The glyph ID retrieved.

[out]

Returns

true if data found, false otherwise

Since: 0.9.2


hb_font_get_glyph_advance_for_direction ()

void
hb_font_get_glyph_advance_for_direction
                               (hb_font_t *font,
                                hb_codepoint_t glyph,
                                hb_direction_t direction,
                                hb_position_t *x,
                                hb_position_t *y);

Fetches the advance for a glyph ID from the specified font, in a text segment of the specified direction.

Calls the appropriate direction-specific variant (horizontal or vertical) depending on the value of direction .

Parameters

font

hb_font_t to work upon

 

glyph

The glyph ID to query

 

direction

The direction of the text segment

 

x

The horizontal advance retrieved.

[out]

y

The vertical advance retrieved.

[out]

Since: 0.9.2


hb_font_get_glyph_advance_func_t ()

hb_position_t
(*hb_font_get_glyph_advance_func_t) (hb_font_t *font,
                                     void *font_data,
                                     hb_codepoint_t glyph,
                                     void *user_data);

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the advance for a specified glyph. The method must return an hb_position_t.


hb_font_get_glyph_advances_for_direction ()

void
hb_font_get_glyph_advances_for_direction
                               (hb_font_t *font,
                                hb_direction_t direction,
                                unsigned int count,
                                const hb_codepoint_t *first_glyph,
                                unsigned  glyph_stride,
                                hb_position_t *first_advance,
                                unsigned  advance_stride);

Fetches the advances for a sequence of glyph IDs in the specified font, in a text segment of the specified direction.

Calls the appropriate direction-specific variant (horizontal or vertical) depending on the value of direction .

Parameters

font

hb_font_t to work upon

 

direction

The direction of the text segment

 

count

The number of glyph IDs in the sequence queried

 

first_glyph

The first glyph ID to query

 

glyph_stride

The stride between successive glyph IDs

 

first_advance

The first advance retrieved.

[out]

advance_stride

The stride between successive advances.

[out]

Since: 1.8.6


hb_font_get_glyph_advances_func_t ()

void
(*hb_font_get_glyph_advances_func_t) (hb_font_t *font,
                                      void *font_data,
                                      unsigned int count,
                                      const hb_codepoint_t *first_glyph,
                                      unsigned  glyph_stride,
                                      hb_position_t *first_advance,
                                      unsigned  advance_stride,
                                      void *user_data);

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the advances for a sequence of glyphs.


hb_font_get_glyph_contour_point ()

hb_bool_t
hb_font_get_glyph_contour_point (hb_font_t *font,
                                 hb_codepoint_t glyph,
                                 unsigned int point_index,
                                 hb_position_t *x,
                                 hb_position_t *y);

Fetches the (x,y) coordinates of a specified contour-point index in the specified glyph, within the specified font.

Parameters

font

hb_font_t to work upon

 

glyph

The glyph ID to query

 

point_index

The contour-point index to query

 

x

The X value retrieved for the contour point.

[out]

y

The Y value retrieved for the contour point.

[out]

Returns

true if data found, false otherwise

Since: 0.9.2


hb_font_get_glyph_contour_point_for_origin ()

hb_bool_t
hb_font_get_glyph_contour_point_for_origin
                               (hb_font_t *font,
                                hb_codepoint_t glyph,
                                unsigned int point_index,
                                hb_direction_t direction,
                                hb_position_t *x,
                                hb_position_t *y);

Fetches the (X,Y) coordinates of a specified contour-point index in the specified glyph ID in the specified font, with respect to the origin in a text segment in the specified direction.

Calls the appropriate direction-specific variant (horizontal or vertical) depending on the value of direction .

Parameters

font

hb_font_t to work upon

 

glyph

The glyph ID to query

 

point_index

The contour-point index to query

 

direction

The direction of the text segment

 

x

The X value retrieved for the contour point.

[out]

y

The Y value retrieved for the contour point.

[out]

Returns

true if data found, false otherwise

Since: 0.9.2


hb_font_get_glyph_contour_point_func_t ()

hb_bool_t
(*hb_font_get_glyph_contour_point_func_t)
                               (hb_font_t *font,
                                void *font_data,
                                hb_codepoint_t glyph,
                                unsigned int point_index,
                                hb_position_t *x,
                                hb_position_t *y,
                                void *user_data);

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the (X,Y) coordinates (in font units) for a specified contour point in a glyph. Each coordinate must be returned as an hb_position_t output parameter.


hb_font_get_glyph_extents ()

hb_bool_t
hb_font_get_glyph_extents (hb_font_t *font,
                           hb_codepoint_t glyph,
                           hb_glyph_extents_t *extents);

Fetches the hb_glyph_extents_t data for a glyph ID in the specified font.

Parameters

font

hb_font_t to work upon

 

glyph

The glyph ID to query

 

extents

The hb_glyph_extents_t retrieved.

[out]

Returns

true if data found, false otherwise

Since: 0.9.2


hb_font_get_glyph_extents_for_origin ()

hb_bool_t
hb_font_get_glyph_extents_for_origin (hb_font_t *font,
                                      hb_codepoint_t glyph,
                                      hb_direction_t direction,
                                      hb_glyph_extents_t *extents);

Fetches the hb_glyph_extents_t data for a glyph ID in the specified font, with respect to the origin in a text segment in the specified direction.

Calls the appropriate direction-specific variant (horizontal or vertical) depending on the value of direction .

Parameters

font

hb_font_t to work upon

 

glyph

The glyph ID to query

 

direction

The direction of the text segment

 

extents

The hb_glyph_extents_t retrieved.

[out]

Returns

true if data found, false otherwise

Since: 0.9.2


hb_font_get_glyph_extents_func_t ()

hb_bool_t
(*hb_font_get_glyph_extents_func_t) (hb_font_t *font,
                                     void *font_data,
                                     hb_codepoint_t glyph,
                                     hb_glyph_extents_t *extents,
                                     void *user_data);

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the extents for a specified glyph. Extents must be returned in an hb_glyph_extents output parameter.


hb_font_get_glyph_from_name ()

hb_bool_t
hb_font_get_glyph_from_name (hb_font_t *font,
                             const char *name,
                             int len,
                             hb_codepoint_t *glyph);

Fetches the glyph ID that corresponds to a name string in the specified font .

Note: len == -1 means the name string is null-terminated.

Parameters

font

hb_font_t to work upon

 

name

The name string to query.

[array length=len]

len

The length of the name queried

 

glyph

The glyph ID retrieved.

[out]

Returns

true if data found, false otherwise

Since: 0.9.2


hb_font_get_glyph_from_name_func_t ()

hb_bool_t
(*hb_font_get_glyph_from_name_func_t) (hb_font_t *font,
                                       void *font_data,
                                       const char *name,
                                       int len,
                                       hb_codepoint_t *glyph,
                                       void *user_data);

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the glyph ID that corresponds to a glyph-name string.


hb_font_get_glyph_h_advance ()

hb_position_t
hb_font_get_glyph_h_advance (hb_font_t *font,
                             hb_codepoint_t glyph);

Fetches the advance for a glyph ID in the specified font, for horizontal text segments.

Parameters

font

hb_font_t to work upon

 

glyph

The glyph ID to query

 

Returns

The advance of glyph within font

Since: 0.9.2


hb_font_get_glyph_h_advances ()

void
hb_font_get_glyph_h_advances (hb_font_t *font,
                              unsigned int count,
                              const hb_codepoint_t *first_glyph,
                              unsigned  glyph_stride,
                              hb_position_t *first_advance,
                              unsigned  advance_stride);

Fetches the advances for a sequence of glyph IDs in the specified font, for horizontal text segments.

Parameters

font

hb_font_t to work upon

 

count

The number of glyph IDs in the sequence queried

 

first_glyph

The first glyph ID to query

 

glyph_stride

The stride between successive glyph IDs

 

first_advance

The first advance retrieved.

[out]

advance_stride

The stride between successive advances.

[out]

Since: 1.8.6


hb_font_get_glyph_h_kerning ()

hb_position_t
hb_font_get_glyph_h_kerning (hb_font_t *font,
                             hb_codepoint_t left_glyph,
                             hb_codepoint_t right_glyph);

Fetches the kerning-adjustment value for a glyph-pair in the specified font, in horizontal text segments.

It handles legacy kerning only (as returned by the corresponding hb_font_funcs_t function).

Parameters

font

hb_font_t to work upon

 

left_glyph

The glyph ID of the left glyph in the glyph pair

 

right_glyph

The glyph ID of the right glyph in the glyph pair

 

Returns

The kerning adjustment value

Since: 0.9.2


hb_font_get_glyph_h_origin ()

hb_bool_t
hb_font_get_glyph_h_origin (hb_font_t *font,
                            hb_codepoint_t glyph,
                            hb_position_t *x,
                            hb_position_t *y);

Fetches the (X,Y) coordinates of the origin for a glyph ID in the specified font, for horizontal text segments.

Parameters

font

hb_font_t to work upon

 

glyph

The glyph ID to query

 

x

The X coordinate of the origin.

[out]

y

The Y coordinate of the origin.

[out]

Returns

true if data found, false otherwise

Since: 0.9.2


hb_font_get_glyph_kerning_for_direction ()

void
hb_font_get_glyph_kerning_for_direction
                               (hb_font_t *font,
                                hb_codepoint_t first_glyph,
                                hb_codepoint_t second_glyph,
                                hb_direction_t direction,
                                hb_position_t *x,
                                hb_position_t *y);

Fetches the kerning-adjustment value for a glyph-pair in the specified font.

Calls the appropriate direction-specific variant (horizontal or vertical) depending on the value of direction .

Parameters

font

hb_font_t to work upon

 

first_glyph

The glyph ID of the first glyph in the glyph pair to query

 

second_glyph

The glyph ID of the second glyph in the glyph pair to query

 

direction

The direction of the text segment

 

x

The horizontal kerning-adjustment value retrieved.

[out]

y

The vertical kerning-adjustment value retrieved.

[out]

Since: 0.9.2


hb_font_get_glyph_kerning_func_t ()

hb_position_t
(*hb_font_get_glyph_kerning_func_t) (hb_font_t *font,
                                     void *font_data,
                                     hb_codepoint_t first_glyph,
                                     hb_codepoint_t second_glyph,
                                     void *user_data);

hb_font_get_glyph_name ()

hb_bool_t
hb_font_get_glyph_name (hb_font_t *font,
                        hb_codepoint_t glyph,
                        char *name,
                        unsigned int size);

Fetches the glyph-name string for a glyph ID in the specified font .

Parameters

font

hb_font_t to work upon

 

glyph

The glyph ID to query

 

name

Name string retrieved for the glyph ID.

[out][array length=size]

size

Length of the glyph-name string retrieved

 

Returns

true if data found, zero otherwise

Since: 0.9.2


hb_font_get_glyph_name_func_t ()

hb_bool_t
(*hb_font_get_glyph_name_func_t) (hb_font_t *font,
                                  void *font_data,
                                  hb_codepoint_t glyph,
                                  char *name,
                                  unsigned int size,
                                  void *user_data);

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the glyph name that corresponds to a glyph ID. The name should be returned in a string output parameter.


hb_font_get_glyph_origin_for_direction ()

void
hb_font_get_glyph_origin_for_direction
                               (hb_font_t *font,
                                hb_codepoint_t glyph,
                                hb_direction_t direction,
                                hb_position_t *x,
                                hb_position_t *y);

Fetches the (X,Y) coordinates of the origin for a glyph in the specified font.

Calls the appropriate direction-specific variant (horizontal or vertical) depending on the value of direction .

Parameters

font

hb_font_t to work upon

 

glyph

The glyph ID to query

 

direction

The direction of the text segment

 

x

The X coordinate retrieved for the origin.

[out]

y

The Y coordinate retrieved for the origin.

[out]

Since: 0.9.2


hb_font_get_glyph_origin_func_t ()

hb_bool_t
(*hb_font_get_glyph_origin_func_t) (hb_font_t *font,
                                    void *font_data,
                                    hb_codepoint_t glyph,
                                    hb_position_t *x,
                                    hb_position_t *y,
                                    void *user_data);

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the (X,Y) coordinates (in font units) of the origin for a glyph. Each coordinate must be returned in an hb_position_t output parameter.


hb_font_get_glyph_v_advance ()

hb_position_t
hb_font_get_glyph_v_advance (hb_font_t *font,
                             hb_codepoint_t glyph);

Fetches the advance for a glyph ID in the specified font, for vertical text segments.

Parameters

font

hb_font_t to work upon

 

glyph

The glyph ID to query

 

Returns

The advance of glyph within font

Since: 0.9.2


hb_font_get_glyph_v_advances ()

void
hb_font_get_glyph_v_advances (hb_font_t *font,
                              unsigned int count,
                              const hb_codepoint_t *first_glyph,
                              unsigned  glyph_stride,
                              hb_position_t *first_advance,
                              unsigned  advance_stride);

Fetches the advances for a sequence of glyph IDs in the specified font, for vertical text segments.

Parameters

font

hb_font_t to work upon

 

count

The number of glyph IDs in the sequence queried

 

first_glyph

The first glyph ID to query

 

glyph_stride

The stride between successive glyph IDs

 

first_advance

The first advance retrieved.

[out]

advance_stride

The stride between successive advances.

[out]

Since: 1.8.6


hb_font_get_glyph_v_origin ()

hb_bool_t
hb_font_get_glyph_v_origin (hb_font_t *font,
                            hb_codepoint_t glyph,
                            hb_position_t *x,
                            hb_position_t *y);

Fetches the (X,Y) coordinates of the origin for a glyph ID in the specified font, for vertical text segments.

Parameters

font

hb_font_t to work upon

 

glyph

The glyph ID to query

 

x

The X coordinate of the origin.

[out]

y

The Y coordinate of the origin.

[out]

Returns

true if data found, false otherwise

Since: 0.9.2


hb_font_get_nominal_glyph ()

hb_bool_t
hb_font_get_nominal_glyph (hb_font_t *font,
                           hb_codepoint_t unicode,
                           hb_codepoint_t *glyph);

Fetches the nominal glyph ID for a Unicode code point in the specified font.

This version of the function should not be used to fetch glyph IDs for code points modified by variation selectors. For variation-selector support, user hb_font_get_variation_glyph() or use hb_font_get_glyph().

Parameters

font

hb_font_t to work upon

 

unicode

The Unicode code point to query

 

glyph

The glyph ID retrieved.

[out]

Returns

true if data found, false otherwise

Since: 1.2.3


hb_font_get_nominal_glyph_func_t ()

hb_bool_t
(*hb_font_get_nominal_glyph_func_t) (hb_font_t *font,
                                     void *font_data,
                                     hb_codepoint_t unicode,
                                     hb_codepoint_t *glyph,
                                     void *user_data);

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the nominal glyph ID for a specified Unicode code point. Glyph IDs must be returned in a hb_codepoint_t output parameter.


hb_font_get_nominal_glyphs ()

unsigned int
hb_font_get_nominal_glyphs (hb_font_t *font,
                            unsigned int count,
                            const hb_codepoint_t *first_unicode,
                            unsigned int unicode_stride,
                            hb_codepoint_t *first_glyph,
                            unsigned int glyph_stride);

Parameters

font

a font.

 

Since: 2.6.3


hb_font_get_nominal_glyphs_func_t ()

unsigned int
(*hb_font_get_nominal_glyphs_func_t) (hb_font_t *font,
                                      void *font_data,
                                      unsigned int count,
                                      const hb_codepoint_t *first_unicode,
                                      unsigned int unicode_stride,
                                      hb_codepoint_t *first_glyph,
                                      unsigned int glyph_stride,
                                      void *user_data);

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the nominal glyph IDs for a sequence of Unicode code points. Glyph IDs must be returned in a hb_codepoint_t output parameter.


hb_font_get_parent ()

hb_font_t *
hb_font_get_parent (hb_font_t *font);

Fetches the parent font of font .

Parameters

font

hb_font_t to work upon

 

Returns

The parent font object.

[transfer none]

Since: 0.9.2


hb_font_get_ppem ()

void
hb_font_get_ppem (hb_font_t *font,
                  unsigned int *x_ppem,
                  unsigned int *y_ppem);

Fetches the horizontal and vertical points-per-em (ppem) of a font.

Parameters

font

hb_font_t to work upon

 

x_ppem

Horizontal ppem value.

[out]

y_ppem

Vertical ppem value.

[out]

Since: 0.9.2


hb_font_get_ptem ()

float
hb_font_get_ptem (hb_font_t *font);

Fetches the "point size" of a font. Used in CoreText to implement optical sizing.

Parameters

font

hb_font_t to work upon

 

Returns

Point size. A value of zero means "not set."

Since: 0.9.2


hb_font_get_scale ()

void
hb_font_get_scale (hb_font_t *font,
                   int *x_scale,
                   int *y_scale);

Fetches the horizontal and vertical scale of a font.

Parameters

font

hb_font_t to work upon

 

x_scale

Horizontal scale value.

[out]

y_scale

Vertical scale value.

[out]

Since: 0.9.2


hb_font_get_user_data ()

void *
hb_font_get_user_data (hb_font_t *font,
                       hb_user_data_key_t *key);

Fetches the user-data object associated with the specified key, attached to the specified font object.

[skip]

Parameters

font

hb_font_t to work upon

 

key

The user-data key to query

 

Returns

Pointer to the user data.

[transfer none]

Since: 0.9.2


hb_font_get_variation_glyph ()

hb_bool_t
hb_font_get_variation_glyph (hb_font_t *font,
                             hb_codepoint_t unicode,
                             hb_codepoint_t variation_selector,
                             hb_codepoint_t *glyph);

Fetches the glyph ID for a Unicode code point when followed by by the specified variation-selector code point, in the specified font.

Parameters

font

hb_font_t to work upon

 

unicode

The Unicode code point to query

 

variation_selector

The variation-selector code point to query

 

glyph

The glyph ID retrieved.

[out]

Returns

true if data found, false otherwise

Since: 1.2.3


hb_font_get_variation_glyph_func_t ()

hb_bool_t
(*hb_font_get_variation_glyph_func_t) (hb_font_t *font,
                                       void *font_data,
                                       hb_codepoint_t unicode,
                                       hb_codepoint_t variation_selector,
                                       hb_codepoint_t *glyph,
                                       void *user_data);

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the glyph ID for a specified Unicode code point followed by a specified Variation Selector code point. Glyph IDs must be returned in a hb_codepoint_t output parameter.


hb_font_get_var_coords_design ()

const float *
hb_font_get_var_coords_design (hb_font_t *font,
                               unsigned int *length);

Return value is valid as long as variation coordinates of the font are not modified.

Since: EXPERIMENTAL


hb_font_get_var_coords_normalized ()

const int *
hb_font_get_var_coords_normalized (hb_font_t *font,
                                   unsigned int *length);

Fetches the list of normalized variation coordinates currently set on a font.

Return value is valid as long as variation coordinates of the font are not modified.

Parameters

font

hb_font_t to work upon

 

length

Number of coordinates retrieved

 

Since: 1.4.2


hb_font_glyph_from_string ()

hb_bool_t
hb_font_glyph_from_string (hb_font_t *font,
                           const char *s,
                           int len,
                           hb_codepoint_t *glyph);

Fetches the glyph ID from font that matches the specified string. Strings of the format gidDDD or uniUUUU are parsed automatically.

Note: len == -1 means the string is null-terminated.

Parameters

font

hb_font_t to work upon

 

s

string to query.

[array length=len][element-type uint8_t]

len

The length of the string s

 

glyph

The glyph ID corresponding to the string requested.

[out]

Returns

true if data found, false otherwise

Since: 0.9.2


hb_font_glyph_to_string ()

void
hb_font_glyph_to_string (hb_font_t *font,
                         hb_codepoint_t glyph,
                         char *s,
                         unsigned int size);

Fetches the name of the specified glyph ID in font and returns it in string s .

If the glyph ID has no name in font , a string of the form gidDDD is generated, with DDD being the glyph ID.

Parameters

font

hb_font_t to work upon

 

glyph

The glyph ID to query

 

s

The string containing the glyph name.

[out][array length=size]

size

Length of string s

 

Since: 0.9.2


hb_font_is_immutable ()

hb_bool_t
hb_font_is_immutable (hb_font_t *font);

Tests whether a font object is immutable.

Parameters

font

hb_font_t to work upon

 

Returns

true if font is immutable, false otherwise

Since: 0.9.2


hb_font_make_immutable ()

void
hb_font_make_immutable (hb_font_t *font);

Makes font immutable.

Parameters

font

hb_font_t to work upon

 

Since: 0.9.2


hb_font_reference ()

hb_font_t *
hb_font_reference (hb_font_t *font);

Increases the reference count on the given font object.

[skip]

Parameters

font

hb_font_t to work upon

 

Returns

The font object.

[transfer full]

Since: 0.9.2


hb_font_set_face ()

void
hb_font_set_face (hb_font_t *font,
                  hb_face_t *face);

Sets face as the font-face value of font .

Parameters

font

hb_font_t to work upon

 

face

The hb_face_t to assign

 

Since: 1.4.3


hb_font_set_funcs ()

void
hb_font_set_funcs (hb_font_t *font,
                   hb_font_funcs_t *klass,
                   void *font_data,
                   hb_destroy_func_t destroy);

Replaces the font-functions structure attached to a font, updating the font's user-data with font -data and the destroy callback.

Parameters

font

hb_font_t to work upon

 

klass

.

[closure font_data][destroy destroy][scope notified]

font_data

Data to attach to font

 

destroy

The function to call when font_data is not needed anymore.

[optional]

Since: 0.9.2


hb_font_set_funcs_data ()

void
hb_font_set_funcs_data (hb_font_t *font,
                        void *font_data,
                        hb_destroy_func_t destroy);

Replaces the user data attached to a font, updating the font's destroy callback.

Parameters

font

hb_font_t to work upon

 

font_data

Data to attach to font .

[destroy destroy][scope notified]

destroy

The function to call when font_data is not needed anymore.

[optional]

Since: 0.9.2


hb_font_set_parent ()

void
hb_font_set_parent (hb_font_t *font,
                    hb_font_t *parent);

Sets the parent font of font .

Parameters

font

hb_font_t to work upon

 

parent

The parent font object to assign

 

Since: 1.0.5


hb_font_set_ppem ()

void
hb_font_set_ppem (hb_font_t *font,
                  unsigned int x_ppem,
                  unsigned int y_ppem);

Sets the horizontal and vertical pixels-per-em (ppem) of a font.

Parameters

font

hb_font_t to work upon

 

x_ppem

Horizontal ppem value to assign

 

y_ppem

Vertical ppem value to assign

 

Since: 0.9.2


hb_font_set_ptem ()

void
hb_font_set_ptem (hb_font_t *font,
                  float ptem);

Sets the "point size" of a font. Set to zero to unset. Used in CoreText to implement optical sizing.

Note: There are 72 points in an inch.

Parameters

font

hb_font_t to work upon

 

ptem

font size in points.

 

Since: 1.6.0


hb_font_set_scale ()

void
hb_font_set_scale (hb_font_t *font,
                   int x_scale,
                   int y_scale);

Sets the horizontal and vertical scale of a font.

Parameters

font

hb_font_t to work upon

 

x_scale

Horizontal scale value to assign

 

y_scale

Vertical scale value to assign

 

Since: 0.9.2


hb_font_set_user_data ()

hb_bool_t
hb_font_set_user_data (hb_font_t *font,
                       hb_user_data_key_t *key,
                       void *data,
                       hb_destroy_func_t destroy,
                       hb_bool_t replace);

Attaches a user-data key/data pair to the specified font object.

[skip]

Parameters

font

hb_font_t to work upon

 

key

The user-data key

 

data

A pointer to the user data

 

destroy

A callback to call when data is not needed anymore.

[optional]

replace

Whether to replace an existing data with the same key

 

Since: 0.9.2


hb_font_set_variations ()

void
hb_font_set_variations (hb_font_t *font,
                        const hb_variation_t *variations,
                        unsigned int variations_length);

Applies a list of font-variation settings to a font.

Parameters

font

hb_font_t to work upon

 

variations

Array of variation settings to apply.

[array length=variations_length]

variations_length

Number of variations to apply

 

Since: 1.4.2


hb_font_set_var_coords_design ()

void
hb_font_set_var_coords_design (hb_font_t *font,
                               const float *coords,
                               unsigned int coords_length);

Applies a list of variation coordinates (in design-space units) to a font.

Parameters

font

hb_font_t to work upon

 

coords

Array of variation coordinates to apply.

[array length=coords_length]

coords_length

Number of coordinates to apply

 

Since: 1.4.2


hb_font_set_var_coords_normalized ()

void
hb_font_set_var_coords_normalized (hb_font_t *font,
                                   const int *coords,
                                   unsigned int coords_length);

Applies a list of variation coordinates (in normalized units) to a font.

Note: Coordinates should be normalized to 2.14.

Parameters

font

hb_font_t to work upon

 

coords

Array of variation coordinates to apply.

[array length=coords_length]

coords_length

Number of coordinates to apply

 

Since: 1.4.2


hb_font_set_var_named_instance ()

void
hb_font_set_var_named_instance (hb_font_t *font,
                                unsigned  instance_index);

Sets design coords of a font from a named instance index.

Parameters

font

a font.

 

instance_index

named instance index.

 

Since: 2.6.0


hb_font_subtract_glyph_origin_for_direction ()

void
hb_font_subtract_glyph_origin_for_direction
                               (hb_font_t *font,
                                hb_codepoint_t glyph,
                                hb_direction_t direction,
                                hb_position_t *x,
                                hb_position_t *y);

Subtracts the origin coordinates from an (X,Y) point coordinate, in the specified glyph ID in the specified font.

Calls the appropriate direction-specific variant (horizontal or vertical) depending on the value of direction .

Parameters

font

hb_font_t to work upon

 

glyph

The glyph ID to query

 

direction

The direction of the text segment

 

x

Input = The original X coordinate Output = The X coordinate minus the X-coordinate of the origin.

[inout]

y

Input = The original Y coordinate Output = The Y coordinate minus the Y-coordinate of the origin.

[inout]

Since: 0.9.2


hb_reference_table_func_t ()

hb_blob_t *
(*hb_reference_table_func_t) (hb_face_t *face,
                              hb_tag_t tag,
                              void *user_data);

hb_font_funcs_set_font_h_extents_func ()

void
hb_font_funcs_set_font_h_extents_func (hb_font_funcs_t *ffuncs,
                                       hb_font_get_font_h_extents_func_t func,
                                       void *user_data,
                                       hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_font_h_extents_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 1.1.2


hb_font_funcs_set_font_v_extents_func ()

void
hb_font_funcs_set_font_v_extents_func (hb_font_funcs_t *ffuncs,
                                       hb_font_get_font_v_extents_func_t func,
                                       void *user_data,
                                       hb_destroy_func_t destroy);

Sets the implementation function for hb_font_get_font_v_extents_func_t.

Parameters

ffuncs

A font-function structure

 

func

The callback function to assign.

[closure user_data][destroy destroy][scope notified]

user_data

Data to pass to func

 

destroy

The function to call when user_data is not needed anymore.

[optional]

Since: 1.1.2


hb_font_get_extents_for_direction ()

void
hb_font_get_extents_for_direction (hb_font_t *font,
                                   hb_direction_t direction,
                                   hb_font_extents_t *extents);

Fetches the extents for a font in a text segment of the specified direction.

Calls the appropriate direction-specific variant (horizontal or vertical) depending on the value of direction .

Parameters

font

hb_font_t to work upon

 

direction

The direction of the text segment

 

extents

The hb_glyph_extents_t retrieved.

[out]

Since: 1.1.3


hb_font_get_font_extents_func_t ()

hb_bool_t
(*hb_font_get_font_extents_func_t) (hb_font_t *font,
                                    void *font_data,
                                    hb_font_extents_t *extents,
                                    void *user_data);

hb_font_get_h_extents ()

hb_bool_t
hb_font_get_h_extents (hb_font_t *font,
                       hb_font_extents_t *extents);

Fetches the extents for a specified font, in horizontal text segments.

Parameters

font

hb_font_t to work upon

 

extents

The font extents retrieved.

[out]

Returns

true if data found, false otherwise

Since: 1.1.3


hb_font_get_v_extents ()

hb_bool_t
hb_font_get_v_extents (hb_font_t *font,
                       hb_font_extents_t *extents);

Fetches the extents for a specified font, in vertical text segments.

Parameters

font

hb_font_t to work upon

 

extents

The font extents retrieved.

[out]

Returns

true if data found, false otherwise

Since: 1.1.3

Types and Values

hb_font_funcs_t

typedef struct hb_font_funcs_t hb_font_funcs_t;

Data type containing a set of virtual methods used for working on hb_font_t font objects.

HarfBuzz provides a lightweight default function for each of the methods in hb_font_funcs_t. Client programs can implement their own replacements for the individual font functions, as needed, and replace the default by calling the setter for a method.


hb_font_get_glyph_h_advance_func_t

typedef hb_font_get_glyph_advance_func_t hb_font_get_glyph_h_advance_func_t;

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the advance for a specified glyph, in horizontal-direction text segments. Advances must be returned in an hb_position_t output parameter.


hb_font_get_glyph_h_advances_func_t

typedef hb_font_get_glyph_advances_func_t hb_font_get_glyph_h_advances_func_t;

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the advances for a sequence of glyphs, in horizontal-direction text segments.


hb_font_get_glyph_h_kerning_func_t

typedef hb_font_get_glyph_kerning_func_t hb_font_get_glyph_h_kerning_func_t;

hb_font_get_glyph_h_origin_func_t

typedef hb_font_get_glyph_origin_func_t hb_font_get_glyph_h_origin_func_t;

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the (X,Y) coordinates (in font units) of the origin for a glyph, in horizontal-direction text segments. Each coordinate must be returned in an hb_position_t output parameter.


hb_font_get_glyph_v_advance_func_t

typedef hb_font_get_glyph_advance_func_t hb_font_get_glyph_v_advance_func_t;

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the advance for a specified glyph, in vertical-direction text segments. Advances must be returned in an hb_position_t output parameter.


hb_font_get_glyph_v_advances_func_t

typedef hb_font_get_glyph_advances_func_t hb_font_get_glyph_v_advances_func_t;

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the advances for a sequence of glyphs, in vertical-direction text segments.


hb_font_get_glyph_v_origin_func_t

typedef hb_font_get_glyph_origin_func_t hb_font_get_glyph_v_origin_func_t;

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the (X,Y) coordinates (in font units) of the origin for a glyph, in vertical-direction text segments. Each coordinate must be returned in an hb_position_t output parameter.


hb_font_t

typedef struct hb_font_t hb_font_t;

hb_font_get_font_h_extents_func_t

typedef hb_font_get_font_extents_func_t hb_font_get_font_h_extents_func_t;

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the extents for a font, in horizontal-direction text segments. Extents must be returned in an hb_glyph_extents output parameter.


hb_font_get_font_v_extents_func_t

typedef hb_font_get_font_extents_func_t hb_font_get_font_v_extents_func_t;

A virtual method for the hb_font_funcs_t of an hb_font_t object.

This method should retrieve the extents for a font, in vertical-direction text segments. Extents must be returned in an hb_glyph_extents output parameter.


hb_font_extents_t

typedef struct {
  hb_position_t ascender;
  hb_position_t descender;
  hb_position_t line_gap;
} hb_font_extents_t;

Font-wide extent values, measured in font units.

Note that typically ascender is positive and descender negative, in coordinate systems that grow up.

Members

hb_position_t ascender;

The height of typographic ascenders.

 

hb_position_t descender;

The depth of typographic descenders.

 

hb_position_t line_gap;

The suggested line-spacing gap.

 

hb_glyph_extents_t

typedef struct {
  hb_position_t x_bearing;
  hb_position_t y_bearing;
  hb_position_t width;
  hb_position_t height;
} hb_glyph_extents_t;

Glyph extent values, measured in font units.

Note that height is negative, in coordinate systems that grow up.

Members

hb_position_t x_bearing;

Distance from the x-origin to the left extremum of the glyph.

 

hb_position_t y_bearing;

Distance from the top extremum of the glyph to the y-origin.

 

hb_position_t width;

Distance from the left extremum of the glyph to the right extremum.

 

hb_position_t height;

Distance from the top extremum of the glyph to the bottom extremum.