hb-ot-layout.h revision 2d15e72c75931398db5e027e660f1320bb979117
164aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod/* 264aef3a54999496fd1de4f5aa5b019e4c03b3836Behdad Esfahbod * Copyright (C) 2007,2008 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" 3112c4568c680ea2b9b98a16a8b7402ca185c90ef6Behdad Esfahbod 328dd1c8b8d6797d899d0f5b0a8015886bf6520ca2Behdad EsfahbodHB_BEGIN_DECLS(); 3312c4568c680ea2b9b98a16a8b7402ca185c90ef6Behdad Esfahbod 34aff831ed6787abe8e24a977e34d97ff2e0b7dc21Behdad Esfahbod/* 35e50c3978d37b2c0d6ddd4ced6a6196f6857cd596Behdad Esfahbod * hb_ot_layout_t 36aff831ed6787abe8e24a977e34d97ff2e0b7dc21Behdad Esfahbod */ 37aff831ed6787abe8e24a977e34d97ff2e0b7dc21Behdad Esfahbod 38e50c3978d37b2c0d6ddd4ced6a6196f6857cd596Behdad Esfahbodtypedef struct _hb_ot_layout_t hb_ot_layout_t; 39fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbod 40e50c3978d37b2c0d6ddd4ced6a6196f6857cd596Behdad Esfahbodhb_ot_layout_t * 414a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbodhb_ot_layout_create (void); 424a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbod 434a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbodhb_ot_layout_t * 44dfa811965133bc4d1696fa5a0166e17ed4142c98Behdad Esfahbodhb_ot_layout_create_for_data (const char *font_data, 45dfa811965133bc4d1696fa5a0166e17ed4142c98Behdad Esfahbod int face_index); 46fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbod 47fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbodvoid 48e50c3978d37b2c0d6ddd4ced6a6196f6857cd596Behdad Esfahbodhb_ot_layout_destroy (hb_ot_layout_t *layout); 49fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbod 50e50c3978d37b2c0d6ddd4ced6a6196f6857cd596Behdad Esfahbod/* TODO sanitizing API/constructor (make_wrieable_func_t) */ 51e50c3978d37b2c0d6ddd4ced6a6196f6857cd596Behdad Esfahbod/* TODO get_table_func_t constructor */ 52fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbod 53590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbod/* 54590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbod * GDEF 55590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbod */ 56590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbod 576f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbodtypedef enum { 586f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbod HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED = 0x0000, 596f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbod HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH = 0x0002, 606f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbod HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE = 0x0004, 616f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbod HB_OT_LAYOUT_GLYPH_CLASS_MARK = 0x0008, 626f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbod HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT = 0x0010 636f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbod} hb_ot_layout_glyph_class_t; 646f425b11799aa20dab553085f05744191b7318e2Behdad Esfahbod 65590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbodhb_bool_t 66e50c3978d37b2c0d6ddd4ced6a6196f6857cd596Behdad Esfahbodhb_ot_layout_has_font_glyph_classes (hb_ot_layout_t *layout); 67590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbod 68aff831ed6787abe8e24a977e34d97ff2e0b7dc21Behdad Esfahbodhb_ot_layout_glyph_class_t 69e50c3978d37b2c0d6ddd4ced6a6196f6857cd596Behdad Esfahbodhb_ot_layout_get_glyph_class (hb_ot_layout_t *layout, 702d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod hb_codepoint_t glyph); 71fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbod 72fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbodvoid 73e50c3978d37b2c0d6ddd4ced6a6196f6857cd596Behdad Esfahbodhb_ot_layout_set_glyph_class (hb_ot_layout_t *layout, 742d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod hb_codepoint_t glyph, 75aff831ed6787abe8e24a977e34d97ff2e0b7dc21Behdad Esfahbod hb_ot_layout_glyph_class_t klass); 76fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbod 77590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbodvoid 78e50c3978d37b2c0d6ddd4ced6a6196f6857cd596Behdad Esfahbodhb_ot_layout_build_glyph_classes (hb_ot_layout_t *layout, 79e50c3978d37b2c0d6ddd4ced6a6196f6857cd596Behdad Esfahbod uint16_t num_total_glyphs, 802d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod hb_codepoint_t *glyphs, 81e50c3978d37b2c0d6ddd4ced6a6196f6857cd596Behdad Esfahbod unsigned char *klasses, 82e50c3978d37b2c0d6ddd4ced6a6196f6857cd596Behdad Esfahbod uint16_t count); 83590d55cbb9e21ef74dfd88eee51fd0a763958cd2Behdad Esfahbod 84706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod/* 85706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod * GSUB/GPOS 86706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod */ 87706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 88706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbodtypedef enum { 89706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod HB_OT_LAYOUT_TABLE_TYPE_GSUB, 90706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod HB_OT_LAYOUT_TABLE_TYPE_GPOS, 91706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod HB_OT_LAYOUT_TABLE_TYPE_NONE 92706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod} hb_ot_layout_table_type_t; 93706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 942d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbodtypedef uint16_t hb_ot_layout_feature_mask_t; 952d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 962d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod#define HB_OT_LAYOUT_MAX_NESTING_LEVEL 100 972d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 98706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod#define HB_OT_LAYOUT_NO_SCRIPT_INDEX ((unsigned int) 0xFFFF) 99706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod#define HB_OT_LAYOUT_NO_FEATURE_INDEX ((unsigned int) 0xFFFF) 100706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod#define HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX ((unsigned int) 0xFFFF) 101706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod#define HB_OT_LAYOUT_TAG_DEFAULT_SCRIPT HB_TAG ('D', 'F', 'L', 'T') 102706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod#define HB_OT_LAYOUT_TAG_DEFAULT_LANGUAGE HB_TAG ('d', 'f', 'l', 't') 103706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 104706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbodunsigned int 105c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_table_get_script_count (hb_ot_layout_t *layout, 106c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type); 107706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 108706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbodhb_tag_t 109c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_table_get_script_tag (hb_ot_layout_t *layout, 110c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type, 111c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int script_index); 112706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 113706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbodhb_bool_t 114c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_table_find_script (hb_ot_layout_t *layout, 115c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type, 116c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_tag_t script_tag, 117c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int *script_index); 118706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 119706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbodunsigned int 120c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_table_get_feature_count (hb_ot_layout_t *layout, 121c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type); 122706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 123706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbodhb_tag_t 124c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_table_get_feature_tag (hb_ot_layout_t *layout, 125c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type, 126c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int feature_index); 127706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 128706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbodhb_bool_t 129c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_table_find_script (hb_ot_layout_t *layout, 130c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type, 131c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_tag_t feature_tag, 132c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int *feature_index); 133c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod 134c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodunsigned int 135c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_table_get_lookup_count (hb_ot_layout_t *layout, 136c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type); 137c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod 138c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodunsigned int 139c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_script_get_language_count (hb_ot_layout_t *layout, 140c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type, 141c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int script_index); 142c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod 143c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_tag_t 144c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_script_get_language_tag (hb_ot_layout_t *layout, 145c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type, 146c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int script_index, 147c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int language_index); 1484a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbod 1494a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbodhb_bool_t 150c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_script_find_language (hb_ot_layout_t *layout, 151c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type, 152c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int script_index, 153c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_tag_t language_tag, 154c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int *language_index); 155c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod 156c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_bool_t 157c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_language_get_required_feature_index (hb_ot_layout_t *layout, 158c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type, 159c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int script_index, 160c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int language_index, 161c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int *feature_index); 162c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod 163c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodunsigned int 164c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_language_get_feature_count (hb_ot_layout_t *layout, 1654a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbod hb_ot_layout_table_type_t table_type, 1664a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbod unsigned int script_index, 167c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int language_index); 1684a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbod 1694a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbodunsigned int 170c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_language_get_feature_index (hb_ot_layout_t *layout, 171c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type, 172c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int script_index, 173c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int language_index, 174c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int num_feature); 1754a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbod 1764a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbodhb_tag_t 177c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_language_get_feature_tag (hb_ot_layout_t *layout, 178c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type, 179c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int script_index, 180c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int language_index, 181c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int num_feature); 1824a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbod 1834a26ea408c87f0bb59deca9ff44008d138471aa3Behdad Esfahbodhb_bool_t 184c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_language_find_feature (hb_ot_layout_t *layout, 185c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type, 186c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int script_index, 187c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int language_index, 188c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_tag_t feature_tag, 189c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int *feature_index); 190c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod 191c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodunsigned int 192c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_feature_get_lookup_count (hb_ot_layout_t *layout, 193c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type, 194c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int feature_index); 195c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod 196c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodunsigned int 197c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbodhb_ot_layout_feature_get_lookup_index (hb_ot_layout_t *layout, 198c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod hb_ot_layout_table_type_t table_type, 199c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int feature_index, 200c44733596c6648e209c12349e18e35424edf3d59Behdad Esfahbod unsigned int num_lookup); 201706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 2022d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod/* 2032d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod * GSUB 2042d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod */ 2052d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2062d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbodhb_bool_t 2072d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbodhb_ot_layout_substitute_lookup (hb_ot_layout_t *layout, 2082d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod hb_buffer_t *buffer, 2092d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod unsigned int lookup_index, 2102d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod hb_ot_layout_feature_mask_t mask); 2112d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2122d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2132d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2142d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2152d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2162d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2172d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2182d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2192d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 2202d15e72c75931398db5e027e660f1320bb979117Behdad Esfahbod 221706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 222706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod/* 223706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod#define PANGO_OT_ALL_GLYPHS ((guint) 0xFFFF) 224706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 225706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod*/ 226706ab25a4cb043d46e6088aa0a7184ee200276c9Behdad Esfahbod 2278dd1c8b8d6797d899d0f5b0a8015886bf6520ca2Behdad EsfahbodHB_END_DECLS(); 22812c4568c680ea2b9b98a16a8b7402ca185c90ef6Behdad Esfahbod 229fd92a3dde32fd10df30c9eeb97641bc3c15b1e9bBehdad Esfahbod#endif /* HB_OT_LAYOUT_H */ 230