]> git.saurik.com Git - apple/icu.git/blob - icuSources/layout/GlyphDefinitionTables.h
ICU-511.34.tar.gz
[apple/icu.git] / icuSources / layout / GlyphDefinitionTables.h
1 /*
2 *
3 * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
4 *
5 */
6
7 #ifndef __GLYPHDEFINITIONTABLES_H
8 #define __GLYPHDEFINITIONTABLES_H
9
10 /**
11 * \file
12 * \internal
13 */
14
15 #include "LETypes.h"
16 #include "OpenTypeTables.h"
17 #include "ClassDefinitionTables.h"
18
19 U_NAMESPACE_BEGIN
20
21 typedef ClassDefinitionTable GlyphClassDefinitionTable;
22
23 enum GlyphClassDefinitions
24 {
25 gcdNoGlyphClass = 0,
26 gcdSimpleGlyph = 1,
27 gcdLigatureGlyph = 2,
28 gcdMarkGlyph = 3,
29 gcdComponentGlyph = 4
30 };
31
32 struct AttachmentListTable
33 {
34 Offset coverageTableOffset;
35 le_uint16 glyphCount;
36 Offset attachPointTableOffsetArray[ANY_NUMBER];
37 };
38
39 struct AttachPointTable
40 {
41 le_uint16 pointCount;
42 le_uint16 pointIndexArray[ANY_NUMBER];
43 };
44
45 struct LigatureCaretListTable
46 {
47 Offset coverageTableOffset;
48 le_uint16 ligGlyphCount;
49 Offset ligGlyphTableOffsetArray[ANY_NUMBER];
50 };
51
52 struct LigatureGlyphTable
53 {
54 le_uint16 caretCount;
55 Offset caretValueTableOffsetArray[ANY_NUMBER];
56 };
57
58 struct CaretValueTable
59 {
60 le_uint16 caretValueFormat;
61 };
62
63 struct CaretValueFormat1Table : CaretValueTable
64 {
65 le_int16 coordinate;
66 };
67
68 struct CaretValueFormat2Table : CaretValueTable
69 {
70 le_uint16 caretValuePoint;
71 };
72
73 struct CaretValueFormat3Table : CaretValueTable
74 {
75 le_int16 coordinate;
76 Offset deviceTableOffset;
77 };
78
79 typedef ClassDefinitionTable MarkAttachClassDefinitionTable;
80
81 struct GlyphDefinitionTableHeader
82 {
83 fixed32 version;
84 Offset glyphClassDefOffset;
85 Offset attachListOffset;
86 Offset ligCaretListOffset;
87 Offset MarkAttachClassDefOffset;
88
89 const GlyphClassDefinitionTable *getGlyphClassDefinitionTable() const;
90 const AttachmentListTable *getAttachmentListTable()const ;
91 const LigatureCaretListTable *getLigatureCaretListTable() const;
92 const MarkAttachClassDefinitionTable *getMarkAttachClassDefinitionTable() const;
93 };
94
95 U_NAMESPACE_END
96 #endif