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. |