Home | History | Annotate | Download | only in layout
      1 /*
      2  *
      3  * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved
      4  *
      5  */
      6 
      7 #ifndef __MARKTOLIGATUREPOSITIONINGSUBTABLES_H
      8 #define __MARKTOLIGATUREPOSITIONINGSUBTABLES_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 "AttachmentPosnSubtables.h"
     20 #include "GlyphIterator.h"
     21 
     22 U_NAMESPACE_BEGIN
     23 
     24 struct MarkToLigaturePositioningSubtable : AttachmentPositioningSubtable
     25 {
     26   le_int32   process(const LETableReference &base, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode &success) const;
     27     LEGlyphID  findLigatureGlyph(GlyphIterator *glyphIterator) const;
     28 };
     29 
     30 struct ComponentRecord
     31 {
     32     Offset ligatureAnchorTableOffsetArray[ANY_NUMBER];
     33 };
     34 LE_VAR_ARRAY(ComponentRecord, ligatureAnchorTableOffsetArray)
     35 
     36 struct LigatureAttachTable
     37 {
     38     le_uint16 componentCount;
     39     ComponentRecord componentRecordArray[ANY_NUMBER];
     40 };
     41 LE_VAR_ARRAY(LigatureAttachTable, componentRecordArray)
     42 
     43 struct LigatureArray
     44 {
     45     le_uint16 ligatureCount;
     46     Offset ligatureAttachTableOffsetArray[ANY_NUMBER];
     47 };
     48 LE_VAR_ARRAY(LigatureArray, ligatureAttachTableOffsetArray)
     49 
     50 U_NAMESPACE_END
     51 #endif
     52 
     53