sdk-world v2026.11.05
PS2 SDK - world tier (copyleft-allowed, non-essential packages)
Loading...
Searching...
No Matches
afscript.h
Go to the documentation of this file.
1/****************************************************************************
2 *
3 * afscript.h
4 *
5 * Auto-fitter scripts (specification only).
6 *
7 * Copyright (C) 2013-2025 by
8 * David Turner, Robert Wilhelm, and Werner Lemberg.
9 *
10 * This file is part of the FreeType project, and may only be used,
11 * modified, and distributed under the terms of the FreeType project
12 * license, LICENSE.TXT. By continuing to use, modify, or distribute
13 * this file you indicate that you have read the license and
14 * understand and accept it fully.
15 *
16 */
17
18
19 /* The following part can be included multiple times. */
20 /* Define `SCRIPT' as needed. */
21
22
23 /* Add new scripts here. The first and second arguments are the */
24 /* script name in lowercase and uppercase, respectively, followed */
25 /* by a description string. Then comes the corresponding HarfBuzz */
26 /* script name tag, followed by a string of standard characters (to */
27 /* derive the standard width and height of stems). */
28 /* */
29 /* Note that fallback scripts only have a default style, thus we */
30 /* use `HB_SCRIPT_INVALID' as the HarfBuzz script name tag for */
31 /* them. */
32
37SCRIPT( adlm, ADLM,
38 "Adlam",
39 HB_SCRIPT_ADLAM,
40 HINTING_BOTTOM_TO_TOP,
41 "\xF0\x9E\xA4\x8C \xF0\x9E\xA4\xAE" ) /* 𞤌 𞤮 */
42
43 SCRIPT( arab, ARAB,
44 "Arabic",
45 HB_SCRIPT_ARABIC,
46 HINTING_BOTTOM_TO_TOP,
47 "\xD9\x84 \xD8\xAD \xD9\x80" ) /* ل ح ـ */
48
49 SCRIPT( armn, ARMN,
50 "Armenian",
51 HB_SCRIPT_ARMENIAN,
52 HINTING_BOTTOM_TO_TOP,
53 "\xD5\xBD \xD5\x8D" ) /* ս Ս */
54
55 SCRIPT( avst, AVST,
56 "Avestan",
57 HB_SCRIPT_AVESTAN,
58 HINTING_BOTTOM_TO_TOP,
59 "\xF0\x90\xAC\x9A" ) /* 𐬚 */
60
61 SCRIPT( bamu, BAMU,
62 "Bamum",
63 HB_SCRIPT_BAMUM,
64 HINTING_BOTTOM_TO_TOP,
65 "\xEA\x9B\x81 \xEA\x9B\xAF" ) /* ꛁ ꛯ */
66
67 /* there are no simple forms for letters; we thus use two digit shapes */
68 SCRIPT( beng, BENG,
69 "Bengali",
70 HB_SCRIPT_BENGALI,
71 HINTING_TOP_TO_BOTTOM,
72 "\xE0\xA7\xA6 \xE0\xA7\xAA" ) /* ০ ৪ */
73
74 SCRIPT( buhd, BUHD,
75 "Buhid",
76 HB_SCRIPT_BUHID,
77 HINTING_BOTTOM_TO_TOP,
78 "\xE1\x9D\x8B \xE1\x9D\x8F" ) /* ᝋ ᝏ */
79
80 SCRIPT( cakm, CAKM,
81 "Chakma",
82 HB_SCRIPT_CHAKMA,
83 HINTING_BOTTOM_TO_TOP,
84 "\xF0\x91\x84\xA4 \xF0\x91\x84\x89 \xF0\x91\x84\x9B" ) /* 𑄤 𑄉 𑄛 */
85
86 SCRIPT( cans, CANS,
87 "Canadian Syllabics",
88 HB_SCRIPT_CANADIAN_SYLLABICS,
89 HINTING_BOTTOM_TO_TOP,
90 "\xE1\x91\x8C \xE1\x93\x9A" ) /* ᑌ ᓚ */
91
92 SCRIPT( cari, CARI,
93 "Carian",
94 HB_SCRIPT_CARIAN,
95 HINTING_BOTTOM_TO_TOP,
96 "\xF0\x90\x8A\xAB \xF0\x90\x8B\x89" ) /* 𐊫 𐋉 */
97
98 SCRIPT( cher, CHER,
99 "Cherokee",
100 HB_SCRIPT_CHEROKEE,
101 HINTING_BOTTOM_TO_TOP,
102 "\xE1\x8E\xA4 \xE1\x8F\x85 \xEA\xAE\x95" ) /* Ꭴ Ꮕ ꮕ */
103
104 SCRIPT( copt, COPT,
105 "Coptic",
106 HB_SCRIPT_COPTIC,
107 HINTING_BOTTOM_TO_TOP,
108 "\xE2\xB2\x9E \xE2\xB2\x9F" ) /* Ⲟ ⲟ */
109
110 SCRIPT( cprt, CPRT,
111 "Cypriot",
112 HB_SCRIPT_CYPRIOT,
113 HINTING_BOTTOM_TO_TOP,
114 "\xF0\x90\xA0\x85 \xF0\x90\xA0\xA3" ) /* 𐠅 𐠣 */
115
116 SCRIPT( cyrl, CYRL,
117 "Cyrillic",
118 HB_SCRIPT_CYRILLIC,
119 HINTING_BOTTOM_TO_TOP,
120 "\xD0\xBE \xD0\x9E" ) /* о О */
121
122 SCRIPT( deva, DEVA,
123 "Devanagari",
124 HB_SCRIPT_DEVANAGARI,
125 HINTING_TOP_TO_BOTTOM,
126 "\xE0\xA4\xA0 \xE0\xA4\xB5 \xE0\xA4\x9F" ) /* ठ व ट */
127
128 SCRIPT( dsrt, DSRT,
129 "Deseret",
130 HB_SCRIPT_DESERET,
131 HINTING_BOTTOM_TO_TOP,
132 "\xF0\x90\x90\x84 \xF0\x90\x90\xAC" ) /* 𐐄 𐐬 */
133
134 SCRIPT( ethi, ETHI,
135 "Ethiopic",
136 HB_SCRIPT_ETHIOPIC,
137 HINTING_BOTTOM_TO_TOP,
138 "\xE1\x8B\x90" ) /* ዐ */
139
140 SCRIPT( geor, GEOR,
141 "Georgian (Mkhedruli)",
142 HB_SCRIPT_GEORGIAN,
143 HINTING_BOTTOM_TO_TOP,
144 "\xE1\x83\x98 \xE1\x83\x94 \xE1\x83\x90 \xE1\xB2\xBF" ) /* ი ე ა Ი */
145
146 SCRIPT( geok, GEOK,
147 "Georgian (Khutsuri)",
148 HB_SCRIPT_INVALID,
149 HINTING_BOTTOM_TO_TOP,
150 "\xE1\x82\xB6 \xE1\x82\xB1 \xE2\xB4\x99" ) /* Ⴖ Ⴑ ⴙ */
151
152 SCRIPT( glag, GLAG,
153 "Glagolitic",
154 HB_SCRIPT_GLAGOLITIC,
155 HINTING_BOTTOM_TO_TOP,
156 "\xE2\xB0\x95 \xE2\xB1\x85" ) /* Ⱅ ⱅ */
157
158 SCRIPT( goth, GOTH,
159 "Gothic",
160 HB_SCRIPT_GOTHIC,
161 HINTING_TOP_TO_BOTTOM,
162 "\xF0\x90\x8C\xB4 \xF0\x90\x8C\xBE \xF0\x90\x8D\x83" ) /* 𐌴 𐌾 𐍃 */
163
164 SCRIPT( grek, GREK,
165 "Greek",
166 HB_SCRIPT_GREEK,
167 HINTING_BOTTOM_TO_TOP,
168 "\xCE\xBF \xCE\x9F" ) /* ο Ο */
169
170 SCRIPT( gujr, GUJR,
171 "Gujarati",
172 HB_SCRIPT_GUJARATI,
173 HINTING_BOTTOM_TO_TOP,
174 "\xE0\xAA\x9F \xE0\xAB\xA6" ) /* ટ ૦ */
175
176 SCRIPT( guru, GURU,
177 "Gurmukhi",
178 HB_SCRIPT_GURMUKHI,
179 HINTING_TOP_TO_BOTTOM,
180 "\xE0\xA8\xA0 \xE0\xA8\xB0 \xE0\xA9\xA6" ) /* ਠ ਰ ੦ */
181
182 SCRIPT( hebr, HEBR,
183 "Hebrew",
184 HB_SCRIPT_HEBREW,
185 HINTING_BOTTOM_TO_TOP,
186 "\xD7\x9D" ) /* ם */
187
188 SCRIPT( kali, KALI,
189 "Kayah Li",
190 HB_SCRIPT_KAYAH_LI,
191 HINTING_BOTTOM_TO_TOP,
192 "\xEA\xA4\x8D \xEA\xA4\x80" ) /* ꤍ ꤀ */
193
194 /* only digit zero has a simple shape in the Khmer script */
195 SCRIPT( khmr, KHMR,
196 "Khmer",
197 HB_SCRIPT_KHMER,
198 HINTING_BOTTOM_TO_TOP,
199 "\xE1\x9F\xA0" ) /* ០ */
200
201 SCRIPT( khms, KHMS,
202 "Khmer Symbols",
203 HB_SCRIPT_INVALID,
204 HINTING_BOTTOM_TO_TOP,
205 "\xE1\xA7\xA1 \xE1\xA7\xAA" ) /* ᧡ ᧪ */
206
207 SCRIPT( knda, KNDA,
208 "Kannada",
209 HB_SCRIPT_KANNADA,
210 HINTING_BOTTOM_TO_TOP,
211 "\xE0\xB3\xA6 \xE0\xB2\xAC" ) /* ೦ ಬ */
212
213 /* only digit zero has a simple shape in the Lao script */
214 SCRIPT( lao, LAO,
215 "Lao",
216 HB_SCRIPT_LAO,
217 HINTING_BOTTOM_TO_TOP,
218 "\xE0\xBB\x90" ) /* ໐ */
219
220 SCRIPT( latn, LATN,
221 "Latin",
222 HB_SCRIPT_LATIN,
223 HINTING_BOTTOM_TO_TOP,
224 "o O 0" )
225
226 SCRIPT( latb, LATB,
227 "Latin Subscript Fallback",
228 HB_SCRIPT_INVALID,
229 HINTING_BOTTOM_TO_TOP,
230 "\xE2\x82\x92 \xE2\x82\x80" ) /* ₒ ₀ */
231
232 SCRIPT( latp, LATP,
233 "Latin Superscript Fallback",
234 HB_SCRIPT_INVALID,
235 HINTING_BOTTOM_TO_TOP,
236 "\xE1\xB5\x92 \xE1\xB4\xBC \xE2\x81\xB0" ) /* ᵒ ᴼ ⁰ */
237
238 SCRIPT( lisu, LISU,
239 "Lisu",
240 HB_SCRIPT_LISU,
241 HINTING_BOTTOM_TO_TOP,
242 "\xEA\x93\xB3" ) /* ꓳ */
243
244 SCRIPT( mlym, MLYM,
245 "Malayalam",
246 HB_SCRIPT_MALAYALAM,
247 HINTING_BOTTOM_TO_TOP,
248 "\xE0\xB4\xA0 \xE0\xB4\xB1" ) /* ഠ റ */
249
250 SCRIPT( medf, MEDF,
251 "Medefaidrin",
252 HB_SCRIPT_MEDEFAIDRIN,
253 HINTING_BOTTOM_TO_TOP,
254 "\xF0\x96\xB9\xA1 \xF0\x96\xB9\x9B \xF0\x96\xB9\xAF" ) /* 𖹡 𖹛 𖹯 */
255
256 SCRIPT( mong, MONG,
257 "Mongolian",
258 HB_SCRIPT_MONGOLIAN,
259 HINTING_TOP_TO_BOTTOM,
260 "\xE1\xA1\x82 \xE1\xA0\xAA" ) /* ᡂ ᠪ */
261
262 SCRIPT( mymr, MYMR,
263 "Myanmar",
264 HB_SCRIPT_MYANMAR,
265 HINTING_BOTTOM_TO_TOP,
266 "\xE1\x80\x9D \xE1\x80\x84 \xE1\x80\x82" ) /* ဝ င ဂ */
267
268 SCRIPT( nkoo, NKOO,
269 "N'Ko",
270 HB_SCRIPT_NKO,
271 HINTING_BOTTOM_TO_TOP,
272 "\xDF\x8B \xDF\x80" ) /* ߋ ߀ */
273
274 SCRIPT( none, NONE,
275 "no script",
276 HB_SCRIPT_INVALID,
277 HINTING_BOTTOM_TO_TOP,
278 "" )
279
280 SCRIPT( olck, OLCK,
281 "Ol Chiki",
282 HB_SCRIPT_OL_CHIKI,
283 HINTING_BOTTOM_TO_TOP,
284 "\xE1\xB1\x9B" ) /* ᱛ */
285
286 SCRIPT( orkh, ORKH,
287 "Old Turkic",
288 HB_SCRIPT_OLD_TURKIC,
289 HINTING_BOTTOM_TO_TOP,
290 "\xF0\x90\xB0\x97" ) /* 𐰗 */
291
292 SCRIPT( osge, OSGE,
293 "Osage",
294 HB_SCRIPT_OSAGE,
295 HINTING_BOTTOM_TO_TOP,
296 "\xF0\x90\x93\x82 \xF0\x90\x93\xAA" ) /* 𐓂 𐓪 */
297
298 SCRIPT( osma, OSMA,
299 "Osmanya",
300 HB_SCRIPT_OSMANYA,
301 HINTING_BOTTOM_TO_TOP,
302 "\xF0\x90\x92\x86 \xF0\x90\x92\xA0" ) /* 𐒆 𐒠 */
303
304 SCRIPT( rohg, ROHG,
305 "Hanifi Rohingya",
306 HB_SCRIPT_HANIFI_ROHINGYA,
307 HINTING_BOTTOM_TO_TOP,
308 "\xF0\x90\xB4\xB0" ) /* 𐴰 */
309
310 SCRIPT( saur, SAUR,
311 "Saurashtra",
312 HB_SCRIPT_SAURASHTRA,
313 HINTING_BOTTOM_TO_TOP,
314 "\xEA\xA2\x9D \xEA\xA3\x90" ) /* ꢝ ꣐ */
315
316 SCRIPT( shaw, SHAW,
317 "Shavian",
318 HB_SCRIPT_SHAVIAN,
319 HINTING_BOTTOM_TO_TOP,
320 "\xF0\x90\x91\xB4" ) /* 𐑴 */
321
322 SCRIPT( sinh, SINH,
323 "Sinhala",
324 HB_SCRIPT_SINHALA,
325 HINTING_BOTTOM_TO_TOP,
326 "\xE0\xB6\xA7" ) /* ට */
327
328 /* only digit zero has a simple (round) shape in the Sundanese script */
329 SCRIPT( sund, SUND,
330 "Sundanese",
331 HB_SCRIPT_SUNDANESE,
332 HINTING_BOTTOM_TO_TOP,
333 "\xE1\xAE\xB0" ) /* ᮰ */
334
335 /* only digit zero has a simple (round) shape in the Tamil script */
336 SCRIPT( taml, TAML,
337 "Tamil",
338 HB_SCRIPT_TAMIL,
339 HINTING_BOTTOM_TO_TOP,
340 "\xE0\xAF\xA6" ) /* ௦ */
341
342 SCRIPT( tavt, TAVT,
343 "Tai Viet",
344 HB_SCRIPT_TAI_VIET,
345 HINTING_BOTTOM_TO_TOP,
346 "\xEA\xAA\x92 \xEA\xAA\xAB" ) /* ꪒ ꪫ */
347
348 /* there are no simple forms for letters; we thus use two digit shapes */
349 SCRIPT( telu, TELU,
350 "Telugu",
351 HB_SCRIPT_TELUGU,
352 HINTING_BOTTOM_TO_TOP,
353 "\xE0\xB1\xA6 \xE0\xB1\xA7" ) /* ౦ ౧ */
354
355 SCRIPT( tfng, TFNG,
356 "Tifinagh",
357 HB_SCRIPT_TIFINAGH,
358 HINTING_BOTTOM_TO_TOP,
359 "\xE2\xB5\x94" ) /* ⵔ */
360
361 SCRIPT( thai, THAI,
362 "Thai",
363 HB_SCRIPT_THAI,
364 HINTING_BOTTOM_TO_TOP,
365 "\xE0\xB8\xB2 \xE0\xB9\x85 \xE0\xB9\x90" ) /* า ๅ ๐ */
366
367 SCRIPT( vaii, VAII,
368 "Vai",
369 HB_SCRIPT_VAI,
370 HINTING_BOTTOM_TO_TOP,
371 "\xEA\x98\x93 \xEA\x96\x9C \xEA\x96\xB4" ) /* ꘓ ꖜ ꖴ */
372
373#ifdef AF_CONFIG_OPTION_INDIC
374
375 SCRIPT( limb, LIMB,
376 "Limbu",
377 HB_SCRIPT_LIMBU,
378 HINTING_BOTTOM_TO_TOP,
379 "o" ) /* XXX */
380
381 SCRIPT( orya, ORYA,
382 "Oriya",
383 HB_SCRIPT_ORIYA,
384 HINTING_BOTTOM_TO_TOP,
385 "o" ) /* XXX */
386
387 SCRIPT( sylo, SYLO,
388 "Syloti Nagri",
389 HB_SCRIPT_SYLOTI_NAGRI,
390 HINTING_BOTTOM_TO_TOP,
391 "o" ) /* XXX */
392
393 SCRIPT( tibt, TIBT,
394 "Tibetan",
395 HB_SCRIPT_TIBETAN,
396 HINTING_BOTTOM_TO_TOP,
397 "o" ) /* XXX */
398
399#endif /* AF_CONFIG_OPTION_INDIC */
400
401#ifdef AF_CONFIG_OPTION_CJK
402
403 SCRIPT( hani, HANI,
404 "CJKV ideographs",
405 HB_SCRIPT_HAN,
406 HINTING_BOTTOM_TO_TOP,
407 "\xE7\x94\xB0 \xE5\x9B\x97" ) /* 田 囗 */
408
409#endif /* AF_CONFIG_OPTION_CJK */
410
411
412/* END */