• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2  *
3  * gxvmort.h
4  *
5  *   TrueTypeGX/AAT common definition for mort table (specification).
6  *
7  * Copyright (C) 2004-2019 by
8  * suzuki toshiya, Masatake YAMATO, Red Hat 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 GXVMORT_H_
29 #define GXVMORT_H_
30 
31 #include "gxvalid.h"
32 #include "gxvcommn.h"
33 
34 #include FT_SFNT_NAMES_H
35 
36 
37   typedef struct  GXV_mort_featureRec_
38   {
39     FT_UShort  featureType;
40     FT_UShort  featureSetting;
41     FT_ULong   enableFlags;
42     FT_ULong   disableFlags;
43 
44   } GXV_mort_featureRec, *GXV_mort_feature;
45 
46 #define GXV_MORT_FEATURE_OFF  {0, 1, 0x00000000UL, 0x00000000UL}
47 
48 #define IS_GXV_MORT_FEATURE_OFF( f )              \
49           ( (f).featureType    == 0            || \
50             (f).featureSetting == 1            || \
51             (f).enableFlags    == 0x00000000UL || \
52             (f).disableFlags   == 0x00000000UL )
53 
54 
55   FT_LOCAL( void )
56   gxv_mort_featurearray_validate( FT_Bytes       table,
57                                   FT_Bytes       limit,
58                                   FT_ULong       nFeatureFlags,
59                                   GXV_Validator  gxvalid );
60 
61   FT_LOCAL( void )
62   gxv_mort_coverage_validate( FT_UShort      coverage,
63                               GXV_Validator  gxvalid );
64 
65   FT_LOCAL( void )
66   gxv_mort_subtable_type0_validate( FT_Bytes       table,
67                                     FT_Bytes       limit,
68                                     GXV_Validator  gxvalid );
69 
70   FT_LOCAL( void )
71   gxv_mort_subtable_type1_validate( FT_Bytes       table,
72                                     FT_Bytes       limit,
73                                     GXV_Validator  gxvalid );
74 
75   FT_LOCAL( void )
76   gxv_mort_subtable_type2_validate( FT_Bytes       table,
77                                     FT_Bytes       limit,
78                                     GXV_Validator  gxvalid );
79 
80   FT_LOCAL( void )
81   gxv_mort_subtable_type4_validate( FT_Bytes       table,
82                                     FT_Bytes       limit,
83                                     GXV_Validator  gxvalid );
84 
85   FT_LOCAL( void )
86   gxv_mort_subtable_type5_validate( FT_Bytes       table,
87                                     FT_Bytes       limit,
88                                     GXV_Validator  gxvalid );
89 
90 
91 #endif /* GXVMORT_H_ */
92 
93 
94 /* END */
95