3  * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved 
   8 #include "MorphTables.h" 
   9 #include "SubtableProcessor.h" 
  10 #include "NonContextualGlyphSubst.h" 
  11 #include "NonContextualGlyphSubstProc.h" 
  12 #include "SimpleArrayProcessor.h" 
  13 #include "LEGlyphStorage.h" 
  18 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SimpleArrayProcessor
) 
  20 SimpleArrayProcessor::SimpleArrayProcessor() 
  24 SimpleArrayProcessor::SimpleArrayProcessor(const MorphSubtableHeader 
*morphSubtableHeader
) 
  25   : NonContextualGlyphSubstitutionProcessor(morphSubtableHeader
) 
  27     const NonContextualGlyphSubstitutionHeader 
*header 
= (const NonContextualGlyphSubstitutionHeader 
*) morphSubtableHeader
; 
  29     simpleArrayLookupTable 
= (const SimpleArrayLookupTable 
*) &header
->table
; 
  32 SimpleArrayProcessor::~SimpleArrayProcessor() 
  36 void SimpleArrayProcessor::process(LEGlyphStorage 
&glyphStorage
) 
  38     le_int32 glyphCount 
= glyphStorage
.getGlyphCount(); 
  41     for (glyph 
= 0; glyph 
< glyphCount
; glyph 
+= 1) { 
  42         LEGlyphID thisGlyph 
= glyphStorage
[glyph
]; 
  43         if (LE_GET_GLYPH(thisGlyph
) < 0xFFFF) { 
  44             TTGlyphID newGlyph 
= SWAPW(simpleArrayLookupTable
->valueArray
[LE_GET_GLYPH(thisGlyph
)]); 
  46             glyphStorage
[glyph
] = LE_SET_GLYPH(thisGlyph
, newGlyph
);