Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4680 right-hear 1
/***************************************************************************/
2
/*                                                                         */
3
/*  ftgxval.h                                                              */
4
/*                                                                         */
5
/*    FreeType API for validating TrueTypeGX/AAT tables (specification).   */
6
/*                                                                         */
7
/*  Copyright 2004, 2005, 2006 by                                          */
8
/*  Masatake YAMATO, Redhat K.K,                                           */
9
/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
10
/*                                                                         */
11
/*  This file is part of the FreeType project, and may only be used,       */
12
/*  modified, and distributed under the terms of the FreeType project      */
13
/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
14
/*  this file you indicate that you have read the license and              */
15
/*  understand and accept it fully.                                        */
16
/*                                                                         */
17
/***************************************************************************/
18
 
19
/***************************************************************************/
20
/*                                                                         */
21
/* gxvalid is derived from both gxlayout module and otvalid module.        */
22
/* Development of gxlayout is supported by the Information-technology      */
23
/* Promotion Agency(IPA), Japan.                                           */
24
/*                                                                         */
25
/***************************************************************************/
26
 
27
 
28
#ifndef __FTGXVAL_H__
29
#define __FTGXVAL_H__
30
 
31
#include 
32
#include FT_FREETYPE_H
33
 
34
#ifdef FREETYPE_H
35
#error "freetype.h of FreeType 1 has been loaded!"
36
#error "Please fix the directory search order for header files"
37
#error "so that freetype.h of FreeType 2 is found first."
38
#endif
39
 
40
 
41
FT_BEGIN_HEADER
42
 
43
 
44
  /*************************************************************************/
45
  /*                                                                       */
46
  /* 
*/
47
  /*    gx_validation                                                      */
48
  /*                                                                       */
