• 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-2020 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 <freetype/ftsnames.h>
35 
36 
37 FT_BEGIN_HEADER
38 
39 
40   typedef struct  GXV_mort_featureRec_
41   {
42     FT_UShort  featureType;
43     FT_UShort  featureSetting;
44     FT_ULong   enableFlags;
45     FT_ULong   disableFlags;
46 
47   } GXV_mort_featureRec, *GXV_mort_feature;
48 
49 #define GXV_MORT_FEATURE_OFF  {0, 1, 0x00000000UL, 0x00000000UL}
50 
51 #define IS_GXV_MORT_FEATURE_OFF( f )              \
52           ( (f).featureType    == 0            || \
53             (f).featureSetting == 1            || \
54             (f).enableFlags    == 0x00000000UL || \
55             (f).disableFlags   == 0x00000000UL )
56 
57 
58   FT_LOCAL( void )
59   gxv_mort_featurearray_validate( FT_Bytes       table,
60                                   FT_Bytes       limit,
61                                   FT_ULong       nFeatureFlags,
62                                   GXV_Validator  gxvalid );
63 
64   FT_LOCAL( void )
65   gxv_mort_coverage_validate( FT_UShort      coverage,
66                               GXV_Validator  gxvalid );
67 
68   FT_LOCAL( void )
69   gxv_mort_subtable_type0_validate( FT_Bytes       table,
70                                     FT_Bytes       limit,
71                                     GXV_Validator  gxvalid );
72 
73   FT_LOCAL( void )
74   gxv_mort_subtable_type1_validate( FT_Bytes       table,
75                                     FT_Bytes       limit,
76                                     GXV_Validator  gxvalid );
77 
78   FT_LOCAL( void )
79   gxv_mort_subtable_type2_validate( FT_Bytes       table,
80                                     FT_Bytes       limit,
81                                     GXV_Validator  gxvalid );
82 
83   FT_LOCAL( void )
84   gxv_mort_subtable_type4_validate( FT_Bytes       table,
85                                     FT_Bytes       limit,
86                                     GXV_Validator  gxvalid );
87 
88   FT_LOCAL( void )
89   gxv_mort_subtable_type5_validate( FT_Bytes       table,
90                                     FT_Bytes       limit,
91                                     GXV_Validator  gxvalid );
92 
93 
94 FT_END_HEADER
95 
96 #endif /* GXVMORT_H_ */
97 
98 
99 /* END */
100