00001 /* 00002 * @(#)ClassDefinitionTables.h 1.5 00/03/15 00003 * 00004 * (C) Copyright IBM Corp. 1998, 1999, 2000 - All Rights Reserved 00005 * 00006 */ 00007 00008 #ifndef __CLASSDEFINITIONTABLES_H 00009 #define __CLASSDEFINITIONTABLES_H 00010 00011 #include "LETypes.h" 00012 #include "OpenTypeTables.h" 00013 00014 struct ClassDefinitionTable 00015 { 00016 le_uint16 classFormat; 00017 00018 le_int32 getGlyphClass(LEGlyphID glyphID); 00019 le_bool hasGlyphClass(le_int32 glyphClass); 00020 }; 00021 00022 struct ClassDefFormat1Table : ClassDefinitionTable 00023 { 00024 LEGlyphID startGlyph; 00025 le_uint16 glyphCount; 00026 le_uint16 classValueArray[ANY_NUMBER]; 00027 00028 le_int32 getGlyphClass(LEGlyphID glyphID); 00029 le_bool hasGlyphClass(le_int32 glyphClass); 00030 }; 00031 00032 struct ClassRangeRecord 00033 { 00034 LEGlyphID start; 00035 LEGlyphID end; 00036 le_uint16 classValue; 00037 }; 00038 00039 struct ClassDefFormat2Table : ClassDefinitionTable 00040 { 00041 le_uint16 classRangeCount; 00042 GlyphRangeRecord classRangeRecordArray[ANY_NUMBER]; 00043 00044 le_int32 getGlyphClass(LEGlyphID glyphID); 00045 le_bool hasGlyphClass(le_int32 glyphClass); 00046 }; 00047 00048 #endif