<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
- <meta name="description" content="API Reference Documentation for FreeType-2.10.1">
+ <meta name="description" content="API Reference Documentation for FreeType-2.10.4">
<meta name="lang:search.tokenizer" content="[\s\-]+">
<link rel="shortcut icon" href="images/favico.ico">
- <meta name="generator" content="mkdocs-1.0.4, mkdocs-material-4.0.2">
+ <meta name="generator" content="mkdocs-1.1, mkdocs-material-4.6.3">
- <title>TrueTypeGX/AAT Validation - FreeType-2.10.1 API Reference</title>
+ <title>TrueTypeGX/AAT Validation - FreeType-2.10.4 API Reference</title>
- <link rel="stylesheet" href="assets/stylesheets/application.982221ab.css">
+ <link rel="stylesheet" href="assets/stylesheets/application.adb8469c.css">
- <link rel="stylesheet" href="assets/stylesheets/application-palette.224b79ff.css">
+ <link rel="stylesheet" href="assets/stylesheets/application-palette.a8b3c06d.css">
- <script src="assets/javascripts/modernizr.1f0bcf2b.js"></script>
+ <script src="assets/javascripts/modernizr.86422ebf.js"></script>
<link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
- <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Serif:300,400,400i,700|Roboto+Mono">
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Serif:300,400,400i,700%7CRoboto+Mono&display=fallback">
<style>body,input{font-family:"Noto Serif","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
- <a href="#truetypegxaat-validation" tabindex="1" class="md-skip">
+ <a href="#truetypegxaat-validation" tabindex="0" class="md-skip">
Skip to content
</a>
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
- <a href="index.html" title="FreeType-2.10.1 API Reference" class="md-header-nav__button md-logo">
+ <a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
- <img src="images/favico.ico" width="24" height="24">
+ <img alt="logo" src="images/favico.ico" width="24" height="24">
</a>
</div>
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
- FreeType-2.10.1 API Reference
+ FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
- TrueTypeGX/AAT Validation
+
+ TrueTypeGX/AAT Validation
+
</span>
</div>
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
- <input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
+ <input type="text" class="md-search__input" aria-label="search" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
<label class="md-icon md-search__icon" for="__search"></label>
<button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">

- <main class="md-main">
+ <main class="md-main" role="main">
<div class="md-main__inner md-grid" data-md-component="container">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
- <a href="index.html" title="FreeType-2.10.1 API Reference" class="md-nav__button md-logo">
+ <a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
- <img src="images/favico.ico" width="48" height="48">
+ <img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
- FreeType-2.10.1 API Reference
+ FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
-
- <li class="md-nav__item">
- <a href="ft2-ot_validation.html" title="OpenType Validation" class="md-nav__link">
- OpenType Validation
- </a>
- </li>
-
-
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-incremental.html" title="Incremental Loading" class="md-nav__link">
- Incremental Loading
- </a>
- </li>
-
-
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-nav__link">
- The TrueType Engine
- </a>
- </li>
-
-
-
-
-
-
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
- <a href="#synopsis" title="Synopsis" class="md-nav__link">
+ <a href="#synopsis" class="md-nav__link">
Synopsis
</a>
</li>
<li class="md-nav__item">
- <a href="#ft_truetypegx_validate" title="FT_TrueTypeGX_Validate" class="md-nav__link">
+ <a href="#ft_truetypegx_validate" class="md-nav__link">
FT_TrueTypeGX_Validate
</a>
</li>
<li class="md-nav__item">
- <a href="#ft_truetypegx_free" title="FT_TrueTypeGX_Free" class="md-nav__link">
+ <a href="#ft_truetypegx_free" class="md-nav__link">
FT_TrueTypeGX_Free
</a>
</li>
<li class="md-nav__item">
- <a href="#ft_classickern_validate" title="FT_ClassicKern_Validate" class="md-nav__link">
+ <a href="#ft_classickern_validate" class="md-nav__link">
FT_ClassicKern_Validate
</a>
</li>
<li class="md-nav__item">
- <a href="#ft_classickern_free" title="FT_ClassicKern_Free" class="md-nav__link">
+ <a href="#ft_classickern_free" class="md-nav__link">
FT_ClassicKern_Free
</a>
</li>
<li class="md-nav__item">
- <a href="#ft_validate_gx_length" title="FT_VALIDATE_GX_LENGTH" class="md-nav__link">
+ <a href="#ft_validate_gx_length" class="md-nav__link">
FT_VALIDATE_GX_LENGTH
</a>
</li>
<li class="md-nav__item">
- <a href="#ft_validate_gxxxx" title="FT_VALIDATE_GXXXX" class="md-nav__link">
+ <a href="#ft_validate_gxxxx" class="md-nav__link">
FT_VALIDATE_GXXXX
</a>
</li>
<li class="md-nav__item">
- <a href="#ft_validate_ckernxxx" title="FT_VALIDATE_CKERNXXX" class="md-nav__link">
+ <a href="#ft_validate_ckernxxx" class="md-nav__link">
FT_VALIDATE_CKERNXXX
</a>
</li>
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-incremental.html" title="Incremental Loading" class="md-nav__link">
+ Incremental Loading
+ </a>
+ </li>
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-nav__link">
+ The TrueType Engine
+ </a>
+ </li>
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-ot_validation.html" title="OpenType Validation" class="md-nav__link">
+ OpenType Validation
+ </a>
+ </li>
+
+
</ul>
</nav>
</li>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
- <a href="#synopsis" title="Synopsis" class="md-nav__link">
+ <a href="#synopsis" class="md-nav__link">
Synopsis
</a>
</li>
<li class="md-nav__item">
- <a href="#ft_truetypegx_validate" title="FT_TrueTypeGX_Validate" class="md-nav__link">
+ <a href="#ft_truetypegx_validate" class="md-nav__link">
FT_TrueTypeGX_Validate
</a>
</li>
<li class="md-nav__item">
- <a href="#ft_truetypegx_free" title="FT_TrueTypeGX_Free" class="md-nav__link">
+ <a href="#ft_truetypegx_free" class="md-nav__link">
FT_TrueTypeGX_Free
</a>
</li>
<li class="md-nav__item">
- <a href="#ft_classickern_validate" title="FT_ClassicKern_Validate" class="md-nav__link">
+ <a href="#ft_classickern_validate" class="md-nav__link">
FT_ClassicKern_Validate
</a>
</li>
<li class="md-nav__item">
- <a href="#ft_classickern_free" title="FT_ClassicKern_Free" class="md-nav__link">
+ <a href="#ft_classickern_free" class="md-nav__link">
FT_ClassicKern_Free
</a>
</li>
<li class="md-nav__item">
- <a href="#ft_validate_gx_length" title="FT_VALIDATE_GX_LENGTH" class="md-nav__link">
+ <a href="#ft_validate_gx_length" class="md-nav__link">
FT_VALIDATE_GX_LENGTH
</a>
</li>
<li class="md-nav__item">
- <a href="#ft_validate_gxxxx" title="FT_VALIDATE_GXXXX" class="md-nav__link">
+ <a href="#ft_validate_gxxxx" class="md-nav__link">
FT_VALIDATE_GXXXX
</a>
</li>
<li class="md-nav__item">
- <a href="#ft_validate_ckernxxx" title="FT_VALIDATE_CKERNXXX" class="md-nav__link">
+ <a href="#ft_validate_ckernxxx" class="md-nav__link">
FT_VALIDATE_CKERNXXX
</a>
<p>This section contains the declaration of functions to validate some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, trak, prop, lcar).</p>
<h2 id="ft_truetypegx_validate">FT_TrueTypeGX_Validate<a class="headerlink" href="#ft_truetypegx_validate" title="Permanent link">¶</a></h2>
<p>Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).</p>
-<div class = "codehilite">
-<pre>
- FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
+<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
<b>FT_TrueTypeGX_Validate</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a> face,
<a href="ft2-basic_types.html#ft_uint">FT_UInt</a> validation_flags,
<a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a> tables[<a href="ft2-gx_validation.html#ft_validate_gx_length">FT_VALIDATE_GX_LENGTH</a>],
<a href="ft2-basic_types.html#ft_uint">FT_UInt</a> table_length );
-</pre>
-</div>
+</code></pre></div>
<p>Validate various TrueTypeGX tables to assure that all offsets and indices are valid. The idea is that a higher-level library that actually does the text layout can access those tables without error checking (which can be quite time consuming).</p>
<h4>input</h4>
<h2 id="ft_truetypegx_free">FT_TrueTypeGX_Free<a class="headerlink" href="#ft_truetypegx_free" title="Permanent link">¶</a></h2>
<p>Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).</p>
-<div class = "codehilite">
-<pre>
- FT_EXPORT( <span class="keyword">void</span> )
+<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> )
<b>FT_TrueTypeGX_Free</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a> face,
<a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a> table );
-</pre>
-</div>
+</code></pre></div>
<p>Free the buffer allocated by TrueTypeGX validator.</p>
<h4>input</h4>
<h2 id="ft_classickern_validate">FT_ClassicKern_Validate<a class="headerlink" href="#ft_classickern_validate" title="Permanent link">¶</a></h2>
<p>Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).</p>
-<div class = "codehilite">
-<pre>
- FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
+<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
<b>FT_ClassicKern_Validate</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a> face,
<a href="ft2-basic_types.html#ft_uint">FT_UInt</a> validation_flags,
<a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a> *ckern_table );
-</pre>
-</div>
+</code></pre></div>
<p>Validate classic (16-bit format) kern table to assure that the offsets and indices are valid. The idea is that a higher-level library that actually does the text layout can access those tables without error checking (which can be quite time consuming).</p>
<p>The ‘kern’ table validator in <code><a href="ft2-gx_validation.html#ft_truetypegx_validate">FT_TrueTypeGX_Validate</a></code> deals with both the new 32-bit format and the classic 16-bit format, while FT_ClassicKern_Validate only supports the classic 16-bit format.</p>
<h2 id="ft_classickern_free">FT_ClassicKern_Free<a class="headerlink" href="#ft_classickern_free" title="Permanent link">¶</a></h2>
<p>Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).</p>
-<div class = "codehilite">
-<pre>
- FT_EXPORT( <span class="keyword">void</span> )
+<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> )
<b>FT_ClassicKern_Free</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a> face,
<a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a> table );
-</pre>
-</div>
+</code></pre></div>
<p>Free the buffer allocated by classic Kern validator.</p>
<h4>input</h4>
<h2 id="ft_validate_gx_length">FT_VALIDATE_GX_LENGTH<a class="headerlink" href="#ft_validate_gx_length" title="Permanent link">¶</a></h2>
<p>Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).</p>
-<div class = "codehilite">
-<pre>
-#<span class="keyword">define</span> <b>FT_VALIDATE_GX_LENGTH</b> ( FT_VALIDATE_GX_LAST_INDEX + 1 )
-</pre>
-</div>
+<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_VALIDATE_GX_LENGTH</b> ( FT_VALIDATE_GX_LAST_INDEX + 1 )
+</code></pre></div>
<p>The number of tables checked in this module. Use it as a parameter for the <code>table-length</code> argument of function <code><a href="ft2-gx_validation.html#ft_truetypegx_validate">FT_TrueTypeGX_Validate</a></code>.</p>
<hr>
<h2 id="ft_validate_gxxxx">FT_VALIDATE_GXXXX<a class="headerlink" href="#ft_validate_gxxxx" title="Permanent link">¶</a></h2>
<p>Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).</p>
-<div class = "codehilite">
-<pre>
-#<span class="keyword">define</span> <a href="ft2-gx_validation.html#ft_validate_feat">FT_VALIDATE_feat</a> FT_VALIDATE_GX_BITFIELD( feat )
+<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-gx_validation.html#ft_validate_feat">FT_VALIDATE_feat</a> FT_VALIDATE_GX_BITFIELD( feat )
#<span class="keyword">define</span> <a href="ft2-gx_validation.html#ft_validate_mort">FT_VALIDATE_mort</a> FT_VALIDATE_GX_BITFIELD( mort )
#<span class="keyword">define</span> <a href="ft2-gx_validation.html#ft_validate_morx">FT_VALIDATE_morx</a> FT_VALIDATE_GX_BITFIELD( morx )
#<span class="keyword">define</span> <a href="ft2-gx_validation.html#ft_validate_bsln">FT_VALIDATE_bsln</a> FT_VALIDATE_GX_BITFIELD( bsln )
<a href="ft2-gx_validation.html#ft_validate_trak">FT_VALIDATE_trak</a> | \
<a href="ft2-gx_validation.html#ft_validate_prop">FT_VALIDATE_prop</a> | \
<a href="ft2-gx_validation.html#ft_validate_lcar">FT_VALIDATE_lcar</a> )
-</pre>
-</div>
+</code></pre></div>
<p>A list of bit-field constants used with <code><a href="ft2-gx_validation.html#ft_truetypegx_validate">FT_TrueTypeGX_Validate</a></code> to indicate which TrueTypeGX/AAT Type tables should be validated.</p>
<h4>values</h4>
<h2 id="ft_validate_ckernxxx">FT_VALIDATE_CKERNXXX<a class="headerlink" href="#ft_validate_ckernxxx" title="Permanent link">¶</a></h2>
<p>Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).</p>
-<div class = "codehilite">
-<pre>
-#<span class="keyword">define</span> <a href="ft2-gx_validation.html#ft_validate_ms">FT_VALIDATE_MS</a> ( FT_VALIDATE_GX_START << 0 )
+<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-gx_validation.html#ft_validate_ms">FT_VALIDATE_MS</a> ( FT_VALIDATE_GX_START << 0 )
#<span class="keyword">define</span> <a href="ft2-gx_validation.html#ft_validate_apple">FT_VALIDATE_APPLE</a> ( FT_VALIDATE_GX_START << 1 )
#<span class="keyword">define</span> <a href="ft2-gx_validation.html#ft_validate_ckern">FT_VALIDATE_CKERN</a> ( <a href="ft2-gx_validation.html#ft_validate_ms">FT_VALIDATE_MS</a> | <a href="ft2-gx_validation.html#ft_validate_apple">FT_VALIDATE_APPLE</a> )
-</pre>
-</div>
+</code></pre></div>
<p>A list of bit-field constants used with <code><a href="ft2-gx_validation.html#ft_classickern_validate">FT_ClassicKern_Validate</a></code> to indicate the classic kern dialect or dialects. If the selected type doesn't fit, <code><a href="ft2-gx_validation.html#ft_classickern_validate">FT_ClassicKern_Validate</a></code> regards the table as invalid.</p>
<h4>values</h4>
+
<div class="md-footer-nav">
<nav class="md-footer-nav__inner md-grid">
- <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
+ <a href="ft2-error_code_values.html" title="Error Code Values" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
<div class="md-flex__cell md-flex__cell--shrink">
<i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
</div>
<span class="md-footer-nav__direction">
Previous
</span>
- The TrueType Engine
+ Error Code Values
</span>
</div>
</a>
+ <a href="ft2-incremental.html" title="Incremental Loading" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
+ <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
+ <span class="md-flex__ellipsis">
+ <span class="md-footer-nav__direction">
+ Next
+ </span>
+ Incremental Loading
+ </span>
+ </div>
+ <div class="md-flex__cell md-flex__cell--shrink">
+ <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
+ </div>
+ </a>
+
</nav>
</div>
<div class="md-footer-copyright">
<div class="md-footer-copyright__highlight">
- Copyright 2019 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
+ Copyright 2020 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
</div>
powered by
- <a href="https://www.mkdocs.org">MkDocs</a>
+ <a href="https://www.mkdocs.org" target="_blank" rel="noopener">MkDocs</a>
and
- <a href="https://squidfunk.github.io/mkdocs-material/">
+ <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs</a>
</div>
</div>
- <script src="assets/javascripts/application.d9aa80ab.js"></script>
+ <script src="assets/javascripts/application.c33a9706.js"></script>
- <script>app.initialize({version:"1.0.4",url:{base:"."}})</script>
+ <script>app.initialize({version:"1.1",url:{base:"."}})</script>
<script src="javascripts/extra.js"></script>