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
37FT_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
94FT_END_HEADER
95
96#endif /* GXVMORT_H_ */
97
98
99/* END */
100