]> git.saurik.com Git - apple/icu.git/blame - icuSources/layout/GlyphDefinitionTables.h
ICU-491.11.2.tar.gz
[apple/icu.git] / icuSources / layout / GlyphDefinitionTables.h
CommitLineData
b75a7d8f 1/*
b75a7d8f 2 *
374ca955 3 * (C) Copyright IBM Corp. 1998-2004 - 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};
38
39struct AttachPointTable
40{
41 le_uint16 pointCount;
42 le_uint16 pointIndexArray[ANY_NUMBER];
43};
44
45struct LigatureCaretListTable
46{
47 Offset coverageTableOffset;
48 le_uint16 ligGlyphCount;
49 Offset ligGlyphTableOffsetArray[ANY_NUMBER];
50};
51
52struct LigatureGlyphTable
53{
54 le_uint16 caretCount;
55 Offset caretValueTableOffsetArray[ANY_NUMBER];
56};
57
58struct CaretValueTable
59{
60 le_uint16 caretValueFormat;
61};
62
63struct CaretValueFormat1Table : CaretValueTable
64{
65 le_int16 coordinate;
66};
67
68struct CaretValueFormat2Table : CaretValueTable
69{
70 le_uint16 caretValuePoint;
71};
72
73struct CaretValueFormat3Table : CaretValueTable
74{
75 le_int16 coordinate;
76 Offset deviceTableOffset;
77};
78
79typedef ClassDefinitionTable MarkAttachClassDefinitionTable;
80
81struct 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
95U_NAMESPACE_END
96#endif