w32tex
About: TeX Live provides a comprehensive TeX system including all the major TeX-related programs, macro packages, and fonts that are free software. Windows sources.
  Fossies Dox: w32tex-src.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

otl.h
Go to the documentation of this file.
1 #ifndef CARYLL_INCLUDE_TABLE_OTL_H
2 #define CARYLL_INCLUDE_TABLE_OTL_H
3 
4 #include "caryll/vector.h"
5 #include "table-common.h"
6 #include "otl/coverage.h"
7 #include "otl/classdef.h"
8 
9 typedef enum {
11 
21 
33 
34 
35 /*typedef union _otl_subtable otl_Subtable;*/
36 typedef struct _otl_lookup otl_Lookup;
37 
38 
39 typedef struct {
45 
46 // GSUB subtable formats
47 typedef struct {
53 
54 typedef struct {
60 
61 typedef struct {
68 
69 typedef enum {
71  0, // The canonical form of chaining contextual substitution, one rule per subtable.
72  otl_chaining_poly = 1, // The multi-rule form, right after reading OTF. N rule per subtable.
74  2 // The classified intermediate form, for building TTF with compression.
75  // N rules, has classdefs, and coverage GID interpreted as class number.
77 
78 typedef struct {
82 typedef struct {
90 typedef struct {
92  union {
93  otl_ChainingRule rule; // for type = otl_chaining_canonical
94  struct { // for type = otl_chaining_poly or otl_chaining_classified
100  };
101  };
104 
105 typedef struct {
112 
113 // GPOS subtable formats
114 typedef struct {
120 
121 typedef struct {
122  bool present;
125 } otl_Anchor;
126 
127 typedef struct {
134 
135 typedef struct {
142 
143 typedef struct {
150 
151 typedef struct {
157 
158 typedef struct {
164 
165 typedef struct {
172 
173 typedef struct {
179 
180 typedef struct {
182  /*otl_Subtable *subtable;*/
185 
186 typedef union _otl_subtable {
199 
204  void (*disposeDependent)(MODIFY otl_SubtableList *, const otl_Lookup *);
205 }
207 
208 struct _otl_lookup {
214 };
215 
216 // owning lookup list
221 
222 // observe lookup list
227 
228 typedef struct {
231 } otl_Feature;
232 // owning feature list
237 // observe feature list
242 
243 typedef struct {
252 
253 typedef struct {
257 } table_OTL;
259 
260 #endif
static void
Definition: fpif.c:118
caryll_ElementInterface(otl_LookupPtr) otl_iLookupPtr
otl_LookupType
Definition: otl.h:9
@ otl_type_gsub_context
Definition: otl.h:17
@ otl_type_gpos_markToLigature
Definition: otl.h:27
@ otl_type_gsub_single
Definition: otl.h:13
@ otl_type_gpos_context
Definition: otl.h:29
@ otl_type_gsub_chaining
Definition: otl.h:18
@ otl_type_gsub_alternate
Definition: otl.h:15
@ otl_type_gpos_chaining
Definition: otl.h:30
@ otl_type_gpos_pair
Definition: otl.h:24
@ otl_type_gpos_cursive
Definition: otl.h:25
@ otl_type_gpos_extend
Definition: otl.h:31
@ otl_type_gpos_markToMark
Definition: otl.h:28
@ otl_type_gpos_single
Definition: otl.h:23
@ otl_type_gsub_unknown
Definition: otl.h:12
@ otl_type_gsub_extend
Definition: otl.h:19
@ otl_type_gpos_markToBase
Definition: otl.h:26
@ otl_type_gpos_unknown
Definition: otl.h:22
@ otl_type_unknown
Definition: otl.h:10
@ otl_type_gsub_reverse
Definition: otl.h:20
@ otl_type_gsub_multiple
Definition: otl.h:14
@ otl_type_gsub_ligature
Definition: otl.h:16
otl_Subtable * otl_SubtablePtr
Definition: otl.h:200
caryll_VectorInterface(subtable_gsub_single, otl_GsubSingleEntry) iSubtable_gsub_single
OBSERVE otl_Feature * otl_FeatureRef
Definition: otl.h:238
otl_iSubtableList
Definition: otl.h:206
OWNING otl_Feature * otl_FeaturePtr
Definition: otl.h:233
union _otl_subtable otl_Subtable
otl_chaining_type
Definition: otl.h:69
@ otl_chaining_canonical
Definition: otl.h:70
@ otl_chaining_poly
Definition: otl.h:72
@ otl_chaining_classified
Definition: otl.h:73
otl_LanguageSystem * otl_LanguageSystemPtr
Definition: otl.h:248
OWNING otl_Lookup * otl_LookupPtr
Definition: otl.h:217
OBSERVE otl_Lookup * otl_LookupRef
Definition: otl.h:223
typedef caryll_Vector(otl_GsubSingleEntry) subtable_gsub_single
caryll_RefElementInterface(subtable_chaining) iSubtable_chaining
caryll_VectorInterfaceTypeName(otl_SubtableList)
Definition: otl.h:202
unsigned short uint16_t
Definition: stdint.h:79
unsigned int uint32_t
Definition: stdint.h:80
otl_iLigatureArray
Definition: otl.d:20873
iSubtable_gsub_multi
Definition: otl.d:20761
otl_iMarkArray
Definition: otl.d:20851
otl_iLookupPtr
Definition: otl.d:20919
otl_iLookupRef
Definition: otl.d:20925
iSubtable_gsub_ligature
Definition: otl.d:20769
iSubtable_gpos_single
Definition: otl.d:20821
otl_iLookupList
Definition: otl.d:20921
otl_iFeatureRefList
Definition: otl.d:20942
otl_iBaseArray
Definition: otl.d:20858
otl_iFeatureRef
Definition: otl.d:20940
iSubtable_chaining
Definition: otl.d:20805
iSubtable_gsub_reverse
Definition: otl.d:20813
iSubtable_gpos_pair
Definition: otl.d:20835
iSubtable_gpos_markToLigature
Definition: otl.d:20880
otl_iFeaturePtr
Definition: otl.d:20935
iSubtable_gsub_single
Definition: otl.d:20754
otl_iLookupRefList
Definition: otl.d:20927
iSubtable_gpos_cursive
Definition: otl.d:20843
otl_iFeatureList
Definition: otl.d:20937
otl_iLangSystemList
Definition: otl.d:20952
table_iOTL
Definition: otl.d:20959
otl_iLanguageSystem
Definition: otl.d:20950
iSubtable_gpos_markToSingle
Definition: otl.d:20865
#define MODIFY
Definition: ownership.h:7
#define OWNING
Definition: ownership.h:4
#define OBSERVE
Definition: ownership.h:6
double pos_t
Definition: primitives.h:24
uint16_t tableid_t
Definition: primitives.h:17
uint16_t glyphid_t
Definition: primitives.h:14
uint16_t glyphclass_t
Definition: primitives.h:15
char * sds
Definition: sds.h:41
uint32_t _offset
Definition: otl.h:211
otl_LookupType type
Definition: otl.h:210
uint16_t flags
Definition: otl.h:212
OWNING otl_SubtableList subtables
Definition: otl.h:213
sds name
Definition: otl.h:209
bool present
Definition: otl.h:122
pos_t x
Definition: otl.h:123
pos_t y
Definition: otl.h:124
OWNING otl_Anchor * anchors
Definition: otl.h:153
OWNING otfcc_GlyphHandle glyph
Definition: otl.h:152
otfcc_LookupHandle lookup
Definition: otl.h:80
tableid_t applyCount
Definition: otl.h:87
tableid_t matchCount
Definition: otl.h:83
OWNING otl_Coverage ** match
Definition: otl.h:86
tableid_t inputBegins
Definition: otl.h:84
tableid_t inputEnds
Definition: otl.h:85
OWNING otl_ChainLookupApplication * apply
Definition: otl.h:88
sds name
Definition: otl.h:229
OWNING otl_LookupRefList lookups
Definition: otl.h:230
OWNING otl_Anchor enter
Definition: otl.h:137
OWNING otfcc_GlyphHandle target
Definition: otl.h:136
OWNING otl_Anchor exit
Definition: otl.h:138
OWNING otl_PositionValue value
Definition: otl.h:116
OWNING otfcc_GlyphHandle target
Definition: otl.h:115
OWNING otfcc_GlyphHandle to
Definition: otl.h:63
OWNING otl_Coverage * from
Definition: otl.h:62
OWNING otfcc_GlyphHandle from
Definition: otl.h:55
OWNING otl_Coverage * to
Definition: otl.h:56
OWNING otfcc_GlyphHandle to
Definition: otl.h:49
OWNING otfcc_GlyphHandle from
Definition: otl.h:48
OWNING otl_FeatureRefList features
Definition: otl.h:246
OWNING otl_FeatureRef requiredFeature
Definition: otl.h:245
glyphid_t componentCount
Definition: otl.h:167
OWNING otfcc_GlyphHandle glyph
Definition: otl.h:166
OWNING otl_Anchor ** anchors
Definition: otl.h:168
OWNING otfcc_GlyphHandle glyph
Definition: otl.h:144
glyphclass_t markClass
Definition: otl.h:145
otl_Anchor anchor
Definition: otl.h:146
pos_t dy
Definition: otl.h:41
pos_t dHeight
Definition: otl.h:43
pos_t dWidth
Definition: otl.h:42
pos_t dx
Definition: otl.h:40
otl_ChainingRule rule
Definition: otl.h:93
OWNING otl_ClassDef * ic
Definition: otl.h:98
otl_chaining_type type
Definition: otl.h:91
tableid_t rulesCount
Definition: otl.h:95
OWNING otl_ClassDef * fc
Definition: otl.h:99
OWNING otl_ClassDef * bc
Definition: otl.h:97
OWNING otl_ChainingRule ** rules
Definition: otl.h:96
union _otl_subtable * subtable
Definition: otl.h:183
otl_LookupType type
Definition: otl.h:181
otl_LigatureArray ligArray
Definition: otl.h:176
OWNING otl_MarkArray markArray
Definition: otl.h:175
glyphclass_t classCount
Definition: otl.h:174
OWNING otl_MarkArray markArray
Definition: otl.h:160
otl_BaseArray baseArray
Definition: otl.h:161
glyphclass_t classCount
Definition: otl.h:159
OWNING otl_PositionValue ** firstValues
Definition: otl.h:130
OWNING otl_ClassDef * second
Definition: otl.h:129
OWNING otl_PositionValue ** secondValues
Definition: otl.h:131
OWNING otl_ClassDef * first
Definition: otl.h:128
OWNING otl_Coverage ** match
Definition: otl.h:108
tableid_t inputIndex
Definition: otl.h:107
tableid_t matchCount
Definition: otl.h:106
OWNING otl_Coverage * to
Definition: otl.h:109
Definition: otl.h:253
otl_FeatureList features
Definition: otl.h:255
otl_LookupList lookups
Definition: otl.h:254
otl_LangSystemList languages
Definition: otl.h:256
subtable_gsub_reverse gsub_reverse
Definition: otl.h:191
subtable_gpos_markToLigature gpos_markToLigature
Definition: otl.h:196
subtable_gpos_markToSingle gpos_markToSingle
Definition: otl.h:195
subtable_extend extend
Definition: otl.h:197
subtable_gpos_cursive gpos_cursive
Definition: otl.h:194
subtable_gsub_multi gsub_multi
Definition: otl.h:188
subtable_gsub_ligature gsub_ligature
Definition: otl.h:189
subtable_gpos_pair gpos_pair
Definition: otl.h:193
subtable_chaining chaining
Definition: otl.h:190
subtable_gsub_single gsub_single
Definition: otl.h:187
subtable_gpos_single gpos_single
Definition: otl.h:192
#define caryll_VectorInterfaceTrait(__TV, __T)
Definition: vector.h:19