1 /*
2  *
3  * (C) Copyright IBM Corp. and others 1998-2013 - All Rights Reserved
4  *
5  */
6 
7 #ifndef __CONTEXTUALGLYPHSUBSTITUTION_H
8 #define __CONTEXTUALGLYPHSUBSTITUTION_H
9 
10 /**
11  * \file
12  * \internal
13  */
14 
15 #include "LETypes.h"
16 #include "LayoutTables.h"
17 #include "StateTables.h"
18 #include "MorphTables.h"
19 
20 U_NAMESPACE_BEGIN
21 
22 struct ContextualGlyphSubstitutionHeader : MorphStateTableHeader
23 {
24     ByteOffset  substitutionTableOffset;
25 };
26 
27 struct ContextualGlyphHeader2 : MorphStateTableHeader2
28 {
29     le_uint32  perGlyphTableOffset; // no more substitution tables
30 };
31 
32 enum ContextualGlyphSubstitutionFlags
33 {
34     cgsSetMark      = 0x8000,
35     cgsDontAdvance  = 0x4000,
36     cgsReserved     = 0x3FFF
37 };
38 
39 struct ContextualGlyphSubstitutionStateEntry : StateEntry
40 {
41     WordOffset markOffset;
42     WordOffset currOffset;
43 };
44 
45 struct ContextualGlyphStateEntry2 : StateEntry2
46 {
47     le_uint16 markIndex;
48     le_uint16 currIndex;
49 };
50 
51 U_NAMESPACE_END
52 #endif
53