1 /* 2 * 3 * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved 4 * 5 */ 6 7 #ifndef __SINGLEPOSITIONINGSUBTABLES_H 8 #define __SINGLEPOSITIONINGSUBTABLES_H 9 10 /** 11 * \file 12 * \internal 13 */ 14 15 #include "LETypes.h" 16 #include "LEFontInstance.h" 17 #include "OpenTypeTables.h" 18 #include "GlyphPositioningTables.h" 19 #include "ValueRecords.h" 20 #include "GlyphIterator.h" 21 22 U_NAMESPACE_BEGIN 23 24 struct SinglePositioningSubtable : GlyphPositioningSubtable 25 { 26 le_uint32 process(const LEReferenceTo<SinglePositioningSubtable> &base, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode &success) const; 27 }; 28 29 struct SinglePositioningFormat1Subtable : SinglePositioningSubtable 30 { 31 ValueFormat valueFormat; 32 ValueRecord valueRecord; 33 34 le_uint32 process(const LEReferenceTo<SinglePositioningFormat1Subtable> &base, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode &success) const; 35 }; 36 37 struct SinglePositioningFormat2Subtable : SinglePositioningSubtable 38 { 39 ValueFormat valueFormat; 40 le_uint16 valueCount; 41 ValueRecord valueRecordArray[ANY_NUMBER]; 42 43 le_uint32 process(const LEReferenceTo<SinglePositioningFormat2Subtable> &base, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode &success) const; 44 }; 45 LE_VAR_ARRAY(SinglePositioningFormat2Subtable, valueRecordArray) 46 47 U_NAMESPACE_END 48 #endif 49 50 51