Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

MorphTables.h

Go to the documentation of this file.
00001 /*
00002  * @(#)MorphTables.h    1.5 00/03/15
00003  *
00004  * (C) Copyright IBM Corp. 1998, 1999, 2000 - All Rights Reserved
00005  *
00006  */
00007 
00008 #ifndef __MORPHTABLES_H
00009 #define __MORPHTABLES_H
00010 
00011 #include "LETypes.h"
00012 #include "LayoutTables.h"
00013 
00014 typedef le_uint32 FeatureFlags;
00015 
00016 typedef le_int16 FeatureType;
00017 typedef le_int16 FeatureSetting;
00018 
00019 struct FeatureTableEntry
00020 {
00021     FeatureType     featureType;
00022     FeatureSetting  featureSetting;
00023     FeatureFlags    enableFlags;
00024     FeatureFlags    disableFlags;
00025 };
00026 
00027 struct ChainHeader
00028 {
00029     FeatureFlags        defaultFlags;
00030     le_uint32           chainLength;
00031     le_int16           nFeatureEntries;
00032     le_int16           nSubtables;
00033     FeatureTableEntry   featureTable[ANY_NUMBER];
00034 };
00035 
00036 struct MorphTableHeader
00037 {
00038     le_int32    version;
00039     le_uint32   nChains;
00040     ChainHeader chains[ANY_NUMBER];
00041 
00042     void process(LEGlyphID *glyphs, le_int32 *glyphIndices, le_int32 glyphCount);
00043 };
00044 
00045 typedef le_int16 SubtableCoverage;
00046 
00047 enum SubtableCoverageFlags
00048 {
00049     scfVertical = 0x8000,
00050     scfReverse  = 0x4000,
00051     scfIgnoreVt = 0x2000,
00052     scfReserved = 0x1FF8,
00053     scfTypeMask = 0x0007
00054 };
00055 
00056 enum MorphSubtableType
00057 {
00058     mstIndicRearrangement               = 0,
00059     mstContextualGlyphSubstitution      = 1,
00060     mstLigatureSubstitution             = 2,
00061     mstReservedUnused                   = 3,
00062     mstNonContextualGlyphSubstitution   = 4,
00063     mstContextualGlyphInsertion         = 5
00064 };
00065 
00066 struct MorphSubtableHeader
00067 {
00068     le_int16           length;
00069     SubtableCoverage    coverage;
00070     FeatureFlags        subtableFeatures;
00071 
00072     void process(LEGlyphID *glyphs, le_int32 *glyphIndices, le_int32 glyphCount);
00073 };
00074 
00075 #endif
00076 

Generated at Tue Dec 5 18:13:02 2000 for ICU by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000