/usr/share/gtk-doc/html/harfbuzz
NameSizeModeActions
a-clustering-example-for-levels-0-and-1.html53070644editdlrm
aat-shaping.html23590644editdlrm
adding-text-to-the-buffer.html58000644editdlrm
annotation-glossary.html56440644editdlrm
api-index-0-9-2.html444470644editdlrm
api-index-0-9-5.html33390644editdlrm
api-index-0-9-7.html123060644editdlrm
api-index-0-9-8.html20880644editdlrm
api-index-0-9-10.html32000644editdlrm
api-index-0-9-11.html20700644editdlrm
api-index-0-9-20.html23030644editdlrm
api-index-0-9-22.html21150644editdlrm
api-index-0-9-28.html20620644editdlrm
api-index-0-9-30.html25250644editdlrm
api-index-0-9-31.html29320644editdlrm
api-index-0-9-38.html38220644editdlrm
api-index-0-9-39.html20580644editdlrm
api-index-0-9-41.html20670644editdlrm
api-index-0-9-42.html25870644editdlrm
api-index-1-0-5.html27370644editdlrm
api-index-1-1-2.html23740644editdlrm
api-index-1-1-3.html29570644editdlrm
api-index-1-2-3.html28720644editdlrm
api-index-1-3-3.html55360644editdlrm
api-index-1-4-0.html23470644editdlrm
api-index-1-4-2.html53690644editdlrm
api-index-1-4-3.html20290644editdlrm
api-index-1-5-0.html29000644editdlrm
api-index-1-6-0.html22660644editdlrm
api-index-1-7-5.html17010644editdlrm
api-index-1-7-7.html55500644editdlrm
api-index-1-8-0.html26620644editdlrm
api-index-1-8-1.html24850644editdlrm
api-index-1-8-5.html20880644editdlrm
api-index-1-8-6.html31870644editdlrm
api-index-1-9-0.html34600644editdlrm
api-index-2-0-0.html59260644editdlrm
api-index-2-1-0.html80690644editdlrm
api-index-2-2-0.html53260644editdlrm
api-index-2-3-0.html26500644editdlrm
api-index-2-4-0.html20870644editdlrm
api-index-2-5-0.html21080644editdlrm
api-index-2-6-0.html52400644editdlrm
api-index-2-7-3.html28240644editdlrm
api-index-full.html1403400644editdlrm
buffers-language-script-and-direction.html49510644editdlrm
building.html153460644editdlrm
ch01s03.html44950644editdlrm
ch03s02.html60780644editdlrm
ch03s03.html45800644editdlrm
ch12.html35570644editdlrm
ch13.html30780644editdlrm
ch14.html18760644editdlrm
ch15.html30440644editdlrm
clusters.html64990644editdlrm
complex-scripts.html30010644editdlrm
customizing-unicode-functions.html64000644editdlrm
deprecated-api-index.html62230644editdlrm
fonts-and-faces-custom-functions.html73980644editdlrm
fonts-and-faces-native-opentype.html51960644editdlrm
fonts-and-faces-variable.html53040644editdlrm
fonts-and-faces.html76710644editdlrm
getting-started.html50430644editdlrm
graphite-shaping.html23080644editdlrm
harfbuzz-hb-aat-layout.html1393450644editdlrm
harfbuzz-hb-blob.html359020644editdlrm
harfbuzz-hb-buffer.html1954910644editdlrm
harfbuzz-hb-common.html653230644editdlrm
harfbuzz-hb-coretext.html113710644editdlrm
harfbuzz-hb-deprecated.html253280644editdlrm
harfbuzz-hb-directwrite.html61550644editdlrm
harfbuzz-hb-face.html521000644editdlrm
harfbuzz-hb-font.html2626960644editdlrm
harfbuzz-hb-ft.html287190644editdlrm
harfbuzz-hb-gdi.html43100644editdlrm
harfbuzz-hb-glib.html100860644editdlrm
harfbuzz-hb-gobject.html29530644editdlrm
harfbuzz-hb-graphite2.html58280644editdlrm
harfbuzz-hb-icu.html79690644editdlrm
harfbuzz-hb-map.html291880644editdlrm
harfbuzz-hb-ot-color.html399490644editdlrm
harfbuzz-hb-ot-font.html46300644editdlrm
harfbuzz-hb-ot-layout.html1450880644editdlrm
harfbuzz-hb-ot-math.html528860644editdlrm
harfbuzz-hb-ot-meta.html102860644editdlrm
harfbuzz-hb-ot-metrics.html179270644editdlrm
harfbuzz-hb-ot-name.html196030644editdlrm
harfbuzz-hb-ot-shape.html62570644editdlrm
harfbuzz-hb-ot-var.html367080644editdlrm
harfbuzz-hb-set.html594230644editdlrm
harfbuzz-hb-shape-plan.html384120644editdlrm
harfbuzz-hb-shape.html117020644editdlrm
harfbuzz-hb-unicode.html1067010644editdlrm
harfbuzz-hb-uniscribe.html60990644editdlrm
harfbuzz-hb-version.html104150644editdlrm
harfbuzz.devhelp21794570644editdlrm
HarfBuzz.png62540644editdlrm
HarfBuzz.svg67450644editdlrm
home.png1690644editdlrm
index.html195660644editdlrm
install-harfbuzz.html37870644editdlrm
integration-coretext.html64830644editdlrm
integration-freetype.html92930644editdlrm
integration-icu.html41860644editdlrm
integration-python.html31810644editdlrm
integration-uniscribe.html67250644editdlrm
integration.html99360644editdlrm
left-insensitive.png3340644editdlrm
left.png1850644editdlrm
level-2.html70090644editdlrm
object-model-blobs.html29020644editdlrm
object-model-lifecycle.html49780644editdlrm
object-model-object-types.html41110644editdlrm
object-model-user-data.html32550644editdlrm
object-model.html39780644editdlrm
opentype-shaping-models.html44630644editdlrm
pt01.html94170644editdlrm
pt02.html126740644editdlrm
reordering-in-levels-0-and-1.html31020644editdlrm
right-insensitive.png2330644editdlrm
right.png1840644editdlrm
setting-buffer-properties.html78300644editdlrm
shaping-and-shape-plans.html81960644editdlrm
shaping-concepts.html38690644editdlrm
shaping-opentype-features.html66630644editdlrm
shaping-operations.html45370644editdlrm
shaping-plans-and-caching.html46410644editdlrm
shaping-shaper-selection.html34060644editdlrm
style.css116060644editdlrm
text-runs.html25330644editdlrm
the-distinction-between-levels-0-and-1.html48640644editdlrm
unicode-character-categories.html42040644editdlrm
up-insensitive.png2880644editdlrm
up.png1860644editdlrm
utilities-common-types-apis.html43650644editdlrm
utilities-ucdn.html26320644editdlrm
utilities.html92740644editdlrm
what-harfbuzz-doesnt-do.html55350644editdlrm
what-is-harfbuzz.html55030644editdlrm
why-do-i-need-a-shaping-engine.html81240644editdlrm
why-is-it-called-harfbuzz.html21710644editdlrm
working-with-harfbuzz-clusters.html100830644editdlrm
Edit: /usr/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ft.html (28719B)
hb-ft: HarfBuzz Manual

