]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/layout/LookupProcessor.h
ICU-8.11.4.tar.gz
[apple/icu.git] / icuSources / layout / LookupProcessor.h
index e8257e9e7685fd377581f36544e6f295a7d0a3cb..bc05ae63b790b5b6e23446f3c71f70cafad6b8c6 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * %W% %E%
  *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
  *
  */
 
 #include "LETypes.h"
 #include "LEFontInstance.h"
 #include "OpenTypeTables.h"
-#include "Lookups.h"
-#include "Features.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphPositionAdjustments.h"
-#include "GlyphIterator.h"
+//#include "Lookups.h"
+//#include "Features.h"
 
 U_NAMESPACE_BEGIN
 
-class LEGlyphStorage;
+class  LEFontInstance;
+class  LEGlyphStorage;
+class  GlyphIterator;
+class  GlyphPositionAdjustments;
+struct FeatureTable;
+struct FeatureListTable;
+struct GlyphDefinitionTableHeader;
+struct LookupSubtable;
+struct LookupTable;
 
 class LookupProcessor : public UMemory {
 public:
-    static const LETag notSelected;
-    static const LETag defaultFeature;
-
-    le_int32 process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustment *glyphPositionAdjustments,
+    le_int32 process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
                  le_bool rightToLeft, const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, const LEFontInstance *fontInstance) const;
 
     le_uint32 applyLookupTable(const LookupTable *lookupTable, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
@@ -44,19 +46,18 @@ public:
     virtual ~LookupProcessor();
 
 protected:
-    LookupProcessor(const char *baseAddress,
+     LookupProcessor(const char *baseAddress,
         Offset scriptListOffset, Offset featureListOffset, Offset lookupListOffset,
-        LETag scriptTag, LETag languageTag, const LETag *featureOrder);
+        LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool orderFeatures);
 
-    LookupProcessor();
+   LookupProcessor();
 
-    le_int32 selectLookups(const FeatureTable *featureTable, LETag featureTag, le_int32 order);
+    le_int32 selectLookups(const FeatureTable *featureTable, FeatureMask featureMask, le_int32 order);
 
     const LookupListTable   *lookupListTable;
     const FeatureListTable  *featureListTable;
 
-    LETag                   *lookupSelectArray;
-    LETag                   requiredFeatureTag;
+    FeatureMask            *lookupSelectArray;
 
     le_uint16               *lookupOrderArray;
     le_uint32               lookupOrderCount;