1 | /**************************************************************************** |
2 | * |
3 | * gxvmort.h |
4 | * |
5 | * TrueTypeGX/AAT common definition for mort table (specification). |
6 | * |
7 | * Copyright (C) 2004-2023 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 | |