manpagez: man pages & more
html files: harfbuzz
Home | html | info | man

hb-common

hb-common — Common data types

Object Hierarchy

    GBoxed
    ├── hb_feature_t
    ╰── hb_user_data_key_t
    GEnum
    ├── hb_direction_t
    ╰── hb_script_t

Includes

#include <hb.h>

Description

Common data types used across HarfBuzz are defined here.

Functions

hb_tag_from_string ()

hb_tag_t
hb_tag_from_string (const char *str,
                    int len);

Parameters

str

.

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

Since: 0.9.2


hb_tag_to_string ()

void
hb_tag_to_string (hb_tag_t tag,
                  char *buf);

Parameters

buf

.

[out caller-allocates][array fixed-size=4][element-type uint8_t]

Since: 0.9.5


hb_direction_from_string ()

hb_direction_t
hb_direction_from_string (const char *str,
                          int len);

Parameters

str

.

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

Since: 0.9.2


hb_direction_to_string ()

const char *
hb_direction_to_string (hb_direction_t direction);

Returns

.

[transfer none]

Since: 0.9.2


hb_script_from_iso15924_tag ()

hb_script_t
hb_script_from_iso15924_tag (hb_tag_t tag);

Converts an ISO 15924 script tag to a corresponding hb_script_t.

Parameters

tag

an hb_tag_t representing an ISO 15924 tag.

 

Returns

An hb_script_t corresponding to the ISO 15924 tag.

Since: 0.9.2


hb_script_from_string ()

hb_script_t
hb_script_from_string (const char *str,
                       int len);

Converts a string str representing an ISO 15924 script tag to a corresponding hb_script_t. Shorthand for hb_tag_from_string() then hb_script_from_iso15924_tag().

Parameters

str

a string representing an ISO 15924 tag.

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

len

length of the str , or -1 if it is NULL-terminated.

 

Returns

An hb_script_t corresponding to the ISO 15924 tag.

Since: 0.9.2


hb_script_to_iso15924_tag ()

hb_tag_t
hb_script_to_iso15924_tag (hb_script_t script);

See hb_script_from_iso15924_tag().

Parameters

script

an hb_script_t to convert.

 

Returns

An hb_tag_t representing an ISO 15924 script tag.

Since: 0.9.2


hb_script_get_horizontal_direction ()

hb_direction_t
hb_script_get_horizontal_direction (hb_script_t script);

Since: 0.9.2


hb_language_from_string ()

hb_language_t
hb_language_from_string (const char *str,
                         int len);

Converts str representing a BCP 47 language tag to the corresponding hb_language_t.

Parameters

str

a string representing a BCP 47 language tag.

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

len

length of the str , or -1 if it is NULL-terminated.

 

Returns

The hb_language_t corresponding to the BCP 47 language tag.

[transfer none]

Since: 0.9.2


hb_language_to_string ()

const char *
hb_language_to_string (hb_language_t language);

See hb_language_from_string().

Parameters

language

an hb_language_t to convert.

 

Returns

A NULL-terminated string representing the language . Must not be freed by the caller.

[transfer none]

Since: 0.9.2


hb_language_get_default ()

hb_language_t
hb_language_get_default (void);

Get default language from current locale.

Note that the first time this function is called, it calls "setlocale (LC_CTYPE, nullptr)" to fetch current locale. The underlying setlocale function is, in many implementations, NOT threadsafe. To avoid problems, call this function once before multiple threads can call it. This function is only used from hb_buffer_guess_segment_properties() by HarfBuzz itself.

Returns

.

[transfer none]

Since: 0.9.2


hb_feature_from_string ()

hb_bool_t
hb_feature_from_string (const char *str,
                        int len,
                        hb_feature_t *feature);

Parses a string into a hb_feature_t.

The format for specifying feature strings follows. All valid CSS font-feature-settings values other than 'normal' and the global values are also accepted, though not documented below. CSS string escapes are not supported.

The range indices refer to the positions between Unicode characters. The position before the first character is always 0.

The format is Python-esque. Here is how it all works:

Syntax Value Start End  
Setting value:        
kern 1 0 Turn feature on
+kern 1 0 Turn feature on
-kern 0 0 Turn feature off
kern=0 0 0 Turn feature off
kern=1 1 0 Turn feature on
aalt=2 2 0 Choose 2nd alternate
Setting index:        
kern[] 1 0 Turn feature on
kern[:] 1 0 Turn feature on
kern[5:] 1 5 Turn feature on, partial
kern[:5] 1 0 5 Turn feature on, partial
kern[3:5] 1 3 5 Turn feature on, range
kern[3] 1 3 3+1 Turn feature on, single char
Mixing it all:        
aalt[3:5]=2 2 3 5 Turn 2nd alternate on for range

Parameters

str

a string to parse.

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

len

length of str , or -1 if string is NULL terminated

 

feature

the hb_feature_t to initialize with the parsed values.

[out]

Returns

true if str is successfully parsed, false otherwise.

