]> git.saurik.com Git - apple/icu.git/blob - icuSources/layout/GlyphPositioningTables.h
ICU-531.48.tar.gz
[apple/icu.git] / icuSources / layout / GlyphPositioningTables.h
1 /*
2 * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved
3 *
4 */
5
6 #ifndef __GLYPHPOSITIONINGTABLES_H
7 #define __GLYPHPOSITIONINGTABLES_H
8
9 /**
10 * \file
11 * \internal
12 */
13
14 #include "LETypes.h"
15 #include "OpenTypeTables.h"
16 #include "Lookups.h"
17 #include "GlyphLookupTables.h"
18 #include "LETableReference.h"
19
20 U_NAMESPACE_BEGIN
21
22 class LEFontInstance;
23 class LEGlyphStorage;
24 class LEGlyphFilter;
25 class GlyphPositionAdjustments;
26 struct GlyphDefinitionTableHeader;
27
28 struct GlyphPositioningTableHeader : public GlyphLookupTableHeader
29 {
30 void process(const LEReferenceTo<GlyphPositioningTableHeader> &base, LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
31 le_bool rightToLeft, LETag scriptTag, LETag languageTag,
32 const LEReferenceTo<GlyphDefinitionTableHeader> &glyphDefinitionTableHeader, LEErrorCode &success,
33 const LEFontInstance *fontInstance, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const;
34 };
35
36 enum GlyphPositioningSubtableTypes
37 {
38 gpstSingle = 1,
39 gpstPair = 2,
40 gpstCursive = 3,
41 gpstMarkToBase = 4,
42 gpstMarkToLigature = 5,
43 gpstMarkToMark = 6,
44 gpstContext = 7,
45 gpstChainedContext = 8,
46 gpstExtension = 9
47 };
48
49 typedef LookupSubtable GlyphPositioningSubtable;
50
51 U_NAMESPACE_END
52 #endif