misc/libfreetype/src/otvalid/otvcommn.h
author dag10
Mon, 21 Jan 2013 00:30:18 -0500
changeset 8415 02acf6b92f52
parent 5172 88f2e05288ba
permissions -rw-r--r--
Moved room name edit box from footer to top of page. Also shows room name when in slave mode. Temporarily increased HWForm's min height from 580 to 610.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5172
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     1
/***************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     2
/*                                                                         */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     3
/*  otvcommn.h                                                             */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     4
/*                                                                         */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     5
/*    OpenType common tables validation (specification).                   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     6
/*                                                                         */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     7
/*  Copyright 2004, 2005, 2007, 2009 by                                    */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     8
/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     9
/*                                                                         */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    10
/*  This file is part of the FreeType project, and may only be used,       */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    11
/*  modified, and distributed under the terms of the FreeType project      */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    12
/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    13
/*  this file you indicate that you have read the license and              */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    14
/*  understand and accept it fully.                                        */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    15
/*                                                                         */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    16
/***************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    17
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    18
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    19
#ifndef __OTVCOMMN_H__
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    20
#define __OTVCOMMN_H__
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    21
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    22
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    23
#include <ft2build.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    24
#include "otvalid.h"
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    25
#include FT_INTERNAL_DEBUG_H
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    26
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    27
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    28
FT_BEGIN_HEADER
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    29
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    30
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    31
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    32
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    33
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    34
  /*****                         VALIDATION                            *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    35
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    36
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    37
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    38
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    39
  typedef struct OTV_ValidatorRec_*  OTV_Validator;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    40
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    41
  typedef void  (*OTV_Validate_Func)( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    42
                                      OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    43
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    44
  typedef struct  OTV_ValidatorRec_
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    45
  {
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    46
    FT_Validator        root;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    47
    FT_UInt             type_count;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    48
    OTV_Validate_Func*  type_funcs;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    49
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    50
    FT_UInt             lookup_count;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    51
    FT_UInt             glyph_count;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    52
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    53
    FT_UInt             nesting_level;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    54
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    55
    OTV_Validate_Func   func[3];
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    56
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    57
    FT_UInt             extra1;     /* for passing parameters */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    58
    FT_UInt             extra2;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    59
    FT_Bytes            extra3;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    60
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    61
#ifdef FT_DEBUG_LEVEL_TRACE
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    62
    FT_UInt             debug_indent;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    63
    const FT_String*    debug_function_name[3];
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    64
#endif
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    65
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    66
  } OTV_ValidatorRec;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    67
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    68
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    69
#undef  FT_INVALID_
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    70
#define FT_INVALID_( _prefix, _error )                         \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    71
          ft_validator_error( valid->root, _prefix ## _error )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    72
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    73
#define OTV_OPTIONAL_TABLE( _table )  FT_UShort  _table;      \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    74
                                      FT_Bytes   _table ## _p
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    75
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    76
#define OTV_OPTIONAL_OFFSET( _offset )           \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    77
          FT_BEGIN_STMNT                         \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    78
            _offset ## _p = p;                   \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    79
            _offset       = FT_NEXT_USHORT( p ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    80
          FT_END_STMNT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    81
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    82
#define OTV_LIMIT_CHECK( _count )                    \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    83
          FT_BEGIN_STMNT                             \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    84
            if ( p + (_count) > valid->root->limit ) \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    85
              FT_INVALID_TOO_SHORT;                  \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    86
          FT_END_STMNT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    87
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    88
#define OTV_SIZE_CHECK( _size )                                     \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    89
          FT_BEGIN_STMNT                                            \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    90
            if ( _size > 0 && _size < table_size )                  \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    91
            {                                                       \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    92
              if ( valid->root->level == FT_VALIDATE_PARANOID )     \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    93
                FT_INVALID_OFFSET;                                  \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    94
              else                                                  \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    95
              {                                                     \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    96
                /* strip off `const' */                             \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    97
                FT_Byte*  pp = (FT_Byte*)_size ## _p;               \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    98
                                                                    \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    99
                                                                    \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   100
                FT_TRACE3(( "\n"                                    \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   101
                            "Invalid offset to optional table `%s'" \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   102
                            " set to zero.\n"                       \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   103
                            "\n", #_size ));                        \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   104
                                                                    \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   105
                /* always assume 16bit entities */                  \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   106
                _size = pp[0] = pp[1] = 0;                          \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   107
              }                                                     \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   108
            }                                                       \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   109
          FT_END_STMNT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   110
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   111
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   112
#define  OTV_NAME_(x)  #x
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   113
#define  OTV_NAME(x)   OTV_NAME_(x)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   114
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   115
#define  OTV_FUNC_(x)  x##Func
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   116
#define  OTV_FUNC(x)   OTV_FUNC_(x)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   117
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   118
#ifdef FT_DEBUG_LEVEL_TRACE
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   119
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   120
#define OTV_NEST1( x )                                     \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   121
          FT_BEGIN_STMNT                                   \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   122
            valid->nesting_level          = 0;             \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   123
            valid->func[0]                = OTV_FUNC( x ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   124
            valid->debug_function_name[0] = OTV_NAME( x ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   125
          FT_END_STMNT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   126
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   127
#define OTV_NEST2( x, y )                                  \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   128
          FT_BEGIN_STMNT                                   \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   129
            valid->nesting_level          = 0;             \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   130
            valid->func[0]                = OTV_FUNC( x ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   131
            valid->func[1]                = OTV_FUNC( y ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   132
            valid->debug_function_name[0] = OTV_NAME( x ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   133
            valid->debug_function_name[1] = OTV_NAME( y ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   134
          FT_END_STMNT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   135
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   136
#define OTV_NEST3( x, y, z )                               \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   137
          FT_BEGIN_STMNT                                   \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   138
            valid->nesting_level          = 0;             \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   139
            valid->func[0]                = OTV_FUNC( x ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   140
            valid->func[1]                = OTV_FUNC( y ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   141
            valid->func[2]                = OTV_FUNC( z ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   142
            valid->debug_function_name[0] = OTV_NAME( x ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   143
            valid->debug_function_name[1] = OTV_NAME( y ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   144
            valid->debug_function_name[2] = OTV_NAME( z ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   145
          FT_END_STMNT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   146
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   147
#define OTV_INIT  valid->debug_indent = 0
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   148
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   149
#define OTV_ENTER                                                            \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   150
          FT_BEGIN_STMNT                                                     \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   151
            valid->debug_indent += 2;                                        \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   152
            FT_TRACE4(( "%*.s", valid->debug_indent, 0 ));                   \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   153
            FT_TRACE4(( "%s table\n",                                        \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   154
                        valid->debug_function_name[valid->nesting_level] )); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   155
          FT_END_STMNT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   156
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   157
#define OTV_NAME_ENTER( name )                             \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   158
          FT_BEGIN_STMNT                                   \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   159
            valid->debug_indent += 2;                      \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   160
            FT_TRACE4(( "%*.s", valid->debug_indent, 0 )); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   161
            FT_TRACE4(( "%s table\n", name ));             \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   162
          FT_END_STMNT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   163
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   164
#define OTV_EXIT  valid->debug_indent -= 2
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   165
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   166
#define OTV_TRACE( s )                                     \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   167
          FT_BEGIN_STMNT                                   \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   168
            FT_TRACE4(( "%*.s", valid->debug_indent, 0 )); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   169
            FT_TRACE4( s );                                \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   170
          FT_END_STMNT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   171
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   172
#else   /* !FT_DEBUG_LEVEL_TRACE */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   173
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   174
#define OTV_NEST1( x )                            \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   175
          FT_BEGIN_STMNT                          \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   176
            valid->nesting_level = 0;             \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   177
            valid->func[0]       = OTV_FUNC( x ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   178
          FT_END_STMNT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   179
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   180
#define OTV_NEST2( x, y )                         \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   181
          FT_BEGIN_STMNT                          \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   182
            valid->nesting_level = 0;             \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   183
            valid->func[0]       = OTV_FUNC( x ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   184
            valid->func[1]       = OTV_FUNC( y ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   185
          FT_END_STMNT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   186
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   187
#define OTV_NEST3( x, y, z )                      \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   188
          FT_BEGIN_STMNT                          \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   189
            valid->nesting_level = 0;             \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   190
            valid->func[0]       = OTV_FUNC( x ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   191
            valid->func[1]       = OTV_FUNC( y ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   192
            valid->func[2]       = OTV_FUNC( z ); \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   193
          FT_END_STMNT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   194
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   195
#define OTV_INIT                do { } while ( 0 )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   196
#define OTV_ENTER               do { } while ( 0 )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   197
#define OTV_NAME_ENTER( name )  do { } while ( 0 )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   198
#define OTV_EXIT                do { } while ( 0 )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   199
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   200
#define OTV_TRACE( s )          do { } while ( 0 )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   201
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   202
#endif  /* !FT_DEBUG_LEVEL_TRACE */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   203
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   204
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   205
#define OTV_RUN  valid->func[0]
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   206
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   207
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   208
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   209
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   210
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   211
  /*****                       COVERAGE TABLE                          *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   212
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   213
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   214
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   215
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   216
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   217
  otv_Coverage_validate( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   218
                         OTV_Validator  valid,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   219
                         FT_Int         expected_count );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   220
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   221
  /* return first covered glyph */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   222
  FT_LOCAL( FT_UInt )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   223
  otv_Coverage_get_first( FT_Bytes  table );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   224
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   225
  /* return last covered glyph */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   226
  FT_LOCAL( FT_UInt )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   227
  otv_Coverage_get_last( FT_Bytes  table );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   228
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   229
  /* return number of covered glyphs */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   230
  FT_LOCAL( FT_UInt )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   231
  otv_Coverage_get_count( FT_Bytes  table );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   232
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   233
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   234
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   235
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   236
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   237
  /*****                  CLASS DEFINITION TABLE                       *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   238
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   239
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   240
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   241
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   242
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   243
  otv_ClassDef_validate( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   244
                         OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   245
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   246
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   247
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   248
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   249
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   250
  /*****                      DEVICE TABLE                             *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   251
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   252
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   253
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   254
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   255
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   256
  otv_Device_validate( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   257
                       OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   258
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   259
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   260
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   261
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   262
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   263
  /*****                           LOOKUPS                             *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   264
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   265
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   266
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   267
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   268
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   269
  otv_Lookup_validate( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   270
                       OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   271
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   272
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   273
  otv_LookupList_validate( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   274
                           OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   275
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   276
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   277
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   278
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   279
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   280
  /*****                        FEATURES                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   281
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   282
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   283
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   284
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   285
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   286
  otv_Feature_validate( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   287
                        OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   288
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   289
  /* lookups must already be validated */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   290
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   291
  otv_FeatureList_validate( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   292
                            FT_Bytes       lookups,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   293
                            OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   294
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   295
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   296
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   297
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   298
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   299
  /*****                       LANGUAGE SYSTEM                         *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   300
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   301
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   302
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   303
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   304
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   305
  otv_LangSys_validate( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   306
                        OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   307
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   308
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   309
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   310
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   311
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   312
  /*****                           SCRIPTS                             *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   313
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   314
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   315
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   316
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   317
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   318
  otv_Script_validate( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   319
                       OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   320
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   321
  /* features must already be validated */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   322
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   323
  otv_ScriptList_validate( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   324
                           FT_Bytes       features,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   325
                           OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   326
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   327
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   328
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   329
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   330
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   331
  /*****                      UTILITY FUNCTIONS                        *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   332
  /*****                                                               *****/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   333
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   334
  /*************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   335
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   336
#define ChainPosClassSetFunc  otv_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   337
#define ChainPosRuleSetFunc   otv_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   338
#define ChainSubClassSetFunc  otv_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   339
#define ChainSubRuleSetFunc   otv_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   340
#define JstfLangSysFunc       otv_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   341
#define JstfMaxFunc           otv_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   342
#define LigGlyphFunc          otv_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   343
#define LigatureArrayFunc     otv_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   344
#define LigatureSetFunc       otv_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   345
#define PosClassSetFunc       otv_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   346
#define PosRuleSetFunc        otv_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   347
#define SubClassSetFunc       otv_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   348
#define SubRuleSetFunc        otv_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   349
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   350
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   351
  otv_x_Ox ( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   352
             OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   353
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   354
#define AlternateSubstFormat1Func     otv_u_C_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   355
#define ChainContextPosFormat1Func    otv_u_C_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   356
#define ChainContextSubstFormat1Func  otv_u_C_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   357
#define ContextPosFormat1Func         otv_u_C_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   358
#define ContextSubstFormat1Func       otv_u_C_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   359
#define LigatureSubstFormat1Func      otv_u_C_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   360
#define MultipleSubstFormat1Func      otv_u_C_x_Ox
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   361
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   362
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   363
  otv_u_C_x_Ox( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   364
                OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   365
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   366
#define AlternateSetFunc     otv_x_ux
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   367
#define AttachPointFunc      otv_x_ux
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   368
#define ExtenderGlyphFunc    otv_x_ux
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   369
#define JstfGPOSModListFunc  otv_x_ux
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   370
#define JstfGSUBModListFunc  otv_x_ux
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   371
#define SequenceFunc         otv_x_ux
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   372
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   373
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   374
  otv_x_ux( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   375
            OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   376
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   377
#define PosClassRuleFunc  otv_x_y_ux_sy
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   378
#define PosRuleFunc       otv_x_y_ux_sy
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   379
#define SubClassRuleFunc  otv_x_y_ux_sy
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   380
#define SubRuleFunc       otv_x_y_ux_sy
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   381
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   382
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   383
  otv_x_y_ux_sy( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   384
                 OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   385
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   386
#define ChainPosClassRuleFunc  otv_x_ux_y_uy_z_uz_p_sp
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   387
#define ChainPosRuleFunc       otv_x_ux_y_uy_z_uz_p_sp
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   388
#define ChainSubClassRuleFunc  otv_x_ux_y_uy_z_uz_p_sp
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   389
#define ChainSubRuleFunc       otv_x_ux_y_uy_z_uz_p_sp
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   390
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   391
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   392
  otv_x_ux_y_uy_z_uz_p_sp( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   393
                           OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   394
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   395
#define ContextPosFormat2Func    otv_u_O_O_x_Onx
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   396
#define ContextSubstFormat2Func  otv_u_O_O_x_Onx
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   397
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   398
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   399
  otv_u_O_O_x_Onx( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   400
                   OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   401
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   402
#define ContextPosFormat3Func    otv_u_x_y_Ox_sy
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   403
#define ContextSubstFormat3Func  otv_u_x_y_Ox_sy
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   404
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   405
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   406
  otv_u_x_y_Ox_sy( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   407
                   OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   408
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   409
#define ChainContextPosFormat2Func    otv_u_O_O_O_O_x_Onx
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   410
#define ChainContextSubstFormat2Func  otv_u_O_O_O_O_x_Onx
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   411
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   412
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   413
  otv_u_O_O_O_O_x_Onx( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   414
                       OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   415
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   416
#define ChainContextPosFormat3Func    otv_u_x_Ox_y_Oy_z_Oz_p_sp
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   417
#define ChainContextSubstFormat3Func  otv_u_x_Ox_y_Oy_z_Oz_p_sp
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   418
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   419
  FT_LOCAL( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   420
  otv_u_x_Ox_y_Oy_z_Oz_p_sp( FT_Bytes       table,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   421
                             OTV_Validator  valid );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   422
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   423
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   424
  FT_LOCAL( FT_UInt )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   425
  otv_GSUBGPOS_get_Lookup_count( FT_Bytes  table );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   426
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   427
  FT_LOCAL( FT_UInt )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   428
  otv_GSUBGPOS_have_MarkAttachmentType_flag( FT_Bytes  table );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   429
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   430
 /* */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   431
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   432
FT_END_HEADER
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   433
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   434
#endif /* __OTVCOMMN_H__ */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   435
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   436
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   437
/* END */