1Font::TTF::Silf(3)    User Contributed Perl Documentation   Font::TTF::Silf(3)
2
3
4

NAME

6       Font::TTF::Silf - The main Graphite table
7

DESCRIPTION

9       The Silf table holds the core of the Graphite rules for a font. A Silf
10       table has potentially multiple silf subtables, although there is
11       usually only one. Within a silf subtable, there are a number of passes
12       which contain the actual finite state machines to match rules and the
13       constraint and action code to be executed when a rule matches.
14

INSTANCE VARIABLES

16       Version
17           Silf table format version
18
19       Compiler
20           Lowest compiler version necessary to fully support the semantics
21           expressed in this Graphite description
22
23       SILF
24           An array of Silf subtables
25
26           maxGlyphID
27               The maximum glyph id referenced including pseudo and non glyphs
28
29           Ascent
30               Extra ascent to be added to the font ascent.
31
32           Descent
33               Extra descent to be added to the font descent. Both values are
34               assumed to be positive for a descender below the base line.
35
36           substPass
37               Pass index into PASS of the first substitution pass.
38
39           posPass
40               Pass index into PASS of the first positioning pass.
41
42           justPass
43               Pass index into PASS of the first justification pass.
44
45           bidiPass
46               Pass index of the pass before which the bidirectional
47               processing pass will be executed.  0xFF indicates that there is
48               no bidi pass to be executed.
49
50           Flags
51               A bitfield of flags:
52
53                   0 - Indicates there are line end contextual rules in one of the passes
54
55           maxPreContext
56               Maximum length of a context preceding a cross line boundary
57               contextualisation.
58
59           maxPostContext
60               Maximum length of a context following a cross line boundary
61               contextualsation.
62
63           attrPseudo
64               Glyph attribute for the actual glyph id associated with a
65               pseudo glyph.
66
67           attrBreakWeight
68               Glyph attribute number of the attribute holding the default
69               breakweight associated with a glyph.
70
71           attrDirectionality
72               Glyph attribute number of the attribute holding the default
73               directionality value associated with a glyph.
74
75           JUST
76               The may be a number of justification levels each with their own
77               property values.  This points to an array of hashes, one for
78               each justification level.
79
80               attrStretch
81                   Glyph attribute number for the amount of stretch allowed
82                   before this glyph.
83
84               attrShrink
85                   Glyph attribute number for the amount of shrink allowed
86                   before this glyph.
87
88               attrStep
89                   Glyph attribute number specifying the minimum granularity
90                   of actual spacing associated with this glyph at this level.
91
92               attrWeight
93                   Glyph attribute number giving the weight associated with
94                   spreading space across a run of glyphs.
95
96               runto
97                   Which level starts the next stage.
98
99           numLigComp
100               Number of initial glyph attributes that represent ligature
101               components
102
103           numUserAttr
104               Number of user defined slot attributes referenced. Tells the
105               engine how much space to allocate to a slot for user
106               attributes.
107
108           maxCompPerLig
109               Maximum number of components per ligature.
110
111           direction
112               Supported directions for this writing system
113
114           CRIT_FEATURE
115               Array of critical features.
116
117           scripts
118               Array of script tags that indicate which set of GDL rules to
119               execute if there is more than one in a font.
120
121           lbGID
122               Glyph ID of the linebreak pseudo glyph.
123
124           pseudos
125               Hash of Unicode values to pseduo glyph ids.
126
127           classes
128               This is an array of classes, each of which is an array of glyph
129               ids in class order.
130
131           PASS
132               The details of rules and actions are stored in passes. This
133               value is an array of pass subobjects one for each pass.
134
135               flags
136                   This is a bitfield:
137
138                       0 - If true, this pass makes no change to the slot stream considered as a sequence of glyph ids.
139                           Only slot attributes are expected to change (for example during positioning).
140
141               maxRuleLoop
142                   How many times the engine will allow rules to be tested and
143                   run without the engine advancing through the input slot
144                   stream.
145
146               maxRuleContext
147                   Number of slots of input needed to run this pass.
148
149               maxBackup
150                   Number of slots by which the following pass needs to trail
151                   this pass (i.e. the maximum this pass is allowed to back
152                   up).
153
154               numRules
155                   Number of action code blocks, and so uncompressed rules, in
156                   this pass.
157
158               numRows
159                   Number of rows in the finite state machine.
160
161               numTransitional
162                   Number of rows in the finite state machine that are not
163                   final states. This specifies the number of rows in the fsm
164                   element.
165
166               numSuccess
167                   Number of success states. A success state may also be a
168                   transitional state.
169
170               numColumns
171                   Number of columns in the finite state machine.
172
173               colmap
174                   A hash, indexed by glyphid, that gives the fsm column
175                   number associated with that glyphid. If not present, then
176                   the glyphid is not part of the fsm and will finish fsm
177                   processing if it occurs.
178
179               rulemap
180                   An array of arrays, one for each success state. Each array
181                   holds a list of rule numbers associated with that state.
182
183               minRulePreContext
184                   Minimum number of items in a rule's precontext.
185
186               maxRulePreContext
187                   The maximum number of items in any rule's precontext.
188
189               startStates
190                   Array of starting state numbers dependeing on the length of
191                   actual precontext.  There are maxRulePreContext -
192                   minRulePreContext + 1 of these.
193
194               ruleSortKeys
195                   An array of sort keys one for each rule giving the length
196                   of the rule including its precontext.
197
198               rulePreContexts
199                   An array of precontext lengths for each rule.
200
201               fsm A two dimensional array such that $p->{'fsm'}[$row][$col]
202                   gives the row of the next node to try in the fsm.
203
204               passConstraintLen
205                   Length in bytes of the passConstraint code.
206
207               passConstraintCode
208                   A byte string holding the pass constraint code.
209
210               constraintCode
211                   An array of byte strings holding the constraint code for
212                   each rule.
213
214               actionCode
215                   An array of byte strings holding the action code for each
216                   rule.
217
218   @opcodes
219       Each array holds the name of the opcode, the number of operand bytes
220       and a string describing the operands.  The characters in the string
221       have the following meaning:
222
223           c - lsb of class id
224           C - msb of class id
225           f - feature index
226           g - lsb of glyph attribute id
227           G - msb of glyph attribute id
228           l - lsb of a 32-bit extension to a 16-bit number
229           L - msb of a 32-bit number
230           m - glyph metric id
231           n - lsb of a number
232           N - msb of a 16-bit number
233           o - offset (jump)
234           s - slot reference
235           S - slot attribute id
236           v - variable number of following arguments
237
238   read
239       Reads the Silf table into the internal data structure
240
241   out
242       Outputs a Silf data structure to a font file in binary format
243
244   $t->minsize()
245       Returns the minimum size this table can be. If it is smaller than this,
246       then the table must be bad and should be deleted or whatever.
247

AUTHOR

249       Martin Hosken <http://scripts.sil.org/FontUtils>.
250

LICENSING

252       Copyright (c) 1998-2016, SIL International (http://www.sil.org)
253
254       This module is released under the terms of the Artistic License 2.0.
255       For details, see the full text of the license in the file LICENSE.
256
257
258
259perl v5.32.0                      2020-07-28                Font::TTF::Silf(3)
Impressum