29#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR)
30#error "Include <hb.h> instead."
37#define HB_EXTERN extern
42# define HB_BEGIN_DECLS extern "C" {
43# define HB_END_DECLS }
45# define HB_BEGIN_DECLS
51# include <sys/inttypes.h>
52#elif defined (_MSC_VER) && _MSC_VER < 1600
55typedef unsigned __int8 uint8_t;
56typedef __int16 int16_t;
57typedef unsigned __int16 uint16_t;
58typedef __int32 int32_t;
59typedef unsigned __int32 uint32_t;
60typedef __int64 int64_t;
61typedef unsigned __int64 uint64_t;
62#elif defined (_MSC_VER) && _MSC_VER < 1800
69#if defined(__GNUC__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
70#define HB_DEPRECATED __attribute__((__deprecated__))
71#elif defined(_MSC_VER) && (_MSC_VER >= 1300)
72#define HB_DEPRECATED __declspec(deprecated)
77#if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
78#define HB_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead")))
79#elif defined(_MSC_FULL_VER) && (_MSC_FULL_VER > 140050320)
80#define HB_DEPRECATED_FOR(f) __declspec(deprecated("is deprecated. Use '" #f "' instead"))
82#define HB_DEPRECATED_FOR(f) HB_DEPRECATED
112#define HB_CODEPOINT_INVALID ((hb_codepoint_t) -1)
176#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)))
187#define HB_UNTAG(tag) (uint8_t)(((tag)>>24)&0xFF), (uint8_t)(((tag)>>16)&0xFF), (uint8_t)(((tag)>>8)&0xFF), (uint8_t)((tag)&0xFF)
194#define HB_TAG_NONE HB_TAG(0,0,0,0)
202#define HB_TAG_MAX HB_TAG(0xff,0xff,0xff,0xff)
210#define HB_TAG_MAX_SIGNED HB_TAG(0x7f,0xff,0xff,0xff)
258#define HB_DIRECTION_IS_VALID(dir) ((((unsigned int) (dir)) & ~3U) == 4)
268#define HB_DIRECTION_IS_HORIZONTAL(dir) ((((unsigned int) (dir)) & ~1U) == 4)
277#define HB_DIRECTION_IS_VERTICAL(dir) ((((unsigned int) (dir)) & ~1U) == 6)
286#define HB_DIRECTION_IS_FORWARD(dir) ((((unsigned int) (dir)) & ~2U) == 4)
295#define HB_DIRECTION_IS_BACKWARD(dir) ((((unsigned int) (dir)) & ~2U) == 5)
304#define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)) ^ 1))
331#define HB_LANGUAGE_INVALID ((hb_language_t) 0)
820#define HB_FEATURE_GLOBAL_START 0
830#define HB_FEATURE_GLOBAL_END ((unsigned int) -1)
860 char *buf,
unsigned int size);
884 char *buf,
unsigned int size);
907#define HB_COLOR(b,g,r,a) ((hb_color_t) HB_TAG ((b),(g),(r),(a)))
911#define hb_color_get_alpha(color) ((color) & 0xFF)
915#define hb_color_get_red(color) (((color) >> 8) & 0xFF)
919#define hb_color_get_green(color) (((color) >> 16) & 0xFF)
923#define hb_color_get_blue(color) (((color) >> 24) & 0xFF)
HB_EXTERN hb_script_t hb_script_from_iso15924_tag(hb_tag_t tag)
HB_EXTERN hb_language_t hb_language_from_string(const char *str, int len)
struct hb_glyph_extents_t hb_glyph_extents_t
void(* hb_destroy_func_t)(void *user_data)
const struct hb_language_impl_t * hb_language_t
#define hb_color_get_alpha(color)
HB_EXTERN hb_tag_t hb_script_to_iso15924_tag(hb_script_t script)
HB_BEGIN_DECLS typedef int hb_bool_t
struct hb_feature_t hb_feature_t
HB_EXTERN hb_bool_t hb_variation_from_string(const char *str, int len, hb_variation_t *variation)
#define HB_TAG(c1, c2, c3, c4)
struct hb_font_t hb_font_t
#define hb_color_get_red(color)
#define hb_color_get_green(color)
HB_EXTERN void hb_variation_to_string(hb_variation_t *variation, char *buf, unsigned int size)
HB_EXTERN hb_direction_t hb_direction_from_string(const char *str, int len)
#define HB_TAG_MAX_SIGNED
struct hb_variation_t hb_variation_t
HB_EXTERN const char * hb_direction_to_string(hb_direction_t direction)
struct hb_user_data_key_t hb_user_data_key_t
HB_EXTERN hb_script_t hb_script_from_string(const char *str, int len)
@ HB_SCRIPT_MEROITIC_CURSIVE
@ HB_SCRIPT_ZANABAZAR_SQUARE
@ HB_SCRIPT_CAUCASIAN_ALBANIAN
@ HB_SCRIPT_INSCRIPTIONAL_PARTHIAN
@ HB_SCRIPT_OLD_NORTH_ARABIAN
@ HB_SCRIPT_TULU_TIGALARI
@ HB_SCRIPT_MENDE_KIKAKUI
@ HB_SCRIPT_IMPERIAL_ARAMAIC
@ HB_SCRIPT_GUNJALA_GONDI
@ HB_SCRIPT_MEROITIC_HIEROGLYPHS
@ HB_SCRIPT_PSALTER_PAHLAVI
@ HB_SCRIPT_OLD_HUNGARIAN
@ HB_SCRIPT_NYIAKENG_PUACHUE_HMONG
@ HB_SCRIPT_CANADIAN_SYLLABICS
@ HB_SCRIPT_EGYPTIAN_HIEROGLYPHS
@ HB_SCRIPT_KHITAN_SMALL_SCRIPT
@ HB_SCRIPT_OLD_SOUTH_ARABIAN
@ HB_SCRIPT_HANIFI_ROHINGYA
@ HB_SCRIPT_ANATOLIAN_HIEROGLYPHS
@ _HB_SCRIPT_MAX_VALUE_SIGNED
@ HB_SCRIPT_INSCRIPTIONAL_PAHLAVI
@ HB_SCRIPT_MASARAM_GONDI
#define hb_color_get_blue(color)
HB_EXTERN hb_direction_t hb_script_get_horizontal_direction(hb_script_t script)
HB_EXTERN const char * hb_language_to_string(hb_language_t language)
union _hb_var_int_t hb_var_int_t
HB_EXTERN hb_bool_t hb_feature_from_string(const char *str, int len, hb_feature_t *feature)
HB_EXTERN void hb_tag_to_string(hb_tag_t tag, char *buf)
HB_EXTERN hb_tag_t hb_tag_from_string(const char *str, int len)
HB_EXTERN hb_bool_t hb_language_matches(hb_language_t language, hb_language_t specific)
HB_EXTERN hb_language_t hb_language_get_default(void)
HB_EXTERN void hb_feature_to_string(hb_feature_t *feature, char *buf, unsigned int size)
union _hb_var_num_t hb_var_num_t