| Top |  |  |  |  | 
| typedef | hb_font_funcs_t | 
| typedef | hb_font_get_glyph_h_advance_func_t | 
| typedef | hb_font_get_glyph_h_advances_func_t | 
| typedef | hb_font_get_glyph_h_kerning_func_t | 
| typedef | hb_font_get_glyph_h_origin_func_t | 
| typedef | hb_font_get_glyph_v_advance_func_t | 
| typedef | hb_font_get_glyph_v_advances_func_t | 
| typedef | hb_font_get_glyph_v_origin_func_t | 
| typedef | hb_font_t | 
| typedef | hb_font_get_font_h_extents_func_t | 
| typedef | hb_font_get_font_v_extents_func_t | 
| hb_font_extents_t | |
| hb_glyph_extents_t | 
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.
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
.
| 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_t *
hb_font_create (hb_face_t *face);
Constructs a new font object from the specified face.
[Xconstructor]
Since: 0.9.2
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.
Since: 0.9.2
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]
Since: 0.9.2
hb_font_funcs_t *
hb_font_funcs_create (void);
Creates a new hb_font_funcs_t structure of font functions.
[Xconstructor]
Since: 0.9.2
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]
Since: 0.9.2
hb_font_funcs_t *
hb_font_funcs_get_empty (void);
Fetches an empty font-functions structure.
Since: 0.9.2
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]
Since: 0.9.2
hb_bool_t
hb_font_funcs_is_immutable (hb_font_funcs_t *ffuncs);
Tests whether a font-functions structure is immutable.
Since: 0.9.2
void
hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs);
Makes a font-functions structure immutable.
Since: 0.9.2
hb_font_funcs_t *
hb_font_funcs_reference (hb_font_funcs_t *ffuncs);
Increases the reference count on a font-functions structure.
[skip]
Since: 0.9.2
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 0.9.2
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 0.9.2
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 0.9.2
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 0.9.2
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 1.8.6
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);
Since: 0.9.2
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 0.9.2
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 0.9.2
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 0.9.2
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 1.8.6
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 0.9.2
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 1.2.3
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 2.0.0
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]
| 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  | [optional] | 
| replace | Whether to replace an existing data with the same key | 
Since: 0.9.2
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 1.2.3
hb_font_t *
hb_font_get_empty (void);
Fetches the empty font object.
Since: 0.9.2
hb_face_t *
hb_font_get_face (hb_font_t *font);
Fetches the face associated with the specified font object.
Since: 0.9.2
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().
| 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] | 
Since: 0.9.2
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
.
| 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_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.
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
.
| 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
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_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.
| 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] | 
Since: 0.9.2
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
.
| 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] | 
Since: 0.9.2
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_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.
| font | hb_font_t to work upon | |
| glyph | The glyph ID to query | |
| extents | The hb_glyph_extents_t retrieved. | [out] | 
Since: 0.9.2
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
.
| 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] | 
Since: 0.9.2
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_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
.
len == -1 means the name string is null-terminated.| 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] | 
Since: 0.9.2
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_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.
Since: 0.9.2
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.
| 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_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.
| 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 | 
Since: 0.9.2
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.
| 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] | 
Since: 0.9.2
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
.
| 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_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_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
.
| 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 | 
Since: 0.9.2
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.
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
.
| 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_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_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.
Since: 0.9.2
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.
| 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_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.
| 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] | 
Since: 0.9.2
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().
| font | hb_font_t to work upon | |
| unicode | The Unicode code point to query | |
| glyph | The glyph ID retrieved. | [out] | 
Since: 1.2.3
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.
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);
Since: 2.6.3
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_t *
hb_font_get_parent (hb_font_t *font);
Fetches the parent font of font
.
Since: 0.9.2
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.
| font | hb_font_t to work upon | |
| x_ppem | Horizontal ppem value. | [out] | 
| y_ppem | Vertical ppem value. | [out] | 
Since: 0.9.2
float
hb_font_get_ptem (hb_font_t *font);
Fetches the "point size" of a font. Used in CoreText to implement optical sizing.
Since: 0.9.2
void hb_font_get_scale (hb_font_t *font,int *x_scale,int *y_scale);
Fetches the horizontal and vertical scale of a font.
| font | hb_font_t to work upon | |
| x_scale | Horizontal scale value. | [out] | 
| y_scale | Vertical scale value. | [out] | 
Since: 0.9.2
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]
Since: 0.9.2
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.
| 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] | 
Since: 1.2.3
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.
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
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.
Since: 1.4.2
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.
len == -1 means the string is null-terminated.| font | hb_font_t to work upon | |
| s | string to query. | [array length=len][element-type uint8_t] | 
| len | The length of the string  | |
| glyph | The glyph ID corresponding to the string requested. | [out] | 
Since: 0.9.2
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.
| 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  | 
Since: 0.9.2
hb_bool_t
hb_font_is_immutable (hb_font_t *font);
Tests whether a font object is immutable.
Since: 0.9.2
void
hb_font_make_immutable (hb_font_t *font);
Makes font
 immutable.
Since: 0.9.2
hb_font_t *
hb_font_reference (hb_font_t *font);
Increases the reference count on the given font object.
[skip]
Since: 0.9.2
void hb_font_set_face (hb_font_t *font,hb_face_t *face);
Sets face
 as the font-face value of font
.
Since: 1.4.3
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.
| font | hb_font_t to work upon | |
| klass | . | [closure font_data][destroy destroy][scope notified] | 
| font_data | Data to attach to  | |
| destroy | The function to call when  | [optional] | 
Since: 0.9.2
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.
| font | hb_font_t to work upon | |
| font_data | Data to attach to  | [destroy destroy][scope notified] | 
| destroy | The function to call when  | [optional] | 
Since: 0.9.2
void hb_font_set_parent (hb_font_t *font,hb_font_t *parent);
Sets the parent font of font
.
Since: 1.0.5
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.
| 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
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.
Since: 1.6.0
void hb_font_set_scale (hb_font_t *font,int x_scale,int y_scale);
Sets the horizontal and vertical scale of a font.
| 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_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]
| 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  | [optional] | 
| replace | Whether to replace an existing data with the same key | 
Since: 0.9.2
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.
| 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
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.
| 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
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.
| 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
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.
Since: 2.6.0
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
.
| 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_blob_t * (*hb_reference_table_func_t) (hb_face_t *face,hb_tag_t tag,void *user_data);
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 1.1.2
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.
| ffuncs | A font-function structure | |
| func | The callback function to assign. | [closure user_data][destroy destroy][scope notified] | 
| user_data | Data to pass to  | |
| destroy | The function to call when  | [optional] | 
Since: 1.1.2
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
.
| 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_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_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.
Since: 1.1.3
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.
Since: 1.1.3
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.
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.
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.
typedef hb_font_get_glyph_kerning_func_t hb_font_get_glyph_h_kerning_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.
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.
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.
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.
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.
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.
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.
| hb_position_t  | The height of typographic ascenders. | |
| hb_position_t  | The depth of typographic descenders. | |
| hb_position_t  | The suggested line-spacing gap. | 
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.
| hb_position_t  | Distance from the x-origin to the left extremum of the glyph. | |
| hb_position_t  | Distance from the top extremum of the glyph to the y-origin. | |
| hb_position_t  | Distance from the left extremum of the glyph to the right extremum. | |
| hb_position_t  | Distance from the top extremum of the glyph to the bottom extremum. |