3 * (C) Copyright IBM Corp. 1998-2016 - All Rights Reserved
7 #ifndef __LOOKUPTABLES_H
8 #define __LOOKUPTABLES_H
16 #include "LayoutTables.h"
17 #include "LETableReference.h"
22 enum LookupTableFormat
31 typedef le_int16 LookupValue;
33 // Different from struct LookupTable in Lookups.h.
34 struct LookupTableBase
52 struct BinarySearchLookupTable : LookupTableBase
57 le_int16 entrySelector;
60 const LookupSegment *lookupSegment(const LETableReference &base, const LookupSegment *segments, LEGlyphID glyph, LEErrorCode &success) const;
62 const LookupSingle *lookupSingle(const LETableReference &base, const LookupSingle *entries, LEGlyphID glyph, LEErrorCode &success) const;
65 struct SimpleArrayLookupTable : LookupTableBase
67 LookupValue valueArray[ANY_NUMBER];
69 LE_VAR_ARRAY(SimpleArrayLookupTable, valueArray)
71 struct SegmentSingleLookupTable : BinarySearchLookupTable
73 LookupSegment segments[ANY_NUMBER];
75 LE_VAR_ARRAY(SegmentSingleLookupTable, segments)
77 struct SegmentArrayLookupTable : BinarySearchLookupTable
79 LookupSegment segments[ANY_NUMBER];
81 LE_VAR_ARRAY(SegmentArrayLookupTable, segments)
83 struct SingleTableLookupTable : BinarySearchLookupTable
85 LookupSingle entries[ANY_NUMBER];
87 LE_VAR_ARRAY(SingleTableLookupTable, entries)
89 struct TrimmedArrayLookupTable : LookupTableBase
93 LookupValue valueArray[ANY_NUMBER];
95 LE_VAR_ARRAY(TrimmedArrayLookupTable, valueArray)