]> git.saurik.com Git - apple/icu.git/blame - icuSources/layout/GlyphDefinitionTables.h
ICU-531.48.tar.gz
[apple/icu.git] / icuSources / layout / GlyphDefinitionTables.h
CommitLineData
b75a7d8f 1/*
b75a7d8f 2 *
57a6839d 3 * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved
b75a7d8f
A
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
19U_NAMESPACE_BEGIN
20
21typedef ClassDefinitionTable GlyphClassDefinitionTable;
22
23enum GlyphClassDefinitions
24{
25 gcdNoGlyphClass = 0,
26 gcdSimpleGlyph = 1,
27 gcdLigatureGlyph = 2,
28 gcdMarkGlyph = 3,
29 gcdComponentGlyph = 4
30};
31
32struct AttachmentListTable
33{
34 Offset coverageTableOffset;
35 le_uint16 glyphCount;
36 Offset attachPointTableOffsetArray[ANY_NUMBER];
37};
57a6839d 38LE_VAR_ARRAY(AttachmentListTable, attachPointTableOffsetArray)
b75a7d8f
A
39
40struct AttachPointTable
41{
42 le_uint16 pointCount;
43 le_uint16 pointIndexArray[ANY_NUMBER];
44};
57a6839d 45LE_VAR_ARRAY(AttachPointTable, pointIndexArray)
b75a7d8f
A
46
47struct LigatureCaretListTable
48{
49 Offset coverageTableOffset;
50 le_uint16 ligGlyphCount;
51 Offset ligGlyphTableOffsetArray[ANY_NUMBER];
52};
57a6839d 53LE_VAR_ARRAY(LigatureCaretListTable, ligGlyphTableOffsetArray)
b75a7d8f
A
54
55struct LigatureGlyphTable
56{
57 le_uint16 caretCount;
58 Offset caretValueTableOffsetArray[ANY_NUMBER];
59};
57a6839d 60LE_VAR_ARRAY(LigatureGlyphTable, caretValueTableOffsetArray)
b75a7d8f
A
61
62struct CaretValueTable
63{
64 le_uint16 caretValueFormat;
65};
66
67struct CaretValueFormat1Table : CaretValueTable
68{
69 le_int16 coordinate;
70};
71
72struct CaretValueFormat2Table : CaretValueTable
73{
74 le_uint16 caretValuePoint;
75};
76
77struct CaretValueFormat3Table : CaretValueTable
78{
79 le_int16 coordinate;
80 Offset deviceTableOffset;
81};
82
83typedef ClassDefinitionTable MarkAttachClassDefinitionTable;
84
85struct GlyphDefinitionTableHeader
86{
87 fixed32 version;
88 Offset glyphClassDefOffset;
89 Offset attachListOffset;
90 Offset ligCaretListOffset;
91 Offset MarkAttachClassDefOffset;
92
57a6839d
A
93 const LEReferenceTo<GlyphClassDefinitionTable>
94 getGlyphClassDefinitionTable(const LEReferenceTo<GlyphDefinitionTableHeader>& base,
95 LEErrorCode &success) const;
96 const LEReferenceTo<AttachmentListTable>
97 getAttachmentListTable(const LEReferenceTo<GlyphDefinitionTableHeader>& base,
98 LEErrorCode &success)const ;
99 const LEReferenceTo<LigatureCaretListTable>
100 getLigatureCaretListTable(const LEReferenceTo<GlyphDefinitionTableHeader>& base,
101 LEErrorCode &success) const;
102 const LEReferenceTo<MarkAttachClassDefinitionTable>
103 getMarkAttachClassDefinitionTable(const LEReferenceTo<GlyphDefinitionTableHeader>& base,
104 LEErrorCode &success) const;
b75a7d8f
A
105};
106
107U_NAMESPACE_END
108#endif