luametalatex-c/luaharfbuzz/docs/index.html
Marcel Fabian Krüger ca93f7224c Initial commit
2021-12-28 10:18:21 +01:00

2830 lines
61 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>luaharfbuzz Documentation</title>
<link rel="stylesheet" href="ldoc.css" type="text/css" />
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div> <!-- id="product" -->
<div id="main">
<!-- Menu -->
<div id="navigation">
<br/>
<h1>luaharfbuzz</h1>
<h2>Contents</h2>
<ul>
<li><a href="#Functions">Functions</a></li>
<li><a href="#Class_Blob">Class Blob </a></li>
<li><a href="#Class_Face">Class Face </a></li>
<li><a href="#Class_Font">Class Font </a></li>
<li><a href="#Class_Buffer">Class Buffer </a></li>
<li><a href="#Cluster_Levels">Cluster Levels </a></li>
<li><a href="#Class_Feature">Class Feature </a></li>
<li><a href="#Class_Tag">Class Tag </a></li>
<li><a href="#Class_Script">Class Script </a></li>
<li><a href="#Predefined_Script_Codes">Predefined Script Codes </a></li>
<li><a href="#Class_Direction">Class Direction </a></li>
<li><a href="#Predefined_directions">Predefined directions </a></li>
<li><a href="#Class_Language">Class Language </a></li>
<li><a href="#Predefined_languages">Predefined languages </a></li>
<li><a href="#Unicode_functions">Unicode functions </a></li>
<li><a href="#Predefined_Name_IDs">Predefined Name IDs </a></li>
</ul>
<h2>Modules</h2>
<ul class="nowrap">
<li><strong>harfbuzz</strong></li>
</ul>
<h2>Examples</h2>
<ul class="nowrap">
<li><a href="examples/core_types.lua.html">core_types.lua</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>harfbuzz</code></h1>
<p>Lua bindings to Harfbuzz.</p>
<p>
<ul>
<li><a href="http://github.com/ufytex/luaharfbuzz/wiki">Wiki</a></li>
<li><a href="https://github.com/ufytex/luaharfbuzz">Source on Github</a></li>
<li><a href="https://github.com/ufytex/luaharfbuzz/blob/master/status/done.txt">API Coverage Status</a></li>
</ul>
</p>
<h3>Info:</h3>
<ul>
<li><strong>Copyright</strong>: 2016</li>
<li><strong>License</strong>: MIT</li>
<li><strong>Author</strong>: Deepak Jois <<a href="&#x6d;&#97;&#x69;&#108;&#x74;&#111;&#x3a;d&#101;&#x65;&#112;&#x61;&#107;&#x2e;&#106;&#x6f;i&#115;&#x40;&#103;&#x6d;&#97;&#x69;&#108;&#x2e;&#99;&#x6f;m">&#x64;&#101;&#x65;&#112;&#x61;&#107;&#x2e;j&#111;&#x69;&#115;&#x40;&#103;&#x6d;&#97;&#x69;l&#46;&#x63;&#111;&#x6d;</a>></li>
</ul>
<h2><a href="#Functions">Functions</a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#version">version ()</a></td>
<td class="summary">Wraps <code>hb_version</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#shape">shape (font, buffer[, options])</a></td>
<td class="summary">Wraps <code>hb_shape</code>.</td>
</tr>
</table>
<h2><a href="#Class_Blob">Class Blob </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#Blob.new">Blob.new (data)</a></td>
<td class="summary">Wraps <code>hb_blob_create</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Blob.new_from_file">Blob.new_from_file (filename)</a></td>
<td class="summary">Wraps <code>hb_blob_create_from_file</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Blob:get_length">Blob:get_length ()</a></td>
<td class="summary">Wraps <code>hb_blob_get_length</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Blob:get_data">Blob:get_data ()</a></td>
<td class="summary">Wraps <code>hb_blob_get_data</code>.</td>
</tr>
</table>
<h2><a href="#Class_Face">Class Face </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#Face.new_from_blob">Face.new_from_blob (blob[, font_index=0])</a></td>
<td class="summary">Wraps <code>hb_face_create</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face.new">Face.new (file[, font_index=0])</a></td>
<td class="summary">Create a new <code>Face</code> from a file.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:collect_unicodes">Face:collect_unicodes ()</a></td>
<td class="summary">Wraps <code>hb_face_collect_unicodes</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:get_glyph_count">Face:get_glyph_count ()</a></td>
<td class="summary">Wraps <code>hb_face_get_glyph_count</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:get_table">Face:get_table (tag)</a></td>
<td class="summary">Wraps <code>hb_face_reference_table</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:get_table_tags">Face:get_table_tags ()</a></td>
<td class="summary">Wraps <code>hb_face_get_table_tags</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:get_upem">Face:get_upem ()</a></td>
<td class="summary">Wraps <code>hb_face_get_upem</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:ot_color_has_palettes">Face:ot_color_has_palettes ()</a></td>
<td class="summary">Wraps <code>hb_ot_color_has_palettes</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:ot_color_palette_get_count">Face:ot_color_palette_get_count ()</a></td>
<td class="summary">Wraps <code>hb_ot_color_palette_get_count</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:ot_color_palette_get_colors">Face:ot_color_palette_get_colors ()</a></td>
<td class="summary">Wraps <code>hb_ot_color_palette_get_colors</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:ot_color_has_layers">Face:ot_color_has_layers ()</a></td>
<td class="summary">Wraps <code>hb_ot_color_has_layers</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:ot_color_glyph_get_layers">Face:ot_color_glyph_get_layers ()</a></td>
<td class="summary">Wraps <code>hb_ot_color_glyph_get_layers</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:ot_color_has_png">Face:ot_color_has_png ()</a></td>
<td class="summary">Wraps <code>hb_ot_color_has_png</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:ot_layout_get_script_tags">Face:ot_layout_get_script_tags ()</a></td>
<td class="summary">Wraps <code>hb_ot_layout_table_get_script_tags</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:ot_layout_get_language_tags">Face:ot_layout_get_language_tags ()</a></td>
<td class="summary">Wraps <code>hb_ot_layout_script_get_language_tags</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:ot_layout_get_feature_tags">Face:ot_layout_get_feature_tags ()</a></td>
<td class="summary">Wraps <code>hb_ot_layout_language_get_feature_tags</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:ot_layout_find_script">Face:ot_layout_find_script ()</a></td>
<td class="summary">Wraps <code>hb_ot_layout_table_find_script</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:ot_layout_find_language">Face:ot_layout_find_language ()</a></td>
<td class="summary">Wraps <code>hb_ot_layout_script_find_language</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Face:ot_layout_find_feature">Face:ot_layout_find_feature ()</a></td>
<td class="summary">Wraps <code>hb_ot_layout_language_find_feature</code>.</td>
</tr>
</table>
<h2><a href="#Class_Font">Class Font </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#Font.new">Font.new (face)</a></td>
<td class="summary">Wraps <code>hb_font_create</code>, and sets up some defaults for scale and shaping functions.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Font:get_scale">Font:get_scale ()</a></td>
<td class="summary">Wraps <code>hb_font_get_scale</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Font:set_scale">Font:set_scale (x_scale, y_scale)</a></td>
<td class="summary">Wraps <code>hb_font_set_scale</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Font:get_h_extents">Font:get_h_extents ()</a></td>
<td class="summary">Wraps <code>hb_font_get_h_extents</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Font:get_v_extents">Font:get_v_extents ()</a></td>
<td class="summary">Wraps <code>hb_font_get_v_extents</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Font:get_glyph_extents">Font:get_glyph_extents (glyph)</a></td>
<td class="summary">Wraps <code>hb_font_get_glyph_extents</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Font:get_glyph_name">Font:get_glyph_name (glyph)</a></td>
<td class="summary">Wraps <code>hb_font_get_glyph_name</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Font:get_glyph_from_name">Font:get_glyph_from_name (name)</a></td>
<td class="summary">Wraps <code>hb_font_get_glyph_from_name</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Font:get_glyph_h_advance">Font:get_glyph_h_advance (glyph)</a></td>
<td class="summary">Wraps <code>hb_font_get_glyph_h_advance</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Font:get_glyph_v_advance">Font:get_glyph_v_advance (glyph)</a></td>
<td class="summary">Wraps <code>hb_font_get_glyph_v_advance</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Font:get_nominal_glyph">Font:get_nominal_glyph (codepoint.)</a></td>
<td class="summary">Wraps <code>hb_font_get_nominal_glyph</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Font:ot_color_glyph_get_png">Font:ot_color_glyph_get_png ()</a></td>
<td class="summary">Wraps <code>hb_ot_color_glyph_get_png</code>.</td>
</tr>
</table>
<h2><a href="#Class_Buffer">Class Buffer </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#Buffer.new">Buffer.new ()</a></td>
<td class="summary">Wraps <code>hb_buffer_create</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer:add_utf8">Buffer:add_utf8 (text[, item_offset=0[, item_length=-1]])</a></td>
<td class="summary">Wraps <code>hb_buffer_add_utf8</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer:add_codepoints">Buffer:add_codepoints (text[, item_offset=0[, item_length=-1]])</a></td>
<td class="summary">Wraps <code>hb_buffer_add_codepoints</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer:set_direction">Buffer:set_direction (dir)</a></td>
<td class="summary">Wraps <code>hb_buffer_set_direction</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer:get_direction">Buffer:get_direction ()</a></td>
<td class="summary">Wraps <code>hb_buffer_get_direction</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer:set_script">Buffer:set_script (script)</a></td>
<td class="summary">Wraps <code>hb_buffer_set_script</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer:get_script">Buffer:get_script ()</a></td>
<td class="summary">Wraps <code>hb_buffer_get_script</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer:set_language">Buffer:set_language (lang)</a></td>
<td class="summary">Wraps <code>hb_buffer_set_language</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer:get_language">Buffer:get_language ()</a></td>
<td class="summary">Wraps <code>hb_buffer_get_language</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer:reverse">Buffer:reverse ()</a></td>
<td class="summary">Wraps <code>hb_buffer_reverse</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer:get_length">Buffer:get_length ()</a></td>
<td class="summary">Wraps <code>hb_buffer_get_length</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer:get_cluster_level">Buffer:get_cluster_level ()</a></td>
<td class="summary">Wraps <code>hb_buffer_get_cluster_level</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer:set_cluster_level">Buffer:set_cluster_level (level)</a></td>
<td class="summary">Wraps <code>hb_buffer_set_cluster_level</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer:guess_segment_properties">Buffer:guess_segment_properties ()</a></td>
<td class="summary">Wraps <code>hb_buffer_guess_segment_properties</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer:get_glyphs">Buffer:get_glyphs ()</a></td>
<td class="summary">Helper method to get shaped glyph data.</td>
</tr>
</table>
<h2><a href="#Cluster_Levels">Cluster Levels </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#Buffer.CLUSTER_LEVEL_MONOTONE_GRAPHEMES">Buffer.CLUSTER_LEVEL_MONOTONE_GRAPHEMES</a></td>
<td class="summary">Wraps <code>HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer.CLUSTER_LEVEL_MONOTONE_CHARACTERS">Buffer.CLUSTER_LEVEL_MONOTONE_CHARACTERS</a></td>
<td class="summary">Wraps <code>HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer.CLUSTER_LEVEL_CHARACTERS">Buffer.CLUSTER_LEVEL_CHARACTERS</a></td>
<td class="summary">Wraps <code>HB_BUFFER_CLUSTER_LEVEL_CHARACTERS</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer.CLUSTER_LEVEL_DEFAULT">Buffer.CLUSTER_LEVEL_DEFAULT</a></td>
<td class="summary">Wraps <code>HB_BUFFER_CLUSTER_LEVEL_DEFAULT</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer.GLYPH_FLAG_UNSAFE_TO_BREAK">Buffer.GLYPH_FLAG_UNSAFE_TO_BREAK</a></td>
<td class="summary">Wraps <code>HB_GLYPH_FLAG_UNSAFE_TO_BREAK</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Buffer.GLYPH_FLAG_DEFINED">Buffer.GLYPH_FLAG_DEFINED</a></td>
<td class="summary">Wraps <code>HB_GLYPH_FLAG_DEFINED</code>.</td>
</tr>
</table>
<h2><a href="#Class_Feature">Class Feature </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#Feature.new">Feature.new (feature_string)</a></td>
<td class="summary">Wraps <code>hb_feature_from_string</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#Feature:__tostring">Feature:__tostring ()</a></td>
<td class="summary">Wraps <code>hb_feature_to_string</code>.</td>
</tr>
</table>
<h2><a href="#Class_Tag">Class Tag </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#Tag.new">Tag.new (string)</a></td>
<td class="summary">Wraps <code>hb_tag_from_string</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Tag:__to_string">Tag:__to_string ()</a></td>
<td class="summary">Wraps <code>hb_tag_to_string</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Tag:__eq">Tag:__eq ()</a></td>
<td class="summary">Enables equality comparisions with <code>==</code> between two tags.</td>
</tr>
</table>
<h2><a href="#Class_Script">Class Script </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#Script.new">Script.new (script)</a></td>
<td class="summary">Wraps <code>hb_script_from_string</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Script.from_iso15924_tag">Script.from_iso15924_tag (tag)</a></td>
<td class="summary">Wraps <code>hb_script_from_iso15924_tag</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#Script:to_iso15924_tag">Script:to_iso15924_tag ()</a></td>
<td class="summary">Wraps <code>hb_script_to_iso15924_tag</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Script:__to_string">Script:__to_string ()</a></td>
<td class="summary">Enable nice output with <code>tostring(…)</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#Script:__eq">Script:__eq ()</a></td>
<td class="summary">Enables equality comparisions with <code>==</code> between two scripts.</td>
</tr>
</table>
<h2><a href="#Predefined_Script_Codes">Predefined Script Codes </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#Script.COMMON">Script.COMMON</a></td>
<td class="summary">Wraps <code>HB_SCRIPT_COMMON</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Script.INHERITED">Script.INHERITED</a></td>
<td class="summary">Wraps <code>HB_SCRIPT_INHERITED</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Script.UNKNOWN">Script.UNKNOWN</a></td>
<td class="summary">Wraps <code>HB_SCRIPT_UNKNOWN</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Script.INVALID">Script.INVALID</a></td>
<td class="summary">Wraps <code>HB_SCRIPT_INVALID</code>.</td>
</tr>
</table>
<h2><a href="#Class_Direction">Class Direction </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#Direction.new">Direction.new (dir)</a></td>
<td class="summary">Wraps <code>hb_direction_from_string</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Direction:__to_string">Direction:__to_string ()</a></td>
<td class="summary">Wraps <code>hb_direction_to_string</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Direction:__eq">Direction:__eq ()</a></td>
<td class="summary">Enables equality comparisions with <code>==</code> between two directions.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Direction:is_valid">Direction:is_valid ()</a></td>
<td class="summary">Wraps <code>HB_DIRECTION_IS_VALID</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Direction:is_horizontal">Direction:is_horizontal ()</a></td>
<td class="summary">Wraps <code>HB_DIRECTION_IS_HORIZONTAL</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Direction:is_vertical">Direction:is_vertical ()</a></td>
<td class="summary">Wraps <code>HB_DIRECTION_IS_VERTICAL</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Direction:is_forward">Direction:is_forward ()</a></td>
<td class="summary">Wraps <code>HB_DIRECTION_IS_FORWARD</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Direction:is_backward">Direction:is_backward ()</a></td>
<td class="summary">Wraps <code>HB_DIRECTION_IS_BACKWARD</code>.</td>
</tr>
</table>
<h2><a href="#Predefined_directions">Predefined directions </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#Direction.LTR">Direction.LTR</a></td>
<td class="summary">Wraps <code>HB_DIRECTION_LTR</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Direction.RTL">Direction.RTL</a></td>
<td class="summary">Wraps <code>HB_DIRECTION_RTL</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Direction.TTB">Direction.TTB</a></td>
<td class="summary">Wraps <code>HB_DIRECTION_TTB</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Direction.BTT">Direction.BTT</a></td>
<td class="summary">Wraps <code>HB_DIRECTION_LTR</code>.</td>
</tr>
</table>
<h2><a href="#Class_Language">Class Language </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#Language.new">Language.new (lang)</a></td>
<td class="summary">Wraps <code>hb_language_from_string</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Language:__to_string">Language:__to_string ()</a></td>
<td class="summary">Wraps <code>hb_language_to_string</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#Language:__eq">Language:__eq ()</a></td>
<td class="summary">Enables equality comparisions with <code>==</code> between two languages.</td>
</tr>
</table>
<h2><a href="#Predefined_languages">Predefined languages </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#Language.INVALID">Language.INVALID</a></td>
<td class="summary">Wraps <code>HB_LANGUAGE_INVALID</code>.</td>
</tr>
</table>
<h2><a href="#Unicode_functions">Unicode functions </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#unicode.script">unicode.script (char)</a></td>
<td class="summary">Wraps <code>hb_unicode_script</code></td>
</tr>
</table>
<h2><a href="#Predefined_Name_IDs">Predefined Name IDs </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_COPYRIGHT">ot.NAME_ID_COPYRIGHT</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_COPYRIGHT</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_FONT_FAMILY">ot.NAME_ID_FONT_FAMILY</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_FONT_FAMILY</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_FONT_SUBFAMILY">ot.NAME_ID_FONT_SUBFAMILY</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_FONT_SUBFAMILY</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_UNIQUE_ID">ot.NAME_ID_UNIQUE_ID</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_UNIQUE_ID</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_FULL_NAME">ot.NAME_ID_FULL_NAME</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_FULL_NAME</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_VERSION_STRING">ot.NAME_ID_VERSION_STRING</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_VERSION_STRING</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_POSTSCRIPT_NAME">ot.NAME_ID_POSTSCRIPT_NAME</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_POSTSCRIPT_NAME</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_TRADEMARK">ot.NAME_ID_TRADEMARK</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_TRADEMARK</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_MANUFACTURER">ot.NAME_ID_MANUFACTURER</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_MANUFACTURER</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_DESIGNER">ot.NAME_ID_DESIGNER</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_DESIGNER</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_DESCRIPTION">ot.NAME_ID_DESCRIPTION</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_DESCRIPTION</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_VENDOR_URL">ot.NAME_ID_VENDOR_URL</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_VENDOR_URL</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_DESIGNER_URL">ot.NAME_ID_DESIGNER_URL</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_DESIGNER_URL</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_LICENSE">ot.NAME_ID_LICENSE</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_LICENSE</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_LICENSE_URL">ot.NAME_ID_LICENSE_URL</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_LICENSE_URL</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_TYPOGRAPHIC_FAMILY">ot.NAME_ID_TYPOGRAPHIC_FAMILY</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_TYPOGRAPHIC_SUBFAMILY">ot.NAME_ID_TYPOGRAPHIC_SUBFAMILY</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_MAC_FULL_NAME">ot.NAME_ID_MAC_FULL_NAME</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_MAC_FULL_NAME</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_SAMPLE_TEXT">ot.NAME_ID_SAMPLE_TEXT</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_SAMPLE_TEXT</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_CID_FINDFONT_NAME">ot.NAME_ID_CID_FINDFONT_NAME</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_CID_FINDFONT_NAME</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_WWS_FAMILY">ot.NAME_ID_WWS_FAMILY</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_WWS_FAMILY</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_WWS_SUBFAMILY">ot.NAME_ID_WWS_SUBFAMILY</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_WWS_SUBFAMILY</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_LIGHT_BACKGROUND">ot.NAME_ID_LIGHT_BACKGROUND</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_LIGHT_BACKGROUND</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_DARK_BACKGROUND">ot.NAME_ID_DARK_BACKGROUND</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_DARK_BACKGROUND</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_VARIATIONS_PS_PREFIX">ot.NAME_ID_VARIATIONS_PS_PREFIX</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_VARIATIONS_PS_PREFIX</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.NAME_ID_INVALID">ot.NAME_ID_INVALID</a></td>
<td class="summary">Wraps <code>HB_OT_NAME_ID_INVALID</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.LAYOUT_NO_SCRIPT_INDEX">ot.LAYOUT_NO_SCRIPT_INDEX</a></td>
<td class="summary">Wraps <code>HB_OT_LAYOUT_NO_SCRIPT_INDEX</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.LAYOUT_NO_FEATURE_INDEX">ot.LAYOUT_NO_FEATURE_INDEX</a></td>
<td class="summary">Wraps <code>HB_OT_LAYOUT_NO_FEATURE_INDEX</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.LAYOUT_DEFAULT_LANGUAGE_INDEX">ot.LAYOUT_DEFAULT_LANGUAGE_INDEX</a></td>
<td class="summary">Wraps <code>HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX</code></td>
</tr>
<tr>
<td class="name" nowrap><a href="#ot.LAYOUT_NO_VARIATIONS_INDEX">ot.LAYOUT_NO_VARIATIONS_INDEX</a></td>
<td class="summary">Wraps <code>HB_OT_LAYOUT_NO_VARIATIONS_INDEX</code></td>
</tr>
</table>
<br/>
<br/>
<h2 class="section-header "><a name="Functions"></a>Functions</h2>
<dl class="function">
<dt>
<a name = "version"></a>
<strong>version ()</strong>
</dt>
<dd>
Wraps <code>hb_version</code>
</dd>
<dt>
<a name = "shape"></a>
<strong>shape (font, buffer[, options])</strong>
</dt>
<dd>
Wraps <code>hb_shape</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">font</span>
<code>Font</code> to use for shaping
</li>
<li><span class="parameter">buffer</span>
<code>Buffer</code> to shape
</li>
<li><span class="parameter">options</span>
<p> table containing one or more supported options:</p>
<ul>
<li><code>direction</code>: A <code>Direction</code> object representing the object.</li>
<li><code>script</code>: A <code>Script</code> object representing the script.</li>
<li><code>language</code>: A <code>Language</code> object representing the language.</li>
<li><code>features</code>: features to enable, specified as either of the following.
<ul>
<li>comma-separated list of features. See <a href="https://github.com/ufytex/luaharfbuzz/wiki/Feature-Strings">feature string syntax reference</a></li>
<li>table of <code>Feature</code> objects</li>
</ul></li>
</ul>
(<em>optional</em>)
</li>
</ul>
</dd>
</dl>
<h2 class="section-header has-description"><a name="Class_Blob"></a>Class Blob </h2>
<div class="section-description">
Lua wrapper for <code>hb_blob_t</code> type
</div>
<dl class="function">
<dt>
<a name = "Blob.new"></a>
<strong>Blob.new (data)</strong>
</dt>
<dd>
Wraps <code>hb_blob_create</code>.
Initializes a new <code>hb_blob_t</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">data</span>
lua string containing binary or character data.
</li>
</ul>
</dd>
<dt>
<a name = "Blob.new_from_file"></a>
<strong>Blob.new_from_file (filename)</strong>
</dt>
<dd>
Wraps <code>hb_blob_create_from_file</code>.
Initializes a new <code>hb_blob_t</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">filename</span>
lua string.
</li>
</ul>
</dd>
<dt>
<a name = "Blob:get_length"></a>
<strong>Blob:get_length ()</strong>
</dt>
<dd>
Wraps <code>hb_blob_get_length</code>.
</dd>
<dt>
<a name = "Blob:get_data"></a>
<strong>Blob:get_data ()</strong>
</dt>
<dd>
Wraps <code>hb_blob_get_data</code>.
</dd>
</dl>
<h2 class="section-header has-description"><a name="Class_Face"></a>Class Face </h2>
<div class="section-description">
Lua wrapper for <code>hb_face_t</code> type
</div>
<dl class="function">
<dt>
<a name = "Face.new_from_blob"></a>
<strong>Face.new_from_blob (blob[, font_index=0])</strong>
</dt>
<dd>
Wraps <code>hb_face_create</code>.
Initializes a new <code>hb_face_t</code> from a <code>Blob</code> object.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">blob</span>
<code>Blob</code> to read the font from.
</li>
<li><span class="parameter">font_index</span>
index of font to read.
(<em>default</em> 0)
</li>
</ul>
</dd>
<dt>
<a name = "Face.new"></a>
<strong>Face.new (file[, font_index=0])</strong>
</dt>
<dd>
Create a new <code>Face</code> from a file.
Makes a call to <code>Face:new_from_blob</code> after creating a <code>Blob</code> from the
file contents.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">file</span>
path to font file.
</li>
<li><span class="parameter">font_index</span>
index of font to read.
(<em>default</em> 0)
</li>
</ul>
</dd>
<dt>
<a name = "Face:collect_unicodes"></a>
<strong>Face:collect_unicodes ()</strong>
</dt>
<dd>
Wraps <code>hb_face_collect_unicodes</code>.
<h3>Returns:</h3>
<ol>
table of codepoints supported by the face.
</ol>
</dd>
<dt>
<a name = "Face:get_glyph_count"></a>
<strong>Face:get_glyph_count ()</strong>
</dt>
<dd>
Wraps <code>hb_face_get_glyph_count</code>.
</dd>
<dt>
<a name = "Face:get_table"></a>
<strong>Face:get_table (tag)</strong>
</dt>
<dd>
Wraps <code>hb_face_reference_table</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">tag</span>
<code>Tag</code> object of the table.
</li>
</ul>
<h3>Returns:</h3>
<ol>
<code>Blob</code> object for the face table of <code>tag</code>.
</ol>
</dd>
<dt>
<a name = "Face:get_table_tags"></a>
<strong>Face:get_table_tags ()</strong>
</dt>
<dd>
Wraps <code>hb_face_get_table_tags</code>.
<h3>Returns:</h3>
<ol>
table of <code>Tag</code>s representing face table tags.
</ol>
</dd>
<dt>
<a name = "Face:get_upem"></a>
<strong>Face:get_upem ()</strong>
</dt>
<dd>
Wraps <code>hb_face_get_upem</code>.
</dd>
<dt>
<a name = "Face:ot_color_has_palettes"></a>
<strong>Face:ot_color_has_palettes ()</strong>
</dt>
<dd>
Wraps <code>hb_ot_color_has_palettes</code>.
</dd>
<dt>
<a name = "Face:ot_color_palette_get_count"></a>
<strong>Face:ot_color_palette_get_count ()</strong>
</dt>
<dd>
Wraps <code>hb_ot_color_palette_get_count</code>.
</dd>
<dt>
<a name = "Face:ot_color_palette_get_colors"></a>
<strong>Face:ot_color_palette_get_colors ()</strong>
</dt>
<dd>
Wraps <code>hb_ot_color_palette_get_colors</code>.
</dd>
<dt>
<a name = "Face:ot_color_has_layers"></a>
<strong>Face:ot_color_has_layers ()</strong>
</dt>
<dd>
Wraps <code>hb_ot_color_has_layers</code>.
</dd>
<dt>
<a name = "Face:ot_color_glyph_get_layers"></a>
<strong>Face:ot_color_glyph_get_layers ()</strong>
</dt>
<dd>
Wraps <code>hb_ot_color_glyph_get_layers</code>.
</dd>
<dt>
<a name = "Face:ot_color_has_png"></a>
<strong>Face:ot_color_has_png ()</strong>
</dt>
<dd>
Wraps <code>hb_ot_color_has_png</code>.
</dd>
<dt>
<a name = "Face:ot_layout_get_script_tags"></a>
<strong>Face:ot_layout_get_script_tags ()</strong>
</dt>
<dd>
Wraps <code>hb_ot_layout_table_get_script_tags</code>.
</dd>
<dt>
<a name = "Face:ot_layout_get_language_tags"></a>
<strong>Face:ot_layout_get_language_tags ()</strong>
</dt>
<dd>
Wraps <code>hb_ot_layout_script_get_language_tags</code>.
</dd>
<dt>
<a name = "Face:ot_layout_get_feature_tags"></a>
<strong>Face:ot_layout_get_feature_tags ()</strong>
</dt>
<dd>
Wraps <code>hb_ot_layout_language_get_feature_tags</code>.
</dd>
<dt>
<a name = "Face:ot_layout_find_script"></a>
<strong>Face:ot_layout_find_script ()</strong>
</dt>
<dd>
Wraps <code>hb_ot_layout_table_find_script</code>.
</dd>
<dt>
<a name = "Face:ot_layout_find_language"></a>
<strong>Face:ot_layout_find_language ()</strong>
</dt>
<dd>
Wraps <code>hb_ot_layout_script_find_language</code>.
</dd>
<dt>
<a name = "Face:ot_layout_find_feature"></a>
<strong>Face:ot_layout_find_feature ()</strong>
</dt>
<dd>
Wraps <code>hb_ot_layout_language_find_feature</code>.
</dd>
</dl>
<h2 class="section-header has-description"><a name="Class_Font"></a>Class Font </h2>
<div class="section-description">
Lua wrapper for <code>hb_font_t</code> type
</div>
<dl class="function">
<dt>
<a name = "Font.new"></a>
<strong>Font.new (face)</strong>
</dt>
<dd>
Wraps <code>hb_font_create</code>, and sets up some defaults for scale and shaping functions.
Initializes a new <code>hb_font_t</code> from a <code>Face</code> object. Sets the default scale
to the faces upem value, and sets the font shaping functions by
calling <code>hb_ot_font_set_funcs</code> on it.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">face</span>
<code>Face</code> object.
</li>
</ul>
</dd>
<dt>
<a name = "Font:get_scale"></a>
<strong>Font:get_scale ()</strong>
</dt>
<dd>
Wraps <code>hb_font_get_scale</code>.
<h3>Returns:</h3>
<ol>
two values for the x-scale and y-scale of the font.
</ol>
</dd>
<dt>
<a name = "Font:set_scale"></a>
<strong>Font:set_scale (x_scale, y_scale)</strong>
</dt>
<dd>
Wraps <code>hb_font_set_scale</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">x_scale</span>
desired x-scale of font.
</li>
<li><span class="parameter">y_scale</span>
desired y-scale of font.
</li>
</ul>
</dd>
<dt>
<a name = "Font:get_h_extents"></a>
<strong>Font:get_h_extents ()</strong>
</dt>
<dd>
Wraps <code>hb_font_get_h_extents</code>.
<h3>Returns:</h3>
<ol>
<p> font extents table for horizontal direction, contains the following
or <code>nil</code> if HarfBuzz fails to load font extents:</p>
<ul>
<li><code>ascender</code>: typographic ascender.</li>
<li><code>descender</code>: typographic descender.</li>
<li><code>line_gap</code>: line spacing gap.</li>
</ul>
</ol>
</dd>
<dt>
<a name = "Font:get_v_extents"></a>
<strong>Font:get_v_extents ()</strong>
</dt>
<dd>
Wraps <code>hb_font_get_v_extents</code>.
<h3>Returns:</h3>
<ol>
font extents table for vertical direction, similar to
<code>Font:get_h_extents</code>, or <code>nil</code> if HarfBuzz fails to load font extents:
</ol>
</dd>
<dt>
<a name = "Font:get_glyph_extents"></a>
<strong>Font:get_glyph_extents (glyph)</strong>
</dt>
<dd>
Wraps <code>hb_font_get_glyph_extents</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">glyph</span>
index inside the font.
</li>
</ul>
<h3>Returns:</h3>
<ol>
<p> extents table contains the following or <code>nil</code> if HarfBuzz fails to
load glyph extents:</p>
<ul>
<li><code>x_bearing</code>: left side of glyph from origin.</li>
<li><code>y_bearing</code>: top side of glyph from origin.</li>
<li><code>width</code>: distance from left to right side.</li>
<li><code>height</code>: distance from top to bottom side.</li>
</ul>
</ol>
</dd>
<dt>
<a name = "Font:get_glyph_name"></a>
<strong>Font:get_glyph_name (glyph)</strong>
</dt>
<dd>
Wraps <code>hb_font_get_glyph_name</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">glyph</span>
index inside the font.
</li>
</ul>
<h3>Returns:</h3>
<ol>
name of the glyph or nil.
</ol>
</dd>
<dt>
<a name = "Font:get_glyph_from_name"></a>
<strong>Font:get_glyph_from_name (name)</strong>
</dt>
<dd>
Wraps <code>hb_font_get_glyph_from_name</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">name</span>
of the glyph.
</li>
</ul>
<h3>Returns:</h3>
<ol>
glyph index inside the font or nil.
</ol>
</dd>
<dt>
<a name = "Font:get_glyph_h_advance"></a>
<strong>Font:get_glyph_h_advance (glyph)</strong>
</dt>
<dd>
Wraps <code>hb_font_get_glyph_h_advance</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">glyph</span>
index inside the font.
</li>
</ul>
<h3>Returns:</h3>
<ol>
advance glyph advance of the glyph in horizontal direction.
</ol>
</dd>
<dt>
<a name = "Font:get_glyph_v_advance"></a>
<strong>Font:get_glyph_v_advance (glyph)</strong>
</dt>
<dd>
Wraps <code>hb_font_get_glyph_v_advance</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">glyph</span>
index inside the font.
</li>
</ul>
<h3>Returns:</h3>
<ol>
advance glyph advance of the glyph in vertical direction.
</ol>
</dd>
<dt>
<a name = "Font:get_nominal_glyph"></a>
<strong>Font:get_nominal_glyph (codepoint.)</strong>
</dt>
<dd>
Wraps <code>hb_font_get_nominal_glyph</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">codepoint.</span>
</li>
</ul>
<h3>Returns:</h3>
<ol>
glyph index or <code>nil</code> if <code>codepoint</code> is not supported by the font.
</ol>
</dd>
<dt>
<a name = "Font:ot_color_glyph_get_png"></a>
<strong>Font:ot_color_glyph_get_png ()</strong>
</dt>
<dd>
Wraps <code>hb_ot_color_glyph_get_png</code>.
</dd>
</dl>
<h2 class="section-header has-description"><a name="Class_Buffer"></a>Class Buffer </h2>
<div class="section-description">
Lua wrapper for <code>hb_buffer_t</code> type.
</div>
<dl class="function">
<dt>
<a name = "Buffer.new"></a>
<strong>Buffer.new ()</strong>
</dt>
<dd>
Wraps <code>hb_buffer_create</code>.
</dd>
<dt>
<a name = "Buffer:add_utf8"></a>
<strong>Buffer:add_utf8 (text[, item_offset=0[, item_length=-1]])</strong>
</dt>
<dd>
Wraps <code>hb_buffer_add_utf8</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">text</span>
UTF8 encoded string.
</li>
<li><span class="parameter">item_offset</span>
0-indexed offset in <code>text</code>, from where to start adding.
(<em>default</em> 0)
</li>
<li><span class="parameter">item_length</span>
length to add from <code>item_offset</code>. <code>-1</code> adds till end of <code>text</code>.
(<em>default</em> -1)
</li>
</ul>
</dd>
<dt>
<a name = "Buffer:add_codepoints"></a>
<strong>Buffer:add_codepoints (text[, item_offset=0[, item_length=-1]])</strong>
</dt>
<dd>
Wraps <code>hb_buffer_add_codepoints</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">text</span>
table with codepoints as lua numbers.
</li>
<li><span class="parameter">item_offset</span>
0-indexed offset in <code>text</code>, from where to start adding.
(<em>default</em> 0)
</li>
<li><span class="parameter">item_length</span>
length to add from <code>item_offset</code>. <code>-1</code> adds till end of&nbsp;<code>text</code>.
(<em>default</em> -1)
</li>
</ul>
</dd>
<dt>
<a name = "Buffer:set_direction"></a>
<strong>Buffer:set_direction (dir)</strong>
</dt>
<dd>
Wraps <code>hb_buffer_set_direction</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">dir</span>
A <code>Direction</code> object.
</li>
</ul>
</dd>
<dt>
<a name = "Buffer:get_direction"></a>
<strong>Buffer:get_direction ()</strong>
</dt>
<dd>
Wraps <code>hb_buffer_get_direction</code>.
<h3>Returns:</h3>
<ol>
A <code>Direction</code> object.
</ol>
</dd>
<dt>
<a name = "Buffer:set_script"></a>
<strong>Buffer:set_script (script)</strong>
</dt>
<dd>
Wraps <code>hb_buffer_set_script</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">script</span>
A <code>Script</code> object.
</li>
</ul>
</dd>
<dt>
<a name = "Buffer:get_script"></a>
<strong>Buffer:get_script ()</strong>
</dt>
<dd>
Wraps <code>hb_buffer_get_script</code>.
<h3>Returns:</h3>
<ol>
A <code>Script</code> object.
</ol>
</dd>
<dt>
<a name = "Buffer:set_language"></a>
<strong>Buffer:set_language (lang)</strong>
</dt>
<dd>
Wraps <code>hb_buffer_set_language</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">lang</span>
A <code>Language</code> object
</li>
</ul>
</dd>
<dt>
<a name = "Buffer:get_language"></a>
<strong>Buffer:get_language ()</strong>
</dt>
<dd>
Wraps <code>hb_buffer_get_language</code>.
<h3>Returns:</h3>
<ol>
A <code>Language</code> object
</ol>
</dd>
<dt>
<a name = "Buffer:reverse"></a>
<strong>Buffer:reverse ()</strong>
</dt>
<dd>
Wraps <code>hb_buffer_reverse</code>.
</dd>
<dt>
<a name = "Buffer:get_length"></a>
<strong>Buffer:get_length ()</strong>
</dt>
<dd>
Wraps <code>hb_buffer_get_length</code>.
</dd>
<dt>
<a name = "Buffer:get_cluster_level"></a>
<strong>Buffer:get_cluster_level ()</strong>
</dt>
<dd>
Wraps <code>hb_buffer_get_cluster_level</code>.
<h3>Returns:</h3>
<ol>
see <a href="#Cluster_Levels">Cluster Levels</a>
</ol>
</dd>
<dt>
<a name = "Buffer:set_cluster_level"></a>
<strong>Buffer:set_cluster_level (level)</strong>
</dt>
<dd>
Wraps <code>hb_buffer_set_cluster_level</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">level</span>
see <a href="#Cluster_Levels">Cluster Levels</a>
</li>
</ul>
</dd>
<dt>
<a name = "Buffer:guess_segment_properties"></a>
<strong>Buffer:guess_segment_properties ()</strong>
</dt>
<dd>
Wraps <code>hb_buffer_guess_segment_properties</code>.
</dd>
<dt>
<a name = "Buffer:get_glyphs"></a>
<strong>Buffer:get_glyphs ()</strong>
</dt>
<dd>
Helper method to get shaped glyph data.
Calls <code>hb_buffer_get_glyph_infos</code>, <code>hb_buffer_get_glyph_positions</code> and
<code>hb_glyph_info_get_glyph_flags</code>, and assembles the data into a Lua table.
<h3>Returns:</h3>
<ol>
<p> table containing data for each glyph, in a nested table. Each nested
table contains the following:</p>
<ul>
<li><code>x_advance</code>: horizontal advance.</li>
<li><code>y_advance</code>: vertical advance.</li>
<li><code>x_offset</code>: horizontal displacement.</li>
<li><code>y_offset</code>: vertical displacement.</li>
<li><code>cluster</code>: glyph cluster index within input.</li>
<li><code>codepoint</code>: glyph index inside the font <em>(this field name is a bit misleading, but thats what Harfbuzz uses)</em>.</li>
<li><code>flags</code>: glyph flags</li>
</ul>
</ol>
</dd>
</dl>
<h2 class="section-header has-description"><a name="Cluster_Levels"></a>Cluster Levels </h2>
<div class="section-description">
See <a href="http://behdad.github.io/harfbuzz/clusters.html">Harfbuzz docs</a> for more details
about what each of these levels mean.
</div>
<dl class="function">
<dt>
<a name = "Buffer.CLUSTER_LEVEL_MONOTONE_GRAPHEMES"></a>
<strong>Buffer.CLUSTER_LEVEL_MONOTONE_GRAPHEMES</strong>
</dt>
<dd>
Wraps <code>HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES</code>.
</dd>
<dt>
<a name = "Buffer.CLUSTER_LEVEL_MONOTONE_CHARACTERS"></a>
<strong>Buffer.CLUSTER_LEVEL_MONOTONE_CHARACTERS</strong>
</dt>
<dd>
Wraps <code>HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS</code>.
</dd>
<dt>
<a name = "Buffer.CLUSTER_LEVEL_CHARACTERS"></a>
<strong>Buffer.CLUSTER_LEVEL_CHARACTERS</strong>
</dt>
<dd>
Wraps <code>HB_BUFFER_CLUSTER_LEVEL_CHARACTERS</code>.
</dd>
<dt>
<a name = "Buffer.CLUSTER_LEVEL_DEFAULT"></a>
<strong>Buffer.CLUSTER_LEVEL_DEFAULT</strong>
</dt>
<dd>
Wraps <code>HB_BUFFER_CLUSTER_LEVEL_DEFAULT</code>.
</dd>
<dt>
<a name = "Buffer.GLYPH_FLAG_UNSAFE_TO_BREAK"></a>
<strong>Buffer.GLYPH_FLAG_UNSAFE_TO_BREAK</strong>
</dt>
<dd>
Wraps <code>HB_GLYPH_FLAG_UNSAFE_TO_BREAK</code>.
</dd>
<dt>
<a name = "Buffer.GLYPH_FLAG_DEFINED"></a>
<strong>Buffer.GLYPH_FLAG_DEFINED</strong>
</dt>
<dd>
Wraps <code>HB_GLYPH_FLAG_DEFINED</code>.
</dd>
</dl>
<h2 class="section-header has-description"><a name="Class_Feature"></a>Class Feature </h2>
<div class="section-description">
Lua wrapper for <code>hb_feature_t</code> type
</div>
<dl class="function">
<dt>
<a name = "Feature.new"></a>
<strong>Feature.new (feature_string)</strong>
</dt>
<dd>
Wraps <code>hb_feature_from_string</code>
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">feature_string</span>
See <a href="https://github.com/ufytex/luaharfbuzz/wiki/Feature-Strings">feature string syntax reference</a>
</li>
</ul>
</dd>
<dt>
<a name = "Feature:__tostring"></a>
<strong>Feature:__tostring ()</strong>
</dt>
<dd>
Wraps <code>hb_feature_to_string</code>.
Enables nice output with <code>tostring(…)</code>.
</dd>
</dl>
<h2 class="section-header has-description"><a name="Class_Tag"></a>Class Tag </h2>
<div class="section-description">
Lua wrapper for <code>hb_tag_t</code> type.
</div>
<dl class="function">
<dt>
<a name = "Tag.new"></a>
<strong>Tag.new (string)</strong>
</dt>
<dd>
Wraps <code>hb_tag_from_string</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">string</span>
to be converted to a <code>Tag</code> object.
</li>
</ul>
<h3>Returns:</h3>
<ol>
a <code>Tag</code> object.
</ol>
</dd>
<dt>
<a name = "Tag:__to_string"></a>
<strong>Tag:__to_string ()</strong>
</dt>
<dd>
Wraps <code>hb_tag_to_string</code>. Enable nice output with <code>tostring(…)</code>.
<h3>Returns:</h3>
<ol>
Returns a string representation for the tag object.
</ol>
</dd>
<dt>
<a name = "Tag:__eq"></a>
<strong>Tag:__eq ()</strong>
</dt>
<dd>
Enables equality comparisions with <code>==</code> between two tags.
<h3>Returns:</h3>
<ol>
<code>true</code> or <code>false</code> depending on whether the two tags are equal.
</ol>
</dd>
</dl>
<h2 class="section-header has-description"><a name="Class_Script"></a>Class Script </h2>
<div class="section-description">
Lua wrapper for <code>hb_script_t</code> type.
</div>
<dl class="function">
<dt>
<a name = "Script.new"></a>
<strong>Script.new (script)</strong>
</dt>
<dd>
Wraps <code>hb_script_from_string</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">script</span>
4-letter script code according to the <a href="http://www.unicode.org/iso15924/iso15924-num.html">ISO 15924 standard</a>.
</li>
</ul>
<h3>Returns:</h3>
<ol>
a <code>Script</code> object.
</ol>
</dd>
<dt>
<a name = "Script.from_iso15924_tag"></a>
<strong>Script.from_iso15924_tag (tag)</strong>
</dt>
<dd>
Wraps <code>hb_script_from_iso15924_tag</code>
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">tag</span>
a <code>Tag</code> object representing a <a href="http://www.unicode.org/iso15924/iso15924-num.html">ISO 15924 script</a>.
</li>
</ul>
</dd>
<dt>
<a name = "Script:to_iso15924_tag"></a>
<strong>Script:to_iso15924_tag ()</strong>
</dt>
<dd>
Wraps <code>hb_script_to_iso15924_tag</code>.
<h3>Returns:</h3>
<ol>
a <code>Tag</code> object representing the script.
</ol>
</dd>
<dt>
<a name = "Script:__to_string"></a>
<strong>Script:__to_string ()</strong>
</dt>
<dd>
Enable nice output with <code>tostring(…)</code>
<h3>Returns:</h3>
<ol>
Returns a 4-letter <a href="http://www.unicode.org/iso15924/iso15924-num.html">ISO 15924 script code</a> for the script object.
</ol>
</dd>
<dt>
<a name = "Script:__eq"></a>
<strong>Script:__eq ()</strong>
</dt>
<dd>
Enables equality comparisions with <code>==</code> between two scripts.
<h3>Returns:</h3>
<ol>
<code>true</code> or <code>false</code> depending on whether the two scripts are equal.
</ol>
</dd>
</dl>
<h2 class="section-header has-description"><a name="Predefined_Script_Codes"></a>Predefined Script Codes </h2>
<div class="section-description">
Predefined directions that correspond to their original definitions in Harfbuzz.
</div>
<dl class="function">
<dt>
<a name = "Script.COMMON"></a>
<strong>Script.COMMON</strong>
</dt>
<dd>
Wraps <code>HB_SCRIPT_COMMON</code>.
</dd>
<dt>
<a name = "Script.INHERITED"></a>
<strong>Script.INHERITED</strong>
</dt>
<dd>
Wraps <code>HB_SCRIPT_INHERITED</code>.
</dd>
<dt>
<a name = "Script.UNKNOWN"></a>
<strong>Script.UNKNOWN</strong>
</dt>
<dd>
Wraps <code>HB_SCRIPT_UNKNOWN</code>.
</dd>
<dt>
<a name = "Script.INVALID"></a>
<strong>Script.INVALID</strong>
</dt>
<dd>
Wraps <code>HB_SCRIPT_INVALID</code>.
</dd>
</dl>
<h2 class="section-header has-description"><a name="Class_Direction"></a>Class Direction </h2>
<div class="section-description">
Lua wrapper for <code>hb_direction_t</code> type.
</div>
<dl class="function">
<dt>
<a name = "Direction.new"></a>
<strong>Direction.new (dir)</strong>
</dt>
<dd>
Wraps <code>hb_direction_from_string</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">dir</span>
can be one of <code>ltr</code>, <code>rtl</code>, <code>ttb</code>, <code>btt</code> or <code>invalid</code>.
</li>
</ul>
<h3>Returns:</h3>
<ol>
a <code>Direction</code> object.
</ol>
</dd>
<dt>
<a name = "Direction:__to_string"></a>
<strong>Direction:__to_string ()</strong>
</dt>
<dd>
Wraps <code>hb_direction_to_string</code>. Enable nice output with <code>tostring(…)</code>.
<h3>Returns:</h3>
<ol>
Returns a string representation for direction.
</ol>
</dd>
<dt>
<a name = "Direction:__eq"></a>
<strong>Direction:__eq ()</strong>
</dt>
<dd>
Enables equality comparisions with <code>==</code> between two directions.
<h3>Returns:</h3>
<ol>
<code>true</code> or <code>false</code> depending on whether the two tags are equal.
</ol>
</dd>
<dt>
<a name = "Direction:is_valid"></a>
<strong>Direction:is_valid ()</strong>
</dt>
<dd>
Wraps <code>HB_DIRECTION_IS_VALID</code>.
<h3>Returns:</h3>
<ol>
a boolean value
</ol>
</dd>
<dt>
<a name = "Direction:is_horizontal"></a>
<strong>Direction:is_horizontal ()</strong>
</dt>
<dd>
Wraps <code>HB_DIRECTION_IS_HORIZONTAL</code>.
<h3>Returns:</h3>
<ol>
a boolean value
</ol>
</dd>
<dt>
<a name = "Direction:is_vertical"></a>
<strong>Direction:is_vertical ()</strong>
</dt>
<dd>
Wraps <code>HB_DIRECTION_IS_VERTICAL</code>.
<h3>Returns:</h3>
<ol>
a boolean value
</ol>
</dd>
<dt>
<a name = "Direction:is_forward"></a>
<strong>Direction:is_forward ()</strong>
</dt>
<dd>
Wraps <code>HB_DIRECTION_IS_FORWARD</code>.
<h3>Returns:</h3>
<ol>
a boolean value
</ol>
</dd>
<dt>
<a name = "Direction:is_backward"></a>
<strong>Direction:is_backward ()</strong>
</dt>
<dd>
Wraps <code>HB_DIRECTION_IS_BACKWARD</code>.
<h3>Returns:</h3>
<ol>
a boolean value
</ol>
</dd>
</dl>
<h2 class="section-header has-description"><a name="Predefined_directions"></a>Predefined directions </h2>
<div class="section-description">
Predefined directions that correspond to their original definitions in Harfbuzz.
</div>
<dl class="function">
<dt>
<a name = "Direction.LTR"></a>
<strong>Direction.LTR</strong>
</dt>
<dd>
Wraps <code>HB_DIRECTION_LTR</code>.
</dd>
<dt>
<a name = "Direction.RTL"></a>
<strong>Direction.RTL</strong>
</dt>
<dd>
Wraps <code>HB_DIRECTION_RTL</code>.
</dd>
<dt>
<a name = "Direction.TTB"></a>
<strong>Direction.TTB</strong>
</dt>
<dd>
Wraps <code>HB_DIRECTION_TTB</code>.
</dd>
<dt>
<a name = "Direction.BTT"></a>
<strong>Direction.BTT</strong>
</dt>
<dd>
Wraps <code>HB_DIRECTION_LTR</code>.
</dd>
</dl>
<h2 class="section-header has-description"><a name="Class_Language"></a>Class Language </h2>
<div class="section-description">
Lua wrapper for <code>hb_language_t</code> type.
</div>
<dl class="function">
<dt>
<a name = "Language.new"></a>
<strong>Language.new (lang)</strong>
</dt>
<dd>
Wraps <code>hb_language_from_string</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">lang</span>
<a href="http://www.microsoft.com/typography/otspec/languagetags.htm">three-letter language tag</a> to be converted to a <code>Language</code> object.
</li>
</ul>
<h3>Returns:</h3>
<ol>
a <code>Language</code> object.
</ol>
</dd>
<dt>
<a name = "Language:__to_string"></a>
<strong>Language:__to_string ()</strong>
</dt>
<dd>
Wraps <code>hb_language_to_string</code>. Enable nice output with <code>tostring(…)</code>.
<h3>Returns:</h3>
<ol>
Returns a string representation for the language object.
</ol>
</dd>
<dt>
<a name = "Language:__eq"></a>
<strong>Language:__eq ()</strong>
</dt>
<dd>
Enables equality comparisions with <code>==</code> between two languages.
<h3>Returns:</h3>
<ol>
<code>true</code> or <code>false</code> depending on whether the two languages are equal.
</ol>
</dd>
</dl>
<h2 class="section-header has-description"><a name="Predefined_languages"></a>Predefined languages </h2>
<div class="section-description">
Predefined languages that correspond to their original definitions in Harfbuzz.
</div>
<dl class="function">
<dt>
<a name = "Language.INVALID"></a>
<strong>Language.INVALID</strong>
</dt>
<dd>
Wraps <code>HB_LANGUAGE_INVALID</code>.
</dd>
</dl>
<h2 class="section-header "><a name="Unicode_functions"></a>Unicode functions </h2>
<dl class="function">
<dt>
<a name = "unicode.script"></a>
<strong>unicode.script (char)</strong>
</dt>
<dd>
Wraps <code>hb_unicode_script</code>
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">char</span>
Unicode codepoint
</li>
</ul>
<h3>Returns:</h3>
<ol>
a <code>Script</code> object.
</ol>
</dd>
</dl>
<h2 class="section-header has-description"><a name="Predefined_Name_IDs"></a>Predefined Name IDs </h2>
<div class="section-description">
Predefined OpenType 'name' table name identifier.
</div>
<dl class="function">
<dt>
<a name = "ot.NAME_ID_COPYRIGHT"></a>
<strong>ot.NAME_ID_COPYRIGHT</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_COPYRIGHT</code>
</dd>
<dt>
<a name = "ot.NAME_ID_FONT_FAMILY"></a>
<strong>ot.NAME_ID_FONT_FAMILY</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_FONT_FAMILY</code>
</dd>
<dt>
<a name = "ot.NAME_ID_FONT_SUBFAMILY"></a>
<strong>ot.NAME_ID_FONT_SUBFAMILY</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_FONT_SUBFAMILY</code>
</dd>
<dt>
<a name = "ot.NAME_ID_UNIQUE_ID"></a>
<strong>ot.NAME_ID_UNIQUE_ID</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_UNIQUE_ID</code>
</dd>
<dt>
<a name = "ot.NAME_ID_FULL_NAME"></a>
<strong>ot.NAME_ID_FULL_NAME</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_FULL_NAME</code>
</dd>
<dt>
<a name = "ot.NAME_ID_VERSION_STRING"></a>
<strong>ot.NAME_ID_VERSION_STRING</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_VERSION_STRING</code>
</dd>
<dt>
<a name = "ot.NAME_ID_POSTSCRIPT_NAME"></a>
<strong>ot.NAME_ID_POSTSCRIPT_NAME</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_POSTSCRIPT_NAME</code>
</dd>
<dt>
<a name = "ot.NAME_ID_TRADEMARK"></a>
<strong>ot.NAME_ID_TRADEMARK</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_TRADEMARK</code>
</dd>
<dt>
<a name = "ot.NAME_ID_MANUFACTURER"></a>
<strong>ot.NAME_ID_MANUFACTURER</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_MANUFACTURER</code>
</dd>
<dt>
<a name = "ot.NAME_ID_DESIGNER"></a>
<strong>ot.NAME_ID_DESIGNER</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_DESIGNER</code>
</dd>
<dt>
<a name = "ot.NAME_ID_DESCRIPTION"></a>
<strong>ot.NAME_ID_DESCRIPTION</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_DESCRIPTION</code>
</dd>
<dt>
<a name = "ot.NAME_ID_VENDOR_URL"></a>
<strong>ot.NAME_ID_VENDOR_URL</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_VENDOR_URL</code>
</dd>
<dt>
<a name = "ot.NAME_ID_DESIGNER_URL"></a>
<strong>ot.NAME_ID_DESIGNER_URL</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_DESIGNER_URL</code>
</dd>
<dt>
<a name = "ot.NAME_ID_LICENSE"></a>
<strong>ot.NAME_ID_LICENSE</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_LICENSE</code>
</dd>
<dt>
<a name = "ot.NAME_ID_LICENSE_URL"></a>
<strong>ot.NAME_ID_LICENSE_URL</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_LICENSE_URL</code>
</dd>
<dt>
<a name = "ot.NAME_ID_TYPOGRAPHIC_FAMILY"></a>
<strong>ot.NAME_ID_TYPOGRAPHIC_FAMILY</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY</code>
</dd>
<dt>
<a name = "ot.NAME_ID_TYPOGRAPHIC_SUBFAMILY"></a>
<strong>ot.NAME_ID_TYPOGRAPHIC_SUBFAMILY</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY</code>
</dd>
<dt>
<a name = "ot.NAME_ID_MAC_FULL_NAME"></a>
<strong>ot.NAME_ID_MAC_FULL_NAME</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_MAC_FULL_NAME</code>
</dd>
<dt>
<a name = "ot.NAME_ID_SAMPLE_TEXT"></a>
<strong>ot.NAME_ID_SAMPLE_TEXT</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_SAMPLE_TEXT</code>
</dd>
<dt>
<a name = "ot.NAME_ID_CID_FINDFONT_NAME"></a>
<strong>ot.NAME_ID_CID_FINDFONT_NAME</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_CID_FINDFONT_NAME</code>
</dd>
<dt>
<a name = "ot.NAME_ID_WWS_FAMILY"></a>
<strong>ot.NAME_ID_WWS_FAMILY</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_WWS_FAMILY</code>
</dd>
<dt>
<a name = "ot.NAME_ID_WWS_SUBFAMILY"></a>
<strong>ot.NAME_ID_WWS_SUBFAMILY</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_WWS_SUBFAMILY</code>
</dd>
<dt>
<a name = "ot.NAME_ID_LIGHT_BACKGROUND"></a>
<strong>ot.NAME_ID_LIGHT_BACKGROUND</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_LIGHT_BACKGROUND</code>
</dd>
<dt>
<a name = "ot.NAME_ID_DARK_BACKGROUND"></a>
<strong>ot.NAME_ID_DARK_BACKGROUND</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_DARK_BACKGROUND</code>
</dd>
<dt>
<a name = "ot.NAME_ID_VARIATIONS_PS_PREFIX"></a>
<strong>ot.NAME_ID_VARIATIONS_PS_PREFIX</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_VARIATIONS_PS_PREFIX</code>
</dd>
<dt>
<a name = "ot.NAME_ID_INVALID"></a>
<strong>ot.NAME_ID_INVALID</strong>
</dt>
<dd>
Wraps <code>HB_OT_NAME_ID_INVALID</code>
</dd>
<dt>
<a name = "ot.LAYOUT_NO_SCRIPT_INDEX"></a>
<strong>ot.LAYOUT_NO_SCRIPT_INDEX</strong>
</dt>
<dd>
Wraps <code>HB_OT_LAYOUT_NO_SCRIPT_INDEX</code>
</dd>
<dt>
<a name = "ot.LAYOUT_NO_FEATURE_INDEX"></a>
<strong>ot.LAYOUT_NO_FEATURE_INDEX</strong>
</dt>
<dd>
Wraps <code>HB_OT_LAYOUT_NO_FEATURE_INDEX</code>
</dd>
<dt>
<a name = "ot.LAYOUT_DEFAULT_LANGUAGE_INDEX"></a>
<strong>ot.LAYOUT_DEFAULT_LANGUAGE_INDEX</strong>
</dt>
<dd>
Wraps <code>HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX</code>
</dd>
<dt>
<a name = "ot.LAYOUT_NO_VARIATIONS_INDEX"></a>
<strong>ot.LAYOUT_NO_VARIATIONS_INDEX</strong>
</dt>
<dd>
Wraps <code>HB_OT_LAYOUT_NO_VARIATIONS_INDEX</code>
</dd>
</dl>
</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
<i style="float:right;">Last updated 2019-07-31 18:39:39 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>