Since: 0.9.5


hb_feature_to_string ()

void
hb_feature_to_string (hb_feature_t *feature,
                      char *buf,
                      unsigned int size);

Converts a hb_feature_t into a NULL-terminated string in the format understood by hb_feature_from_string(). The client in responsible for allocating big enough size for buf , 128 bytes is more than enough.

Parameters

feature

an hb_feature_t to convert

 

buf

output string.

[array length=size][out]

size

the allocated size of buf

 

Since: 0.9.5


hb_variation_from_string ()

hb_bool_t
hb_variation_from_string (const char *str,
                          int len,
                          hb_variation_t *variation);

Since: 1.4.2


hb_variation_to_string ()

void
hb_variation_to_string (hb_variation_t *variation,
                        char *buf,
                        unsigned int size);

Since: 1.4.2


hb_destroy_func_t ()

void
(*hb_destroy_func_t) (void *user_data);

HB_TAG()

#define HB_TAG(c1,c2,c3,c4) ((hb_tag_t)((((uint32_t)(c1)&0xFF)<<24)|(((uint32_t)(c2)&0xFF)<<16)|(((uint32_t)(c3)&0xFF)<<8)|((uint32_t)(c4)&0xFF)))

HB_UNTAG()

#define HB_UNTAG(tag)   (uint8_t)(((tag)>>24)&0xFF), (uint8_t)(((tag)>>16)&0xFF), (uint8_t)(((tag)>>8)&0xFF), (uint8_t)((tag)&0xFF)

HB_DIRECTION_REVERSE()

#define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)) ^ 1))

HB_DIRECTION_IS_BACKWARD()

#define HB_DIRECTION_IS_BACKWARD(dir) ((((unsigned int) (dir)) & ~2U) == 5)

HB_DIRECTION_IS_FORWARD()

#define HB_DIRECTION_IS_FORWARD(dir) ((((unsigned int) (dir)) & ~2U) == 4)

HB_DIRECTION_IS_HORIZONTAL()

#define HB_DIRECTION_IS_HORIZONTAL(dir) ((((unsigned int) (dir)) & ~1U) == 4)

HB_DIRECTION_IS_VALID()

#define HB_DIRECTION_IS_VALID(dir) ((((unsigned int) (dir)) & ~3U) == 4)

HB_DIRECTION_IS_VERTICAL()

#define HB_DIRECTION_IS_VERTICAL(dir) ((((unsigned int) (dir)) & ~1U) == 6)

Types and Values

hb_bool_t

typedef int hb_bool_t;

hb_codepoint_t

typedef uint32_t hb_codepoint_t;

enum hb_direction_t

Members

HB_DIRECTION_INVALID

Initial, unset direction.

 

HB_DIRECTION_LTR

Text is set horizontally from left to right.

 

HB_DIRECTION_RTL

Text is set horizontally from right to left.

 

HB_DIRECTION_TTB

Text is set vertically from top to bottom.

 

HB_DIRECTION_BTT

Text is set vertically from bottom to top.

 

hb_language_t

typedef const struct hb_language_impl_t *hb_language_t;

hb_feature_t

typedef struct {
  hb_tag_t      tag;
  uint32_t      value;
  unsigned int  start;
  unsigned int  end;
} hb_feature_t;

hb_variation_t

typedef struct {
  hb_tag_t tag;
  float    value;
} hb_variation_t;

Since: 1.4.2


hb_mask_t

typedef uint32_t hb_mask_t;

hb_position_t

typedef int32_t hb_position_t;

hb_tag_t

typedef uint32_t hb_tag_t;

enum hb_script_t

Members

HB_SCRIPT_BASSA_VAH

   

HB_SCRIPT_ADLAM

   

HB_SCRIPT_MASARAM_GONDI

   

HB_SCRIPT_DOGRA

   

HB_SCRIPT_ELYMAIC

   

HB_SCRIPT_INVALID

   

_HB_SCRIPT_MAX_VALUE

   

_HB_SCRIPT_MAX_VALUE_SIGNED

   

hb_user_data_key_t

typedef struct {
} hb_user_data_key_t;

hb_var_int_t


HB_TAG_NONE

#define HB_TAG_NONE HB_TAG(0,0,0,0)

HB_TAG_MAX

#define HB_TAG_MAX HB_TAG(0xff,0xff,0xff,0xff)

HB_TAG_MAX_SIGNED

#define HB_TAG_MAX_SIGNED HB_TAG(0x7f,0xff,0xff,0xff)

HB_LANGUAGE_INVALID

#define HB_LANGUAGE_INVALID ((hb_language_t) 0)

HB_FEATURE_GLOBAL_END

#define HB_FEATURE_GLOBAL_END ((unsigned int) -1)

Since: 2.0.0


HB_FEATURE_GLOBAL_START

#define HB_FEATURE_GLOBAL_START 0

Since: 2.0.0

© manpagez.com 2000-2024
Individual documents may contain additional copyright information.