3 * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved
16 #include "OpenTypeTables.h"
22 lfBaselineIsLogicalEnd
= 0x0001, // The MS spec. calls this flag "RightToLeft" but this name is more accurate
23 lfIgnoreBaseGlyphs
= 0x0002,
24 lfIgnoreLigatures
= 0x0004,
25 lfIgnoreMarks
= 0x0008,
26 lfReservedMask
= 0x00F0,
27 lfMarkAttachTypeMask
= 0xFF00,
28 lfMarkAttachTypeShift
= 8
33 le_uint16 subtableFormat
;
34 Offset coverageTableOffset
;
36 inline le_int32
getGlyphCoverage(const LEReferenceTo
<LookupSubtable
> &base
, LEGlyphID glyphID
, LEErrorCode
&success
) const;
38 le_int32
getGlyphCoverage(const LEReferenceTo
<LookupSubtable
> &base
, Offset tableOffset
, LEGlyphID glyphID
, LEErrorCode
&success
) const;
41 inline le_int32
getGlyphCoverage(const LETableReference
&base
, LEGlyphID glyphID
, LEErrorCode
&success
) const;
43 inline le_int32
getGlyphCoverage(const LETableReference
&base
, Offset tableOffset
, LEGlyphID glyphID
, LEErrorCode
&success
) const;
49 le_uint16 lookupFlags
;
50 le_uint16 subTableCount
;
51 Offset subTableOffsetArray
[ANY_NUMBER
];
53 const LEReferenceTo
<LookupSubtable
> getLookupSubtable(const LEReferenceTo
<LookupTable
> &base
, le_uint16 subtableIndex
, LEErrorCode
&success
) const;
55 LE_VAR_ARRAY(LookupTable
, subTableOffsetArray
)
57 struct LookupListTable
59 le_uint16 lookupCount
;
60 Offset lookupTableOffsetArray
[ANY_NUMBER
];
62 const LEReferenceTo
<LookupTable
> getLookupTable(const LEReferenceTo
<LookupListTable
> &base
, le_uint16 lookupTableIndex
, LEErrorCode
&success
) const;
64 LE_VAR_ARRAY(LookupListTable
, lookupTableOffsetArray
)
66 inline le_int32
LookupSubtable::getGlyphCoverage(const LEReferenceTo
<LookupSubtable
> &base
, LEGlyphID glyphID
, LEErrorCode
&success
) const
68 return getGlyphCoverage(base
, coverageTableOffset
, glyphID
, success
);
71 inline le_int32
LookupSubtable::getGlyphCoverage(const LETableReference
&base
, LEGlyphID glyphID
, LEErrorCode
&success
) const {
72 LEReferenceTo
<LookupSubtable
> thisRef(base
, success
, this);
73 return getGlyphCoverage(thisRef
, glyphID
, success
);
76 inline le_int32
LookupSubtable::getGlyphCoverage(const LETableReference
&base
, Offset tableOffset
, LEGlyphID glyphID
, LEErrorCode
&success
) const {
77 LEReferenceTo
<LookupSubtable
> thisRef(base
, success
, this);
78 return getGlyphCoverage(thisRef
, tableOffset
, glyphID
, success
);