/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-shape-plan.html (38412B)
hb-shape-plan: HarfBuzz Manual

hb-shape-plan

hb-shape-plan — Object representing a shaping plan

Types and Values

typedef hb_shape_plan_t

Includes

#include <hb.h>

Description

Shape plans are an internal mechanism. Each plan contains state describing how HarfBuzz will shape a particular text segment, based on the combination of segment properties and the capabilities in the font face in use.

Shape plans are not used for shaping directly, but can be queried to access certain information about how shaping will perform, given a set of specific input parameters (script, language, direction, features, etc.).

Most client programs will not need to deal with shape plans directly.

Functions

hb_shape_plan_create ()

hb_shape_plan_t *
hb_shape_plan_create (hb_face_t *face,
                      const hb_segment_properties_t *props,
                      const hb_feature_t *user_features,
                      unsigned int num_user_features,
                      const char * const *shaper_list);

Constructs a shaping plan for a combination of face , user_features , props , and shaper_list .

[Xconstructor]

Parameters

face

hb_face_t to use

 

props

The hb_segment_properties_t of the segment

 

user_features

The list of user-selected features.

[array length=num_user_features]

num_user_features

The number of user-selected features

 

shaper_list

List of shapers to try.

[array zero-terminated=1]

Returns

The shaping plan.

[transfer full]

Since: 0.9.7


hb_shape_plan_create_cached ()

hb_shape_plan_t *
hb_shape_plan_create_cached (hb_face_t *face,
                             const hb_segment_properties_t *props,
                             const hb_feature_t *user_features,
                             unsigned int num_user_features,
                             const char * const *shaper_list);

Creates a cached shaping plan suitable for reuse, for a combination of face , user_features , props , and shaper_list .

Parameters

face

hb_face_t to use

 

props

The hb_segment_properties_t of the segment

 

user_features

The list of user-selected features.

[array length=num_user_features]

num_user_features

The number of user-selected features

 

shaper_list

List of shapers to try.

[array zero-terminated=1]

Returns

The shaping plan.

[transfer full]

Since: 0.9.7


hb_shape_plan_create2 ()

hb_shape_plan_t *
hb_shape_plan_create2 (hb_face_t *face,
                       const hb_segment_properties_t *props,
                       const hb_feature_t *user_features,
                       unsigned int num_user_features,
                       const int *coords,
                       unsigned int num_coords,
                       const char * const *shaper_list);

The variable-font version of hb_shape_plan_create. Constructs a shaping plan for a combination of face , user_features , props , and shaper_list , plus the variation-space coordinates coords .

[Xconstructor]

Parameters

face

hb_face_t to use

 

props

The hb_segment_properties_t of the segment

 

user_features

The list of user-selected features.

[array length=num_user_features]

num_user_features

The number of user-selected features

 

coords

The list of variation-space coordinates.

[array length=num_coords]

num_coords

The number of variation-space coordinates

 

shaper_list

List of shapers to try.

[array zero-terminated=1]

Returns

The shaping plan.

[transfer full]

Since: 1.4.0


hb_shape_plan_create_cached2 ()

hb_shape_plan_t *
hb_shape_plan_create_cached2 (hb_face_t *face,
                              const hb_segment_properties_t *props,
                              const hb_feature_t *user_features,
                              unsigned int num_user_features,
                              const int *coords,
                              unsigned int num_coords,
                              const char * const *shaper_list);

The variable-font version of hb_shape_plan_create_cached. Creates a cached shaping plan suitable for reuse, for a combination of face , user_features , props , and shaper_list , plus the variation-space coordinates coords .

Parameters

face

hb_face_t to use

 

props

The hb_segment_properties_t of the segment

 

user_features

The list of user-selected features.

[array length=num_user_features]

num_user_features

The number of user-selected features

 

coords

The list of variation-space coordinates.

[array length=num_coords]

num_coords

The number of variation-space coordinates

 

shaper_list

List of shapers to try.

[array zero-terminated=1]

Returns

The shaping plan.

[transfer full]

Since: 1.4.0


hb_shape_plan_destroy ()

void
hb_shape_plan_destroy (hb_shape_plan_t *shape_plan);

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

[skip]

Parameters

shape_plan

A shaping plan

 

Since: 0.9.7


hb_shape_plan_execute ()

hb_bool_t
hb_shape_plan_execute (hb_shape_plan_t *shape_plan,
                       hb_font_t *font,
                       hb_buffer_t *buffer,
                       const hb_feature_t *features,
                       unsigned int num_features);

Executes the given shaping plan on the specified buffer, using the given font and features .

Parameters

shape_plan

A shaping plan

 

font

The hb_font_t to use

 

buffer

The hb_buffer_t to work upon

 

features

Features to enable.

[array length=num_features]

num_features

The number of features to enable

 

Since: 0.9.7


hb_shape_plan_get_empty ()

hb_shape_plan_t *
hb_shape_plan_get_empty (void);

Fetches the singleton empty shaping plan.

Returns

The empty shaping plan.

[transfer full]

Since: 0.9.7


hb_shape_plan_get_shaper ()

const char *
hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan);

Fetches the shaper from a given shaping plan.

Parameters

shape_plan

A shaping plan

 

Returns

The shaper.

[transfer none]

Since: 0.9.7


hb_shape_plan_get_user_data ()

void *
hb_shape_plan_get_user_data (hb_shape_plan_t *shape_plan,
                             hb_user_data_key_t *key);

Fetches the user data associated with the specified key, attached to the specified shaping plan.

[skip]

Parameters

shape_plan

A shaping plan

 

key

The user-data key to query

 

Returns

A pointer to the user data.

[transfer none]

Since: 0.9.7


hb_shape_plan_reference ()

hb_shape_plan_t *
hb_shape_plan_reference (hb_shape_plan_t *shape_plan);

Increases the reference count on the given shaping plan.

[skip]

Parameters

shape_plan

A shaping plan

 

Returns

shape_plan .

[transfer full]

Since: 0.9.7


hb_shape_plan_set_user_data ()

hb_bool_t
hb_shape_plan_set_user_data (hb_shape_plan_t *shape_plan,
                             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 given shaping plan.

[skip]

Parameters

shape_plan

A shaping plan

 

key

The user-data key to set

 

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

Types and Values

hb_shape_plan_t

typedef struct hb_shape_plan_t hb_shape_plan_t;

Data type for holding a shaping plan.

Shape plans contain information about how HarfBuzz will shape a particular text segment, based on the segment's properties and the capabilities in the font face in use.

Shape plans can be queried about how shaping will perform, given a set of specific input parameters (script, language, direction, features, etc.).