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