1 /* 2 * 3 * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved 4 * 5 */ 6 7 #include "LETypes.h" 8 #include "OpenTypeTables.h" 9 #include "Lookups.h" 10 #include "CoverageTables.h" 11 #include "LESwaps.h" 12 13 U_NAMESPACE_BEGIN 14 15 const LookupTable *LookupListTable::getLookupTable(le_uint16 lookupTableIndex) const 16 { 17 if (lookupTableIndex >= SWAPW(lookupCount)) { 18 return 0; 19 } 20 21 Offset lookupTableOffset = lookupTableOffsetArray[lookupTableIndex]; 22 23 return (const LookupTable *) ((char *) this + SWAPW(lookupTableOffset)); 24 } 25 26 const LookupSubtable *LookupTable::getLookupSubtable(le_uint16 subtableIndex) const 27 { 28 if (subtableIndex >= SWAPW(subTableCount)) { 29 return 0; 30 } 31 32 Offset subtableOffset = subTableOffsetArray[subtableIndex]; 33 34 return (const LookupSubtable *) ((char *) this + SWAPW(subtableOffset)); 35 } 36 37 le_int32 LookupSubtable::getGlyphCoverage(Offset tableOffset, LEGlyphID glyphID) const 38 { 39 const CoverageTable *coverageTable = (const CoverageTable *) ((char *) this + SWAPW(tableOffset)); 40 41 return coverageTable->getGlyphCoverage(glyphID); 42 } 43 44 U_NAMESPACE_END 45