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

LookupProcessor.h

Go to the documentation of this file.
00001 /*
00002  * %W% %E%
00003  *
00004  * (C) Copyright IBM Corp. 1998, 1999, 2000 - All Rights Reserved
00005  *
00006  */
00007 
00008 #ifndef __LOOKUPPROCESSOR_H
00009 #define __LOOKUPPROCESSOR_H
00010 
00011 #include "LETypes.h"
00012 #include "LEFontInstance.h"
00013 #include "OpenTypeTables.h"
00014 #include "Lookups.h"
00015 #include "Features.h"
00016 #include "GlyphDefinitionTables.h"
00017 #include "GlyphPositionAdjustments.h"
00018 #include "GlyphIterator.h"
00019 
00020 class LookupProcessor
00021 {
00022 public:
00023     static LETag notSelected;
00024     static LETag defaultFeature;
00025 
00026     void process(LEGlyphID *glyphs, GlyphPositionAdjustment *glyphPositionAdjustments, const LETag **glyphTags, le_int32 glyphCount,
00027                  le_bool rightToLeft, GlyphDefinitionTableHeader *glyphDefinitionTableHeader, LEFontInstance *fontInstance);
00028 
00029     le_uint32 applyLookupTable(LookupTable *lookupTable, GlyphIterator *glyphIterator, LEFontInstance *fontInstance);
00030 
00031     le_uint32 applySingleLookup(le_uint16 lookupTableIndex, GlyphIterator *glyphIterator, LEFontInstance *fontInstance);
00032 
00033     virtual le_uint32 applySubtable(LookupSubtable *lookupSubtable, le_uint16 subtableType,
00034         GlyphIterator *glyphIterator, LEFontInstance *fontInstance) = 0;
00035 
00036     virtual ~LookupProcessor();
00037 
00038 protected:
00039     LookupProcessor(char *baseAddress,
00040         Offset scriptListOffset, Offset featureListOffset, Offset lookupListOffset,
00041         LETag scriptTag, LETag languageTag);
00042 
00043     LookupProcessor();
00044 
00045     LETag selectFeature(le_uint16 featureIndex, LETag tagOverride = notSelected);
00046 
00047     LookupListTable     *lookupListTable;
00048     FeatureListTable    *featureListTable;
00049 
00050     LETag                 *lookupSelectArray;
00051     LETag                 requiredFeatureTag;
00052 };
00053 
00054 #endif

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