• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
97