hb-ft

hb-ft — FreeType integration

Includes

#include <hb-ft.h>

Description

Functions for using HarfBuzz with the FreeType library.

HarfBuzz supports using FreeType to provide face and font data.

Note that FreeType is not thread-safe, therefore these functions are not thread-safe either.

Functions

hb_ft_face_create ()

hb_face_t *
hb_ft_face_create (FT_Face ft_face,
                   hb_destroy_func_t destroy);

Creates an hb_face_t face object from the specified FT_Face.

This variant of the function does not provide any life-cycle management.

Most client programs should use hb_ft_face_create_referenced() (or, perhaps, hb_ft_face_create_cached()) instead.

If you know you have valid reasons not to use hb_ft_face_create_referenced(), then it is the client program's responsibility to destroy ft_face after the hb_face_t face object has been destroyed.

Parameters

ft_face

FT_Face to work upon.

[destroy destroy][scope notified]

destroy

A callback to call when the face object is not needed anymore.

[optional]

Returns

the new hb_face_t face object.

[transfer full]

Since: 0.9.2


hb_ft_face_create_cached ()

hb_face_t *
hb_ft_face_create_cached (FT_Face ft_face);

Creates an hb_face_t face object from the specified FT_Face.

This variant of the function caches the newly created hb_face_t face object, using the generic pointer of ft_face . Subsequent function calls that are passed the same ft_face parameter will have the same hb_face_t returned to them, and that hb_face_t will be correctly reference counted.

However, client programs are still responsible for destroying ft_face after the last hb_face_t face object has been destroyed.

Parameters

ft_face

FT_Face to work upon

 

Returns

