• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * %W% %E%
3  *
4  * (C) Copyright IBM Corp. 2002 - All Rights Reserved
5  *
6  */
7 
8 #include "LETypes.h"
9 #include "OpenTypeTables.h"
10 #include "GlyphSubstitutionTables.h"
11 #include "LookupProcessor.h"
12 #include "ExtensionSubtables.h"
13 #include "GlyphIterator.h"
14 #include "LESwaps.h"
15 
16 U_NAMESPACE_BEGIN
17 
18 
19 // FIXME: should look at the format too... maybe have a sub-class for it?
process(const LookupProcessor * lookupProcessor,le_uint16 lookupType,GlyphIterator * glyphIterator,const LEFontInstance * fontInstance) const20 le_uint32 ExtensionSubtable::process(const LookupProcessor *lookupProcessor, le_uint16 lookupType,
21                                       GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
22 {
23     le_uint16 elt = SWAPW(extensionLookupType);
24 
25     if (elt != lookupType) {
26         le_uint32 extOffset = SWAPL(extensionOffset);
27         LookupSubtable *subtable = (LookupSubtable *) ((char *) this + extOffset);
28 
29         return lookupProcessor->applySubtable(subtable, elt, glyphIterator, fontInstance);
30     }
31 
32     return 0;
33 }
34 
35 U_NAMESPACE_END
36