1 /***************************************************************************/
2 /*                                                                         */
3 /*  gxvmort.h                                                              */
4 /*                                                                         */
5 /*    TrueTypeGX/AAT common definition for mort table (specification).     */
6 /*                                                                         */
7 /*  Copyright 2004, 2005 by suzuki toshiya, Masatake YAMATO, Red Hat K.K., */
8 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
9 /*                                                                         */
10 /*  This file is part of the FreeType project, and may only be used,       */
11 /*  modified, and distributed under the terms of the FreeType project      */
12 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
13 /*  this file you indicate that you have read the license and              */
14 /*  understand and accept it fully.                                        */
15 /*                                                                         */
16 /***************************************************************************/
17 
18 /***************************************************************************/
19 /*                                                                         */
20 /* gxvalid is derived from both gxlayout module and otvalid module.        */
21 /* Development of gxlayout is supported by the Information-technology      */
22 /* Promotion Agency(IPA), Japan.                                           */
23 /*                                                                         */
24 /***************************************************************************/
25 
26 
27 #ifndef __GXVMORT_H__
28 #define __GXVMORT_H__
29 
30 #include "gxvalid.h"
31 #include "gxvcommn.h"
32 
33 #include FT_SFNT_NAMES_H
34 
35 
36   typedef struct  GXV_mort_featureRec_
37   {
38     FT_UShort  featureType;
39     FT_UShort  featureSetting;
40     FT_ULong   enableFlags;
41     FT_ULong   disableFlags;
42 
43   } GXV_mort_featureRec, *GXV_mort_feature;
44 
45 #define GXV_MORT_FEATURE_OFF  {0, 1, 0x00000000UL, 0x00000000UL}
46 
47 #define IS_GXV_MORT_FEATURE_OFF( f )              \
48           ( (f).featureType    == 0            || \
49             (f).featureSetting == 1            || \
50             (f).enableFlags    == 0x00000000UL || \
51             (f).disableFlags   == 0x00000000UL )
52 
53 
54   FT_LOCAL( void )
55   gxv_mort_featurearray_validate( FT_Bytes       table,
56                                   FT_Bytes       limit,
57                                   FT_ULong       nFeatureFlags,
58                                   GXV_Validator  valid );
59 
60   FT_LOCAL( void )
61   gxv_mort_coverage_validate( FT_UShort      coverage,
62                               GXV_Validator  valid );
63 
64   FT_LOCAL( void )
65   gxv_mort_subtable_type0_validate( FT_Bytes       table,
66                                     FT_Bytes       limit,
67                                     GXV_Validator  valid );
68 
69   FT_LOCAL( void )
70   gxv_mort_subtable_type1_validate( FT_Bytes       table,
71                                     FT_Bytes       limit,
72                                     GXV_Validator  valid );
73 
74   FT_LOCAL( void )
75   gxv_mort_subtable_type2_validate( FT_Bytes       table,
76                                     FT_Bytes       limit,
77                                     GXV_Validator  valid );
78 
79   FT_LOCAL( void )
80   gxv_mort_subtable_type4_validate( FT_Bytes       table,
81                                     FT_Bytes       limit,
82                                     GXV_Validator  valid );
83 
84   FT_LOCAL( void )
85   gxv_mort_subtable_type5_validate( FT_Bytes       table,
86                                     FT_Bytes       limit,
87                                     GXV_Validator  valid );
88 
89 
90 #endif /* __GXVMORT_H__ */
91 
92 
93 /* END */
94