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
22U_NAMESPACE_BEGIN
23
24struct 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
30struct ComponentRecord
31{
32    Offset ligatureAnchorTableOffsetArray[ANY_NUMBER];
33};
34LE_VAR_ARRAY(ComponentRecord, ligatureAnchorTableOffsetArray)
35
36struct LigatureAttachTable
37{
38    le_uint16 componentCount;
39    ComponentRecord componentRecordArray[ANY_NUMBER];
40};
41LE_VAR_ARRAY(LigatureAttachTable, componentRecordArray)
42
43struct LigatureArray
44{
45    le_uint16 ligatureCount;
46    Offset ligatureAttachTableOffsetArray[ANY_NUMBER];
47};
48LE_VAR_ARRAY(LigatureArray, ligatureAttachTableOffsetArray)
49
50U_NAMESPACE_END
51#endif
52
53