49
  /*                                                                */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l50">50</a></td>
           <td class="code"><pre>  /*    TrueTypeGX/AAT Validation                                          */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l51">51</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l52">52</a></td>
           <td class="code"><pre>  /* <Abstract>                                                            */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l53">53</a></td>
           <td class="code"><pre>  /*    An API to validate TrueTypeGX/AAT tables.                          */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l54">54</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l55">55</a></td>
           <td class="code"><pre>  /* <Description>                                                         */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l56">56</a></td>
           <td class="code"><pre>  /*    This section contains the declaration of functions to validate     */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l57">57</a></td>
           <td class="code"><pre>  /*    some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd,  */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l58">58</a></td>
           <td class="code"><pre>  /*    trak, prop, lcar).                                                 */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l59">59</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l60">60</a></td>
           <td class="code"><pre>  /*************************************************************************/</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l61">61</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l62">62</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l63">63</a></td>
           <td class="code"><pre>  /*************************************************************************/</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l64">64</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l65">65</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l66">66</a></td>
           <td class="code"><pre>  /* Warning: Use FT_VALIDATE_XXX to validate a table.                     */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l67">67</a></td>
           <td class="code"><pre>  /*          Following definitions are for gxvalid developers.            */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l68">68</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l69">69</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l70">70</a></td>
           <td class="code"><pre>  /*************************************************************************/</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l71">71</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l72">72</a></td>
           <td class="code"><pre>#define FT_VALIDATE_feat_INDEX     0</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l73">73</a></td>
           <td class="code"><pre>#define FT_VALIDATE_mort_INDEX     1</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l74">74</a></td>
           <td class="code"><pre>#define FT_VALIDATE_morx_INDEX     2</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l75">75</a></td>
           <td class="code"><pre>#define FT_VALIDATE_bsln_INDEX     3</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l76">76</a></td>
           <td class="code"><pre>#define FT_VALIDATE_just_INDEX     4</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l77">77</a></td>
           <td class="code"><pre>#define FT_VALIDATE_kern_INDEX     5</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l78">78</a></td>
           <td class="code"><pre>#define FT_VALIDATE_opbd_INDEX     6</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l79">79</a></td>
           <td class="code"><pre>#define FT_VALIDATE_trak_INDEX     7</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l80">80</a></td>
           <td class="code"><pre>#define FT_VALIDATE_prop_INDEX     8</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l81">81</a></td>
           <td class="code"><pre>#define FT_VALIDATE_lcar_INDEX     9</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l82">82</a></td>
           <td class="code"><pre>#define FT_VALIDATE_GX_LAST_INDEX  FT_VALIDATE_lcar_INDEX</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l83">83</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l84">84</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l85">85</a></td>
           <td class="code"><pre>  /*************************************************************************</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l86">86</a></td>
           <td class="code"><pre>   *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l87">87</a></td>
           <td class="code"><pre>   * @macro:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l88">88</a></td>
           <td class="code"><pre>   *   FT_VALIDATE_GX_LENGTH</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l89">89</a></td>
           <td class="code"><pre>   *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l90">90</a></td>
           <td class="code"><pre>   * @description:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l91">91</a></td>
           <td class="code"><pre>   *   The number of tables checked in this module.  Use it as a parameter</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l92">92</a></td>
           <td class="code"><pre>   *   for the `table-length' argument of function @FT_TrueTypeGX_Validate.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l93">93</a></td>
           <td class="code"><pre>   */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l94">94</a></td>
           <td class="code"><pre>#define FT_VALIDATE_GX_LENGTH     (FT_VALIDATE_GX_LAST_INDEX + 1)</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l95">95</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l96">96</a></td>
           <td class="code"><pre>  /* */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l97">97</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l98">98</a></td>
           <td class="code"><pre>  /* Up to 0x1000 is used by otvalid.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l99">99</a></td>
           <td class="code"><pre>     Ox2xxx is reserved for feature OT extension. */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l100">100</a></td>
           <td class="code"><pre>#define FT_VALIDATE_GX_START 0x4000</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l101">101</a></td>
           <td class="code"><pre>#define FT_VALIDATE_GX_BITFIELD( tag )                  \</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l102">102</a></td>
           <td class="code"><pre>  ( FT_VALIDATE_GX_START << FT_VALIDATE_##tag##_INDEX )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l103">103</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l104">104</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l105">105</a></td>
           <td class="code"><pre> /**********************************************************************</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l106">106</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l107">107</a></td>
           <td class="code"><pre>  * @enum:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l108">108</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_GXXXX</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l109">109</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l110">110</a></td>
           <td class="code"><pre>  * @description:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l111">111</a></td>
           <td class="code"><pre>  *    A list of bit-field constants used with @FT_TrueTypeGX_Validate to</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l112">112</a></td>
           <td class="code"><pre>  *    indicate which TrueTypeGX/AAT Type tables should be validated.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l113">113</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l114">114</a></td>
           <td class="code"><pre>  * @values:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l115">115</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_feat ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l116">116</a></td>
           <td class="code"><pre>  *      Validate `feat' table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l117">117</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l118">118</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_mort ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l119">119</a></td>
           <td class="code"><pre>  *      Validate `mort' table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l120">120</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l121">121</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_morx ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l122">122</a></td>
           <td class="code"><pre>  *      Validate `morx' table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l123">123</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l124">124</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_bsln ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l125">125</a></td>
           <td class="code"><pre>  *      Validate `bsln' table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l126">126</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l127">127</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_just ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l128">128</a></td>
           <td class="code"><pre>  *      Validate `just' table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l129">129</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l130">130</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_kern ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l131">131</a></td>
           <td class="code"><pre>  *      Validate `kern' table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l132">132</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l133">133</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_opbd ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l134">134</a></td>
           <td class="code"><pre>  *      Validate `opbd' table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l135">135</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l136">136</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_trak ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l137">137</a></td>
           <td class="code"><pre>  *      Validate `trak' table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l138">138</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l139">139</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_prop ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l140">140</a></td>
           <td class="code"><pre>  *      Validate `prop' table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l141">141</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l142">142</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_lcar ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l143">143</a></td>
           <td class="code"><pre>  *      Validate `lcar' table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l144">144</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l145">145</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_GX ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l146">146</a></td>
           <td class="code"><pre>  *      Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern,</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l147">147</a></td>
           <td class="code"><pre>  *      opbd, trak, prop and lcar).</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l148">148</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l149">149</a></td>
           <td class="code"><pre>  */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l150">150</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l151">151</a></td>
           <td class="code"><pre>#define FT_VALIDATE_feat  FT_VALIDATE_GX_BITFIELD( feat )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l152">152</a></td>
           <td class="code"><pre>#define FT_VALIDATE_mort  FT_VALIDATE_GX_BITFIELD( mort )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l153">153</a></td>
           <td class="code"><pre>#define FT_VALIDATE_morx  FT_VALIDATE_GX_BITFIELD( morx )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l154">154</a></td>
           <td class="code"><pre>#define FT_VALIDATE_bsln  FT_VALIDATE_GX_BITFIELD( bsln )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l155">155</a></td>
           <td class="code"><pre>#define FT_VALIDATE_just  FT_VALIDATE_GX_BITFIELD( just )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l156">156</a></td>
           <td class="code"><pre>#define FT_VALIDATE_kern  FT_VALIDATE_GX_BITFIELD( kern )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l157">157</a></td>
           <td class="code"><pre>#define FT_VALIDATE_opbd  FT_VALIDATE_GX_BITFIELD( opbd )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l158">158</a></td>
           <td class="code"><pre>#define FT_VALIDATE_trak  FT_VALIDATE_GX_BITFIELD( trak )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l159">159</a></td>
           <td class="code"><pre>#define FT_VALIDATE_prop  FT_VALIDATE_GX_BITFIELD( prop )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l160">160</a></td>
           <td class="code"><pre>#define FT_VALIDATE_lcar  FT_VALIDATE_GX_BITFIELD( lcar )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l161">161</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l162">162</a></td>
           <td class="code"><pre>#define FT_VALIDATE_GX  ( FT_VALIDATE_feat | \</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l163">163</a></td>
           <td class="code"><pre>                          FT_VALIDATE_mort | \</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l164">164</a></td>
           <td class="code"><pre>                          FT_VALIDATE_morx | \</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l165">165</a></td>
           <td class="code"><pre>                          FT_VALIDATE_bsln | \</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l166">166</a></td>
           <td class="code"><pre>                          FT_VALIDATE_just | \</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l167">167</a></td>
           <td class="code"><pre>                          FT_VALIDATE_kern | \</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l168">168</a></td>
           <td class="code"><pre>                          FT_VALIDATE_opbd | \</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l169">169</a></td>
           <td class="code"><pre>                          FT_VALIDATE_trak | \</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l170">170</a></td>
           <td class="code"><pre>                          FT_VALIDATE_prop | \</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l171">171</a></td>
           <td class="code"><pre>                          FT_VALIDATE_lcar )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l172">172</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l173">173</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l174">174</a></td>
           <td class="code"><pre>  /* */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l175">175</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l176">176</a></td>
           <td class="code"><pre> /**********************************************************************</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l177">177</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l178">178</a></td>
           <td class="code"><pre>  * @function:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l179">179</a></td>
           <td class="code"><pre>  *    FT_TrueTypeGX_Validate</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l180">180</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l181">181</a></td>
           <td class="code"><pre>  * @description:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l182">182</a></td>
           <td class="code"><pre>  *    Validate various TrueTypeGX tables to assure that all offsets and</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l183">183</a></td>
           <td class="code"><pre>  *    indices are valid.  The idea is that a higher-level library which</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l184">184</a></td>
           <td class="code"><pre>  *    actually does the text layout can access those tables without</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l185">185</a></td>
           <td class="code"><pre>  *    error checking (which can be quite time consuming).</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l186">186</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l187">187</a></td>
           <td class="code"><pre>  * @input:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l188">188</a></td>
           <td class="code"><pre>  *    face ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l189">189</a></td>
           <td class="code"><pre>  *       A handle to the input face.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l190">190</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l191">191</a></td>
           <td class="code"><pre>  *    validation_flags ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l192">192</a></td>
           <td class="code"><pre>  *       A bit field which specifies the tables to be validated.  See</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l193">193</a></td>
           <td class="code"><pre>  *       @FT_VALIDATE_GXXXX for possible values.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l194">194</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l195">195</a></td>
           <td class="code"><pre>  *    table_length ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l196">196</a></td>
           <td class="code"><pre>  *       The size of the `tables' array.  Normally, @FT_VALIDATE_GX_LENGTH</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l197">197</a></td>
           <td class="code"><pre>  *       should be passed.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l198">198</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l199">199</a></td>
           <td class="code"><pre>  * @output:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l200">200</a></td>
           <td class="code"><pre>  *    tables ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l201">201</a></td>
           <td class="code"><pre>  *       The array where all validated sfnt tables are stored.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l202">202</a></td>
           <td class="code"><pre>  *       The array itself must be allocated by a client.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l203">203</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l204">204</a></td>
           <td class="code"><pre>  * @return:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l205">205</a></td>
           <td class="code"><pre>  *   FreeType error code.  0~means success.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l206">206</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l207">207</a></td>
           <td class="code"><pre>  * @note:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l208">208</a></td>
           <td class="code"><pre>  *   This function only works with TrueTypeGX fonts, returning an error</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l209">209</a></td>
           <td class="code"><pre>  *   otherwise.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l210">210</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l211">211</a></td>
           <td class="code"><pre>  *   After use, the application should deallocate the buffers pointed to by</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l212">212</a></td>
           <td class="code"><pre>  *   each `tables' element, by calling @FT_TrueTypeGX_Free.  A NULL value</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l213">213</a></td>
           <td class="code"><pre>  *   indicates that the table either doesn't exist in the font, the</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l214">214</a></td>
           <td class="code"><pre>  *   application hasn't asked for validation, or the validator doesn't have</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l215">215</a></td>
           <td class="code"><pre>  *   the ability to validate the sfnt table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l216">216</a></td>
           <td class="code"><pre>  */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l217">217</a></td>
           <td class="code"><pre>  FT_EXPORT( FT_Error )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l218">218</a></td>
           <td class="code"><pre>  FT_TrueTypeGX_Validate( FT_Face   face,</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l219">219</a></td>
           <td class="code"><pre>                          FT_UInt   validation_flags,</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l220">220</a></td>
           <td class="code"><pre>                          FT_Bytes  tables[FT_VALIDATE_GX_LENGTH],</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l221">221</a></td>
           <td class="code"><pre>                          FT_UInt   table_length );</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l222">222</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l223">223</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l224">224</a></td>
           <td class="code"><pre>  /* */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l225">225</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l226">226</a></td>
           <td class="code"><pre> /**********************************************************************</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l227">227</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l228">228</a></td>
           <td class="code"><pre>  * @function:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l229">229</a></td>
           <td class="code"><pre>  *    FT_TrueTypeGX_Free</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l230">230</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l231">231</a></td>
           <td class="code"><pre>  * @description:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l232">232</a></td>
           <td class="code"><pre>  *    Free the buffer allocated by TrueTypeGX validator.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l233">233</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l234">234</a></td>
           <td class="code"><pre>  * @input:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l235">235</a></td>
           <td class="code"><pre>  *    face ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l236">236</a></td>
           <td class="code"><pre>  *       A handle to the input face.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l237">237</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l238">238</a></td>
           <td class="code"><pre>  *    table ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l239">239</a></td>
           <td class="code"><pre>  *       The pointer to the buffer allocated by</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l240">240</a></td>
           <td class="code"><pre>  *       @FT_TrueTypeGX_Validate.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l241">241</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l242">242</a></td>
           <td class="code"><pre>  * @note:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l243">243</a></td>
           <td class="code"><pre>  *   This function must be used to free the buffer allocated by</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l244">244</a></td>
           <td class="code"><pre>  *   @FT_TrueTypeGX_Validate only.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l245">245</a></td>
           <td class="code"><pre>  */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l246">246</a></td>
           <td class="code"><pre>  FT_EXPORT( void )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l247">247</a></td>
           <td class="code"><pre>  FT_TrueTypeGX_Free( FT_Face   face,</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l248">248</a></td>
           <td class="code"><pre>                      FT_Bytes  table );</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l249">249</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l250">250</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l251">251</a></td>
           <td class="code"><pre>  /* */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l252">252</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l253">253</a></td>
           <td class="code"><pre> /**********************************************************************</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l254">254</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l255">255</a></td>
           <td class="code"><pre>  * @enum:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l256">256</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_CKERNXXX</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l257">257</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l258">258</a></td>
           <td class="code"><pre>  * @description:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l259">259</a></td>
           <td class="code"><pre>  *    A list of bit-field constants used with @FT_ClassicKern_Validate</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l260">260</a></td>
           <td class="code"><pre>  *    to indicate the classic kern dialect or dialects.  If the selected</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l261">261</a></td>
           <td class="code"><pre>  *    type doesn't fit, @FT_ClassicKern_Validate regards the table as</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l262">262</a></td>
           <td class="code"><pre>  *    invalid.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l263">263</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l264">264</a></td>
           <td class="code"><pre>  * @values:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l265">265</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_MS ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l266">266</a></td>
           <td class="code"><pre>  *      Handle the `kern' table as a classic Microsoft kern table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l267">267</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l268">268</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_APPLE ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l269">269</a></td>
           <td class="code"><pre>  *      Handle the `kern' table as a classic Apple kern table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l270">270</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l271">271</a></td>
           <td class="code"><pre>  *    FT_VALIDATE_CKERN ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l272">272</a></td>
           <td class="code"><pre>  *      Handle the `kern' as either classic Apple or Microsoft kern table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l273">273</a></td>
           <td class="code"><pre>  */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l274">274</a></td>
           <td class="code"><pre>#define FT_VALIDATE_MS     ( FT_VALIDATE_GX_START << 0 )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l275">275</a></td>
           <td class="code"><pre>#define FT_VALIDATE_APPLE  ( FT_VALIDATE_GX_START << 1 )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l276">276</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l277">277</a></td>
           <td class="code"><pre>#define FT_VALIDATE_CKERN  ( FT_VALIDATE_MS | FT_VALIDATE_APPLE )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l278">278</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l279">279</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l280">280</a></td>
           <td class="code"><pre>  /* */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l281">281</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l282">282</a></td>
           <td class="code"><pre> /**********************************************************************</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l283">283</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l284">284</a></td>
           <td class="code"><pre>  * @function:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l285">285</a></td>
           <td class="code"><pre>  *    FT_ClassicKern_Validate</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l286">286</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l287">287</a></td>
           <td class="code"><pre>  * @description:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l288">288</a></td>
           <td class="code"><pre>  *    Validate classic (16-bit format) kern table to assure that the offsets</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l289">289</a></td>
           <td class="code"><pre>  *    and indices are valid.  The idea is that a higher-level library which</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l290">290</a></td>
           <td class="code"><pre>  *    actually does the text layout can access those tables without error</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l291">291</a></td>
           <td class="code"><pre>  *    checking (which can be quite time consuming).</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l292">292</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l293">293</a></td>
           <td class="code"><pre>  *    The `kern' table validator in @FT_TrueTypeGX_Validate deals with both</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l294">294</a></td>
           <td class="code"><pre>  *    the new 32-bit format and the classic 16-bit format, while</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l295">295</a></td>
           <td class="code"><pre>  *    FT_ClassicKern_Validate only supports the classic 16-bit format.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l296">296</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l297">297</a></td>
           <td class="code"><pre>  * @input:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l298">298</a></td>
           <td class="code"><pre>  *    face ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l299">299</a></td>
           <td class="code"><pre>  *       A handle to the input face.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l300">300</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l301">301</a></td>
           <td class="code"><pre>  *    validation_flags ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l302">302</a></td>
           <td class="code"><pre>  *       A bit field which specifies the dialect to be validated.  See</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l303">303</a></td>
           <td class="code"><pre>  *       @FT_VALIDATE_CKERNXXX for possible values.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l304">304</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l305">305</a></td>
           <td class="code"><pre>  * @output:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l306">306</a></td>
           <td class="code"><pre>  *    ckern_table ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l307">307</a></td>
           <td class="code"><pre>  *       A pointer to the kern table.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l308">308</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l309">309</a></td>
           <td class="code"><pre>  * @return:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l310">310</a></td>
           <td class="code"><pre>  *   FreeType error code.  0~means success.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l311">311</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l312">312</a></td>
           <td class="code"><pre>  * @note:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l313">313</a></td>
           <td class="code"><pre>  *   After use, the application should deallocate the buffers pointed to by</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l314">314</a></td>
           <td class="code"><pre>  *   `ckern_table', by calling @FT_ClassicKern_Free.  A NULL value</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l315">315</a></td>
           <td class="code"><pre>  *   indicates that the table doesn't exist in the font.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l316">316</a></td>
           <td class="code"><pre>  */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l317">317</a></td>
           <td class="code"><pre>  FT_EXPORT( FT_Error )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l318">318</a></td>
           <td class="code"><pre>  FT_ClassicKern_Validate( FT_Face    face,</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l319">319</a></td>
           <td class="code"><pre>                           FT_UInt    validation_flags,</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l320">320</a></td>
           <td class="code"><pre>                           FT_Bytes  *ckern_table );</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l321">321</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l322">322</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l323">323</a></td>
           <td class="code"><pre>  /* */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l324">324</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l325">325</a></td>
           <td class="code"><pre> /**********************************************************************</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l326">326</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l327">327</a></td>
           <td class="code"><pre>  * @function:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l328">328</a></td>
           <td class="code"><pre>  *    FT_ClassicKern_Free</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l329">329</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l330">330</a></td>
           <td class="code"><pre>  * @description:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l331">331</a></td>
           <td class="code"><pre>  *    Free the buffer allocated by classic Kern validator.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l332">332</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l333">333</a></td>
           <td class="code"><pre>  * @input:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l334">334</a></td>
           <td class="code"><pre>  *    face ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l335">335</a></td>
           <td class="code"><pre>  *       A handle to the input face.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l336">336</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l337">337</a></td>
           <td class="code"><pre>  *    table ::</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l338">338</a></td>
           <td class="code"><pre>  *       The pointer to the buffer that is allocated by</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l339">339</a></td>
           <td class="code"><pre>  *       @FT_ClassicKern_Validate.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l340">340</a></td>
           <td class="code"><pre>  *</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l341">341</a></td>
           <td class="code"><pre>  * @note:</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l342">342</a></td>
           <td class="code"><pre>  *   This function must be used to free the buffer allocated by</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l343">343</a></td>
           <td class="code"><pre>  *   @FT_ClassicKern_Validate only.</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l344">344</a></td>
           <td class="code"><pre>  */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l345">345</a></td>
           <td class="code"><pre>  FT_EXPORT( void )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l346">346</a></td>
           <td class="code"><pre>  FT_ClassicKern_Free( FT_Face   face,</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l347">347</a></td>
           <td class="code"><pre>                       FT_Bytes  table );</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l348">348</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l349">349</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l350">350</a></td>
           <td class="code"><pre> /* */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l351">351</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l352">352</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l353">353</a></td>
           <td class="code"><pre>FT_END_HEADER</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l354">354</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l355">355</a></td>
           <td class="code"><pre>#endif /* __FTGXVAL_H__ */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l356">356</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l357">357</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l358">358</a></td>
           <td class="code"><pre>/* END */</></<></></<></></<></Description></Abstract>