hb-ot-layout.h revision 0ead481a5a8623103565fd7d924666e7342278dd
164aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod/* 26c78683c042250a7b5a6fc6ebae4717b03fadf9eBehdad Esfahbod * Copyright (C) 2007,2008,2009 Red Hat, Inc. 364aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * 464aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * This is part of HarfBuzz, an OpenType Layout engine library. 564aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * 664aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * Permission is hereby granted, without written agreement and without 764aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * license or royalty fees, to use, copy, modify, and distribute this 864aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * software and its documentation for any purpose, provided that the 964aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * above copyright notice and the following two paragraphs appear in 1064aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * all copies of this software. 1164aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * 1264aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR 1364aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 1464aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN 1564aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 1664aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * DAMAGE. 1764aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * 1864aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, 1964aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 2064aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 2164aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO 2264aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 2364aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * 2464aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * Red Hat Author(s): Behdad Esfahbod 2564aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod */ 2664aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod 27fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbod#ifndef HB_OT_LAYOUT_H 28fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbod#define HB_OT_LAYOUT_H 2912c4568c680ea2b9b98a16a8b7402ca185c90ef6Behdad Esfahbod 308dd1c8b8d6797d899d0f5b0a8015886bf6520ca2Behdad Esfahbod#include "hb-common.h" 315c0adce1ccc739415c4b26ff13ffd2d77ea4bc6cBehdad Esfahbod#include "hb-buffer.h" 320ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod#include "hb-font.h" 3312c4568c680ea2b9b98a16a8b7402ca185c90ef6Behdad Esfahbod 34f96ffd43bce0ac6d9c897933c9be0e51d543e570Behdad EsfahbodHB_BEGIN_DECLS 3512c4568c680ea2b9b98a16a8b7402ca185c90ef6Behdad Esfahbod 360ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod#define HB_OT_TAG_GDEF HB_TAG('G','D','E','F') 370ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod#define HB_OT_TAG_GSUB HB_TAG('G','S','U','B') 380ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod#define HB_OT_TAG_GPOS HB_TAG('G','P','O','S') 39fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbod 40590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbod/* 41590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbod * GDEF 42590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbod */ 43590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbod 446f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbodtypedef enum { 456f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbod HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED = 0x0000, 466f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbod HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH = 0x0002, 476f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbod HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE = 0x0004, 486f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbod HB_OT_LAYOUT_GLYPH_CLASS_MARK = 0x0008, 496f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbod HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT = 0x0010 506f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbod} hb_ot_layout_glyph_class_t; 516f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbod 520ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod/* XXX These should eventually be removed as we move synthesized glyph 530ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod * classes in harfbuzz. */ 540ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod 55590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbodhb_bool_t 560ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_has_font_glyph_classes (hb_face_t *face); 57590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbod 58aff831ed6787abe8e24a977e34d97ff2e0b7dc21Behdad Esfahbodhb_ot_layout_glyph_class_t 590ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_get_glyph_class (hb_face_t *face, 602d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod hb_codepoint_t glyph); 61fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbod 62fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbodvoid 630ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_set_glyph_class (hb_face_t *face, 642d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod hb_codepoint_t glyph, 65aff831ed6787abe8e24a977e34d97ff2e0b7dc21Behdad Esfahbod hb_ot_layout_glyph_class_t klass); 66fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbod 67590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbodvoid 680ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_build_glyph_classes (hb_face_t *face, 690ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod uint16_t num_total_glyphs, 700ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_codepoint_t *glyphs, 710ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned char *klasses, 720ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod uint16_t count); 73590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbod 7462964afcecd96038cfaa8bc2bc931f43ee83be7eBehdad Esfahbodhb_bool_t 750ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_get_attach_points (hb_face_t *face, 7679420ad9caf2d5fc94c3693e8292edfa27060b2dBehdad Esfahbod hb_codepoint_t glyph, 7779420ad9caf2d5fc94c3693e8292edfa27060b2dBehdad Esfahbod unsigned int *point_count /* IN/OUT */, 7879420ad9caf2d5fc94c3693e8292edfa27060b2dBehdad Esfahbod unsigned int *point_array /* OUT */); 7979420ad9caf2d5fc94c3693e8292edfa27060b2dBehdad Esfahbod 8062964afcecd96038cfaa8bc2bc931f43ee83be7eBehdad Esfahbodhb_bool_t 810ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_get_lig_carets (hb_face_t *face, 820ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_font_t *font, 8362964afcecd96038cfaa8bc2bc931f43ee83be7eBehdad Esfahbod hb_codepoint_t glyph, 8462964afcecd96038cfaa8bc2bc931f43ee83be7eBehdad Esfahbod unsigned int *caret_count /* IN/OUT */, 8562964afcecd96038cfaa8bc2bc931f43ee83be7eBehdad Esfahbod int *caret_array /* OUT */); 8662964afcecd96038cfaa8bc2bc931f43ee83be7eBehdad Esfahbod 87706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod/* 88706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod * GSUB/GPOS 89706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod */ 90706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 9130bd763fa2fa4aceee51433ec9fc8dc28480b5d7Behdad Esfahbodtypedef uint32_t hb_ot_layout_feature_mask_t; 922d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 93706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod#define HB_OT_LAYOUT_NO_SCRIPT_INDEX ((unsigned int) 0xFFFF) 94706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod#define HB_OT_LAYOUT_NO_FEATURE_INDEX ((unsigned int) 0xFFFF) 95706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod#define HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX ((unsigned int) 0xFFFF) 96706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod#define HB_OT_LAYOUT_TAG_DEFAULT_SCRIPT HB_TAG ('D', 'F', 'L', 'T') 97706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod#define HB_OT_LAYOUT_TAG_DEFAULT_LANGUAGE HB_TAG ('d', 'f', 'l', 't') 98706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 99706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbodunsigned int 1000ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_table_get_script_count (hb_face_t *face, 1010ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag); 102706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 103706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbodhb_tag_t 1040ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_table_get_script_tag (hb_face_t *face, 1050ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag, 1060ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int script_index); 107706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 108706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbodhb_bool_t 1090ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_table_find_script (hb_face_t *face, 1100ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag, 1110ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t script_tag, 1120ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int *script_index); 113706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 114706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbodunsigned int 1150ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_table_get_feature_count (hb_face_t *face, 1160ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag); 117706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 118706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbodhb_tag_t 1190ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_table_get_feature_tag (hb_face_t *face, 1200ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag, 1210ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int feature_index); 122706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 123706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbodhb_bool_t 1240ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_table_find_feature (hb_face_t *face, 1250ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag, 1260ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t feature_tag, 1270ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int *feature_index); 128c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod 129c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodunsigned int 1300ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_table_get_lookup_count (hb_face_t *face, 1310ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag); 132c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod 133c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodunsigned int 1340ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_script_get_language_count (hb_face_t *face, 1350ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag, 1360ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int script_index); 137c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod 138c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_tag_t 1390ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_script_get_language_tag (hb_face_t *face, 1400ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag, 1410ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int script_index, 1420ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int language_index); 1434a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbod 1444a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbodhb_bool_t 1450ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_script_find_language (hb_face_t *face, 1460ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag, 1470ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int script_index, 1480ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t language_tag, 1490ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int *language_index); 150c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod 151c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_bool_t 1520ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_language_get_required_feature_index (hb_face_t *face, 1530ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag, 1540ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int script_index, 1550ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int language_index, 1560ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int *feature_index); 157c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod 158c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodunsigned int 1590ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_language_get_feature_count (hb_face_t *face, 1600ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag, 1610ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int script_index, 1620ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int language_index); 1634a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbod 1644a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbodunsigned int 1650ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_language_get_feature_index (hb_face_t *face, 1660ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag, 1670ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int script_index, 1680ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int language_index, 1690ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int num_feature); 1704a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbod 1714a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbodhb_tag_t 1720ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_language_get_feature_tag (hb_face_t *face, 1730ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag, 1740ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int script_index, 1750ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int language_index, 1760ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int num_feature); 1774a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbod 1784a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbodhb_bool_t 1790ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_language_find_feature (hb_face_t *face, 1800ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag, 1810ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int script_index, 1820ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int language_index, 1830ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t feature_tag, 1840ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int *feature_index); 185c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod 186c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodunsigned int 1870ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_feature_get_lookup_count (hb_face_t *face, 1880ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag, 1890ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int feature_index); 190c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod 191c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodunsigned int 1920ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_feature_get_lookup_index (hb_face_t *face, 1930ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_tag_t table_tag, 1940ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int feature_index, 1950ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int num_lookup); 196706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 1972d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod/* 1982d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod * GSUB 1992d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod */ 2002d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2012d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbodhb_bool_t 2020ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_has_substitution (hb_face_t *face); 203f9cd1014f8f4d0394b5e0e9eefc1e2af13c59cabBehdad Esfahbod 2040ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod/* GSUB is not font-size dependent, so we apply on face */ 205f9cd1014f8f4d0394b5e0e9eefc1e2af13c59cabBehdad Esfahbodhb_bool_t 2060ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_substitute_lookup (hb_face_t *face, 2072d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod hb_buffer_t *buffer, 2080ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int lookup_index, 2092d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod hb_ot_layout_feature_mask_t mask); 2102d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 211f9cd1014f8f4d0394b5e0e9eefc1e2af13c59cabBehdad Esfahbod/* 212f9cd1014f8f4d0394b5e0e9eefc1e2af13c59cabBehdad Esfahbod * GPOS 213f9cd1014f8f4d0394b5e0e9eefc1e2af13c59cabBehdad Esfahbod */ 214f9cd1014f8f4d0394b5e0e9eefc1e2af13c59cabBehdad Esfahbod 215f9cd1014f8f4d0394b5e0e9eefc1e2af13c59cabBehdad Esfahbodhb_bool_t 2160ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_has_positioning (hb_face_t *face); 217f9cd1014f8f4d0394b5e0e9eefc1e2af13c59cabBehdad Esfahbod 2189c42f05a5ccbb48a9367b80ecdf3679e88088fcfBehdad Esfahbodhb_bool_t 2190ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbodhb_ot_layout_position_lookup (hb_face_t *face, 2200ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod hb_font_t *font, 2219c42f05a5ccbb48a9367b80ecdf3679e88088fcfBehdad Esfahbod hb_buffer_t *buffer, 2220ead481a5a8623103565fd7d924666e7342278ddBehdad Esfahbod unsigned int lookup_index, 2239c42f05a5ccbb48a9367b80ecdf3679e88088fcfBehdad Esfahbod hb_ot_layout_feature_mask_t mask); 2242d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2252d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2262d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2272d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2282d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2292d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2302d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2312d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2322d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 233706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 234706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod/* 235706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod#define PANGO_OT_ALL_GLYPHS ((guint) 0xFFFF) 236706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 237706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod*/ 238706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 239f96ffd43bce0ac6d9c897933c9be0e51d543e570Behdad EsfahbodHB_END_DECLS 24012c4568c680ea2b9b98a16a8b7402ca185c90ef6Behdad Esfahbod 241fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbod#endif /* HB_OT_LAYOUT_H */ 242