]> git.saurik.com Git - apple/icu.git/blame - icuSources/layout/StateTables.h
ICU-511.35.tar.gz
[apple/icu.git] / icuSources / layout / StateTables.h
CommitLineData
b75a7d8f 1/*
b75a7d8f 2 *
51004dcb 3 * (C) Copyright IBM Corp. and others 1998-2013 - All Rights Reserved
b75a7d8f
A
4 *
5 */
6
7#ifndef __STATETABLES_H
8#define __STATETABLES_H
9
10/**
11 * \file
12 * \internal
13 */
14
15#include "LETypes.h"
16#include "LayoutTables.h"
17
18U_NAMESPACE_BEGIN
19
20struct StateTableHeader
21{
22 le_int16 stateSize;
23 ByteOffset classTableOffset;
24 ByteOffset stateArrayOffset;
25 ByteOffset entryTableOffset;
26};
27
51004dcb
A
28struct StateTableHeader2
29{
30 le_uint32 nClasses;
31 le_uint32 classTableOffset;
32 le_uint32 stateArrayOffset;
33 le_uint32 entryTableOffset;
34};
35
b75a7d8f
A
36enum ClassCodes
37{
38 classCodeEOT = 0,
39 classCodeOOB = 1,
40 classCodeDEL = 2,
41 classCodeEOL = 3,
42 classCodeFirstFree = 4,
43 classCodeMAX = 0xFF
44};
45
46typedef le_uint8 ClassCode;
47
48struct ClassTable
49{
50 TTGlyphID firstGlyph;
51 le_uint16 nGlyphs;
52 ClassCode classArray[ANY_NUMBER];
53};
54
55enum StateNumber
56{
57 stateSOT = 0,
58 stateSOL = 1,
59 stateFirstFree = 2,
60 stateMAX = 0xFF
61};
62
63typedef le_uint8 EntryTableIndex;
64
65struct StateEntry
66{
67 ByteOffset newStateOffset;
68 le_int16 flags;
69};
70
51004dcb
A
71typedef le_uint16 EntryTableIndex2;
72
73struct StateEntry2 // same struct different interpretation
74{
75 le_uint16 newStateIndex;
76 le_uint16 flags;
77};
78
b75a7d8f
A
79U_NAMESPACE_END
80#endif
81