the new hb_face_t face object.

[transfer full]

Since: 0.9.2


hb_ft_face_create_referenced ()

hb_face_t *
hb_ft_face_create_referenced (FT_Face ft_face);

Creates an hb_face_t face object from the specified FT_Face.

This is the preferred variant of the hb_ft_face_create* function family, because it calls FT_Reference_Face() on ft_face , ensuring that ft_face remains alive as long as the resulting hb_face_t face object remains alive. Also calls FT_Done_Face() when the hb_face_t face object is destroyed.

Use this version unless you know you have good reasons not to.

Parameters

ft_face

FT_Face to work upon

 

Returns

the new hb_face_t face object.

[transfer full]

Since: 0.9.38


hb_ft_font_create ()

hb_font_t *
hb_ft_font_create (FT_Face ft_face,
                   hb_destroy_func_t destroy);

Creates an hb_font_t font object from the specified FT_Face.

Note: You must set the face size on ft_face before calling hb_ft_font_create() on it. Otherwise, HarfBuzz will not pick up the face size.

This variant of the function does not provide any life-cycle management.

Most client programs should use hb_ft_font_create_referenced() instead.

If you know you have valid reasons not to use hb_ft_font_create_referenced(), then it is the client program's responsibility to destroy ft_face after the hb_font_t font object has been destroyed.

HarfBuzz will use the destroy callback on the hb_font_t font object if it is supplied when you use this function. However, even if destroy is provided, it is the client program's responsibility to destroy ft_face , and it is the client program's responsibility to ensure that ft_face is destroyed only after the hb_font_t font object has been destroyed.

Parameters

ft_face

FT_Face to work upon.

[destroy destroy][scope notified]

destroy

A callback to call when the font object is not needed anymore.

[optional]

Returns

the new hb_font_t font object.

[transfer full]

Since: 0.9.2


hb_ft_font_create_referenced ()

hb_font_t *
hb_ft_font_create_referenced (FT_Face ft_face);

Creates an hb_font_t font object from the specified FT_Face.

Note: You must set the face size on ft_face before calling hb_ft_font_create_references() on it. Otherwise, HarfBuzz will not pick up the face size.

This is the preferred variant of the hb_ft_font_create* function family, because it calls FT_Reference_Face() on ft_face , ensuring that ft_face remains alive as long as the resulting hb_font_t font object remains alive.

Use this version unless you know you have good reasons not to.

Parameters

ft_face

FT_Face to work upon

 

Returns

the new hb_font_t font object.

[transfer full]

Since: 0.9.38


hb_ft_font_changed ()

void
hb_ft_font_changed (hb_font_t *font);

hb_ft_font_get_face ()

FT_Face
hb_ft_font_get_face (hb_font_t *font);

hb_ft_font_lock_face ()

FT_Face
hb_ft_font_lock_face (hb_font_t *font);

Since: 2.6.5


hb_ft_font_unlock_face ()

void
hb_ft_font_unlock_face (hb_font_t *font);

Since: 2.6.5


hb_ft_font_set_load_flags ()

void
hb_ft_font_set_load_flags (hb_font_t *font,
                           int load_flags);

Sets the FT_Load_Glyph load flags for the specified hb_font_t.

For more information, see https://www.freetype.org/freetype2/docs/reference/ft2-base_interface.htmlft_load_xxx

Parameters

font

hb_font_t to work upon

 

load_flags

The FreeType load flags to set

 

Since: 1.0.5


hb_ft_font_get_load_flags ()

int
hb_ft_font_get_load_flags (hb_font_t *font);

Fetches the FT_Load_Glyph load flags of the specified hb_font_t.

For more information, see https://www.freetype.org/freetype2/docs/reference/ft2-base_interface.htmlft_load_xxx

Parameters

font

hb_font_t to work upon

 

Returns

FT_Load_Glyph flags found

Since: 1.0.5


hb_ft_font_set_funcs ()

void
hb_ft_font_set_funcs (hb_font_t *font);

Configures the font-functions structure of the specified hb_font_t font object to use FreeType font functions.

In particular, you can use this function to configure an existing hb_face_t face object for use with FreeType font functions even if that hb_face_t face object was initially created with hb_face_create(), and therefore was not initially configured to use FreeType font functions.

An hb_face_t face object created with hb_ft_face_create() is preconfigured for FreeType font functions and does not require this function to be used.

Note: Internally, this function creates an FT_Face.

Parameters

font

hb_font_t to work upon

 

Since: 1.0.5