00001 /* 00002 * @(#)Lookups.h 1.5 00/03/15 00003 * 00004 * (C) Copyright IBM Corp. 1998, 1999, 2000 - All Rights Reserved 00005 * 00006 */ 00007 00008 #ifndef __LOOKUPS_H 00009 #define __LOOKUPS_H 00010 00011 #include "LETypes.h" 00012 #include "OpenTypeTables.h" 00013 00014 enum LookupFlags 00015 { 00016 lfReservedBit = 0x0001, 00017 lfIgnoreBaseGlyphs = 0x0002, 00018 lfIgnoreLigatures = 0x0004, 00019 lfIgnoreMarks = 0x0008, 00020 lfReservedMask = 0x00F0, 00021 lfMarkAttachTypeMask = 0xFF00, 00022 lfMarkAttachTypeShift = 8 00023 }; 00024 00025 struct LookupSubtable 00026 { 00027 le_uint16 subtableFormat; 00028 Offset coverageTableOffset; 00029 00030 le_int32 getGlyphCoverage(LEGlyphID glyphID); 00031 le_int32 getGlyphCoverage(Offset tableOffset, LEGlyphID glyphID); 00032 }; 00033 00034 struct LookupTable 00035 { 00036 le_uint16 lookupType; 00037 le_uint16 lookupFlags; 00038 le_uint16 subTableCount; 00039 Offset subTableOffsetArray[ANY_NUMBER]; 00040 00041 LookupSubtable *getLookupSubtable(le_uint16 subtableIndex); 00042 }; 00043 00044 struct LookupListTable 00045 { 00046 le_uint16 lookupCount; 00047 Offset lookupTableOffsetArray[ANY_NUMBER]; 00048 00049 LookupTable *getLookupTable(le_uint16 lookupTableIndex); 00050 }; 00051 00052 inline le_int32 LookupSubtable::getGlyphCoverage(LEGlyphID glyphID) 00053 { 00054 return getGlyphCoverage(coverageTableOffset, glyphID); 00055 } 00056 00057 00058 00059 #endif