jassub 1.7.10 → 1.7.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +251 -251
  3. package/dist/jassub-worker.wasm +0 -0
  4. package/dist/jassub-worker.wasm.js +1 -1
  5. package/dist/jassub.es.js +1 -1
  6. package/dist/jassub.umd.js +1 -1
  7. package/dist/js/jassub-worker.js +4 -4
  8. package/dist/js/jassub-worker.wasm +0 -0
  9. package/dist/js/jassub-worker.wasm.js +26 -25
  10. package/dist/js/jassub.js +832 -832
  11. package/dist/libraries/bin/brotli.js +1 -0
  12. package/dist/libraries/include/ass/ass.h +812 -0
  13. package/dist/libraries/include/ass/ass_types.h +292 -0
  14. package/dist/libraries/include/brotli/decode.h +344 -0
  15. package/dist/libraries/include/brotli/encode.h +448 -0
  16. package/dist/libraries/include/brotli/port.h +288 -0
  17. package/dist/libraries/include/brotli/types.h +83 -0
  18. package/dist/libraries/include/expat.h +1064 -0
  19. package/dist/libraries/include/expat_config.h +115 -0
  20. package/dist/libraries/include/expat_external.h +165 -0
  21. package/dist/libraries/include/fontconfig/fcfreetype.h +59 -0
  22. package/dist/libraries/include/fontconfig/fcprivate.h +134 -0
  23. package/dist/libraries/include/fontconfig/fontconfig.h +1154 -0
  24. package/dist/libraries/include/freetype2/freetype/config/ftconfig.h +63 -0
  25. package/dist/libraries/include/freetype2/freetype/config/ftheader.h +824 -0
  26. package/dist/libraries/include/freetype2/freetype/config/ftmodule.h +20 -0
  27. package/dist/libraries/include/freetype2/freetype/config/ftoption.h +1011 -0
  28. package/dist/libraries/include/freetype2/freetype/config/ftstdlib.h +175 -0
  29. package/dist/libraries/include/freetype2/freetype/config/integer-types.h +245 -0
  30. package/dist/libraries/include/freetype2/freetype/config/mac-support.h +49 -0
  31. package/dist/libraries/include/freetype2/freetype/config/public-macros.h +120 -0
  32. package/dist/libraries/include/freetype2/freetype/freetype.h +4833 -0
  33. package/dist/libraries/include/freetype2/freetype/ftadvanc.h +188 -0
  34. package/dist/libraries/include/freetype2/freetype/ftbbox.h +101 -0
  35. package/dist/libraries/include/freetype2/freetype/ftbdf.h +212 -0
  36. package/dist/libraries/include/freetype2/freetype/ftbitmap.h +329 -0
  37. package/dist/libraries/include/freetype2/freetype/ftbzip2.h +102 -0
  38. package/dist/libraries/include/freetype2/freetype/ftcache.h +1087 -0
  39. package/dist/libraries/include/freetype2/freetype/ftchapters.h +147 -0
  40. package/dist/libraries/include/freetype2/freetype/ftcid.h +167 -0
  41. package/dist/libraries/include/freetype2/freetype/ftcolor.h +1609 -0
  42. package/dist/libraries/include/freetype2/freetype/ftdriver.h +1193 -0
  43. package/dist/libraries/include/freetype2/freetype/fterrdef.h +279 -0
  44. package/dist/libraries/include/freetype2/freetype/fterrors.h +296 -0
  45. package/dist/libraries/include/freetype2/freetype/ftfntfmt.h +93 -0
  46. package/dist/libraries/include/freetype2/freetype/ftgasp.h +143 -0
  47. package/dist/libraries/include/freetype2/freetype/ftglyph.h +664 -0
  48. package/dist/libraries/include/freetype2/freetype/ftgxval.h +354 -0
  49. package/dist/libraries/include/freetype2/freetype/ftgzip.h +151 -0
  50. package/dist/libraries/include/freetype2/freetype/ftimage.h +1276 -0
  51. package/dist/libraries/include/freetype2/freetype/ftincrem.h +348 -0
  52. package/dist/libraries/include/freetype2/freetype/ftlcdfil.h +323 -0
  53. package/dist/libraries/include/freetype2/freetype/ftlist.h +296 -0
  54. package/dist/libraries/include/freetype2/freetype/ftlogging.h +184 -0
  55. package/dist/libraries/include/freetype2/freetype/ftlzw.h +100 -0
  56. package/dist/libraries/include/freetype2/freetype/ftmac.h +289 -0
  57. package/dist/libraries/include/freetype2/freetype/ftmm.h +752 -0
  58. package/dist/libraries/include/freetype2/freetype/ftmodapi.h +806 -0
  59. package/dist/libraries/include/freetype2/freetype/ftmoderr.h +204 -0
  60. package/dist/libraries/include/freetype2/freetype/ftotval.h +206 -0
  61. package/dist/libraries/include/freetype2/freetype/ftoutln.h +586 -0
  62. package/dist/libraries/include/freetype2/freetype/ftparams.h +203 -0
  63. package/dist/libraries/include/freetype2/freetype/ftpfr.h +179 -0
  64. package/dist/libraries/include/freetype2/freetype/ftrender.h +244 -0
  65. package/dist/libraries/include/freetype2/freetype/ftsizes.h +159 -0
  66. package/dist/libraries/include/freetype2/freetype/ftsnames.h +272 -0
  67. package/dist/libraries/include/freetype2/freetype/ftstroke.h +773 -0
  68. package/dist/libraries/include/freetype2/freetype/ftsynth.h +83 -0
  69. package/dist/libraries/include/freetype2/freetype/ftsystem.h +352 -0
  70. package/dist/libraries/include/freetype2/freetype/fttrigon.h +350 -0
  71. package/dist/libraries/include/freetype2/freetype/fttypes.h +615 -0
  72. package/dist/libraries/include/freetype2/freetype/ftwinfnt.h +276 -0
  73. package/dist/libraries/include/freetype2/freetype/t1tables.h +773 -0
  74. package/dist/libraries/include/freetype2/freetype/ttnameid.h +1235 -0
  75. package/dist/libraries/include/freetype2/freetype/tttables.h +855 -0
  76. package/dist/libraries/include/freetype2/freetype/tttags.h +123 -0
  77. package/dist/libraries/include/freetype2/ft2build.h +42 -0
  78. package/dist/libraries/include/fribidi/fribidi-arabic.h +81 -0
  79. package/dist/libraries/include/fribidi/fribidi-begindecls.h +3 -0
  80. package/dist/libraries/include/fribidi/fribidi-bidi-types-list.h +96 -0
  81. package/dist/libraries/include/fribidi/fribidi-bidi-types.h +405 -0
  82. package/dist/libraries/include/fribidi/fribidi-bidi.h +142 -0
  83. package/dist/libraries/include/fribidi/fribidi-brackets.h +89 -0
  84. package/dist/libraries/include/fribidi/fribidi-char-sets-list.h +54 -0
  85. package/dist/libraries/include/fribidi/fribidi-char-sets.h +106 -0
  86. package/dist/libraries/include/fribidi/fribidi-common.h +158 -0
  87. package/dist/libraries/include/fribidi/fribidi-config.h +23 -0
  88. package/dist/libraries/include/fribidi/fribidi-deprecated.h +175 -0
  89. package/dist/libraries/include/fribidi/fribidi-enddecls.h +3 -0
  90. package/dist/libraries/include/fribidi/fribidi-flags.h +72 -0
  91. package/dist/libraries/include/fribidi/fribidi-joining-types-list.h +44 -0
  92. package/dist/libraries/include/fribidi/fribidi-joining-types.h +249 -0
  93. package/dist/libraries/include/fribidi/fribidi-joining.h +74 -0
  94. package/dist/libraries/include/fribidi/fribidi-mirroring.h +86 -0
  95. package/dist/libraries/include/fribidi/fribidi-shape.h +71 -0
  96. package/dist/libraries/include/fribidi/fribidi-types.h +79 -0
  97. package/dist/libraries/include/fribidi/fribidi-unicode-version.h +10 -0
  98. package/dist/libraries/include/fribidi/fribidi-unicode.h +105 -0
  99. package/dist/libraries/include/fribidi/fribidi.h +129 -0
  100. package/dist/libraries/include/harfbuzz/hb-aat-layout.h +795 -0
  101. package/dist/libraries/include/harfbuzz/hb-aat.h +38 -0
  102. package/dist/libraries/include/harfbuzz/hb-blob.h +160 -0
  103. package/dist/libraries/include/harfbuzz/hb-buffer.h +799 -0
  104. package/dist/libraries/include/harfbuzz/hb-common.h +902 -0
  105. package/dist/libraries/include/harfbuzz/hb-cplusplus.hh +221 -0
  106. package/dist/libraries/include/harfbuzz/hb-deprecated.h +251 -0
  107. package/dist/libraries/include/harfbuzz/hb-draw.h +325 -0
  108. package/dist/libraries/include/harfbuzz/hb-face.h +181 -0
  109. package/dist/libraries/include/harfbuzz/hb-font.h +1108 -0
  110. package/dist/libraries/include/harfbuzz/hb-ft.h +145 -0
  111. package/dist/libraries/include/harfbuzz/hb-map.h +124 -0
  112. package/dist/libraries/include/harfbuzz/hb-ot-color.h +146 -0
  113. package/dist/libraries/include/harfbuzz/hb-ot-deprecated.h +141 -0
  114. package/dist/libraries/include/harfbuzz/hb-ot-font.h +45 -0
  115. package/dist/libraries/include/harfbuzz/hb-ot-layout.h +503 -0
  116. package/dist/libraries/include/harfbuzz/hb-ot-math.h +333 -0
  117. package/dist/libraries/include/harfbuzz/hb-ot-meta.h +72 -0
  118. package/dist/libraries/include/harfbuzz/hb-ot-metrics.h +129 -0
  119. package/dist/libraries/include/harfbuzz/hb-ot-name.h +158 -0
  120. package/dist/libraries/include/harfbuzz/hb-ot-shape.h +53 -0
  121. package/dist/libraries/include/harfbuzz/hb-ot-var.h +191 -0
  122. package/dist/libraries/include/harfbuzz/hb-ot.h +49 -0
  123. package/dist/libraries/include/harfbuzz/hb-set.h +200 -0
  124. package/dist/libraries/include/harfbuzz/hb-shape-plan.h +122 -0
  125. package/dist/libraries/include/harfbuzz/hb-shape.h +62 -0
  126. package/dist/libraries/include/harfbuzz/hb-style.h +81 -0
  127. package/dist/libraries/include/harfbuzz/hb-subset-repacker.h +81 -0
  128. package/dist/libraries/include/harfbuzz/hb-subset.h +234 -0
  129. package/dist/libraries/include/harfbuzz/hb-unicode.h +643 -0
  130. package/dist/libraries/include/harfbuzz/hb-version.h +95 -0
  131. package/dist/libraries/include/harfbuzz/hb.h +50 -0
  132. package/dist/libraries/lib/cmake/expat-2.4.7/expat-config-version.cmake +70 -0
  133. package/dist/libraries/lib/cmake/expat-2.4.7/expat-config.cmake +99 -0
  134. package/dist/libraries/lib/cmake/expat-2.4.7/expat-noconfig.cmake +19 -0
  135. package/dist/libraries/lib/cmake/expat-2.4.7/expat.cmake +99 -0
  136. package/dist/libraries/lib/libass.a +0 -0
  137. package/dist/libraries/lib/libass.la +41 -0
  138. package/dist/libraries/lib/libbrotlicommon.a +0 -0
  139. package/dist/libraries/lib/libbrotlidec.a +0 -0
  140. package/dist/libraries/lib/libbrotlienc.a +0 -0
  141. package/dist/libraries/lib/libexpat.a +0 -0
  142. package/dist/libraries/lib/libfontconfig.a +0 -0
  143. package/dist/libraries/lib/libfontconfig.la +41 -0
  144. package/dist/libraries/lib/libfreetype.a +0 -0
  145. package/dist/libraries/lib/libfreetype.la +41 -0
  146. package/dist/libraries/lib/libfribidi.a +0 -0
  147. package/dist/libraries/lib/libfribidi.la +41 -0
  148. package/dist/libraries/lib/libharfbuzz-subset.a +0 -0
  149. package/dist/libraries/lib/libharfbuzz-subset.la +41 -0
  150. package/dist/libraries/lib/libharfbuzz.a +0 -0
  151. package/dist/libraries/lib/libharfbuzz.la +41 -0
  152. package/dist/libraries/lib/pkgconfig/expat.pc +11 -0
  153. package/dist/libraries/lib/pkgconfig/fontconfig.pc +18 -0
  154. package/dist/libraries/lib/pkgconfig/freetype2.pc +14 -0
  155. package/dist/libraries/lib/pkgconfig/fribidi.pc +13 -0
  156. package/dist/libraries/lib/pkgconfig/harfbuzz-subset.pc +12 -0
  157. package/dist/libraries/lib/pkgconfig/harfbuzz.pc +13 -0
  158. package/dist/libraries/lib/pkgconfig/libass.pc +13 -0
  159. package/dist/libraries/lib/pkgconfig/libbrotlicommon.pc +11 -0
  160. package/dist/libraries/lib/pkgconfig/libbrotlidec.pc +12 -0
  161. package/dist/libraries/lib/pkgconfig/libbrotlienc.pc +12 -0
  162. package/dist/libraries/share/aclocal/freetype2.m4 +194 -0
  163. package/dist/libraries/share/doc/expat/AUTHORS +10 -0
  164. package/dist/libraries/share/doc/expat/changelog +1161 -0
  165. package/index.d.ts +115 -115
  166. package/package.json +1 -1
@@ -0,0 +1,354 @@
1
+ /****************************************************************************
2
+ *
3
+ * ftgxval.h
4
+ *
5
+ * FreeType API for validating TrueTypeGX/AAT tables (specification).
6
+ *
7
+ * Copyright (C) 2004-2021 by
8
+ * Masatake YAMATO, Redhat K.K,
9
+ * David Turner, Robert Wilhelm, and Werner Lemberg.
10
+ *
11
+ * This file is part of the FreeType project, and may only be used,
12
+ * modified, and distributed under the terms of the FreeType project
13
+ * license, LICENSE.TXT. By continuing to use, modify, or distribute
14
+ * this file you indicate that you have read the license and
15
+ * understand and accept it fully.
16
+ *
17
+ */
18
+
19
+ /****************************************************************************
20
+ *
21
+ * gxvalid is derived from both gxlayout module and otvalid module.
22
+ * Development of gxlayout is supported by the Information-technology
23
+ * Promotion Agency(IPA), Japan.
24
+ *
25
+ */
26
+
27
+
28
+ #ifndef FTGXVAL_H_
29
+ #define FTGXVAL_H_
30
+
31
+ #include <freetype/freetype.h>
32
+
33
+ #ifdef FREETYPE_H
34
+ #error "freetype.h of FreeType 1 has been loaded!"
35
+ #error "Please fix the directory search order for header files"
36
+ #error "so that freetype.h of FreeType 2 is found first."
37
+ #endif
38
+
39
+
40
+ FT_BEGIN_HEADER
41
+
42
+
43
+ /**************************************************************************
44
+ *
45
+ * @section:
46
+ * gx_validation
47
+ *
48
+ * @title:
49
+ * TrueTypeGX/AAT Validation
50
+ *
51
+ * @abstract:
52
+ * An API to validate TrueTypeGX/AAT tables.
53
+ *
54
+ * @description:
55
+ * This section contains the declaration of functions to validate some
56
+ * TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, trak,
57
+ * prop, lcar).
58
+ *
59
+ * @order:
60
+ * FT_TrueTypeGX_Validate
61
+ * FT_TrueTypeGX_Free
62
+ *
63
+ * FT_ClassicKern_Validate
64
+ * FT_ClassicKern_Free
65
+ *
66
+ * FT_VALIDATE_GX_LENGTH
67
+ * FT_VALIDATE_GXXXX
68
+ * FT_VALIDATE_CKERNXXX
69
+ *
70
+ */
71
+
72
+ /**************************************************************************
73
+ *
74
+ *
75
+ * Warning: Use `FT_VALIDATE_XXX` to validate a table.
76
+ * Following definitions are for gxvalid developers.
77
+ *
78
+ *
79
+ */
80
+
81
+ #define FT_VALIDATE_feat_INDEX 0
82
+ #define FT_VALIDATE_mort_INDEX 1
83
+ #define FT_VALIDATE_morx_INDEX 2
84
+ #define FT_VALIDATE_bsln_INDEX 3
85
+ #define FT_VALIDATE_just_INDEX 4
86
+ #define FT_VALIDATE_kern_INDEX 5
87
+ #define FT_VALIDATE_opbd_INDEX 6
88
+ #define FT_VALIDATE_trak_INDEX 7
89
+ #define FT_VALIDATE_prop_INDEX 8
90
+ #define FT_VALIDATE_lcar_INDEX 9
91
+ #define FT_VALIDATE_GX_LAST_INDEX FT_VALIDATE_lcar_INDEX
92
+
93
+
94
+ /**************************************************************************
95
+ *
96
+ * @macro:
97
+ * FT_VALIDATE_GX_LENGTH
98
+ *
99
+ * @description:
100
+ * The number of tables checked in this module. Use it as a parameter
101
+ * for the `table-length` argument of function @FT_TrueTypeGX_Validate.
102
+ */
103
+ #define FT_VALIDATE_GX_LENGTH ( FT_VALIDATE_GX_LAST_INDEX + 1 )
104
+
105
+ /* */
106
+
107
+ /* Up to 0x1000 is used by otvalid.
108
+ Ox2xxx is reserved for feature OT extension. */
109
+ #define FT_VALIDATE_GX_START 0x4000
110
+ #define FT_VALIDATE_GX_BITFIELD( tag ) \
111
+ ( FT_VALIDATE_GX_START << FT_VALIDATE_##tag##_INDEX )
112
+
113
+
114
+ /**************************************************************************
115
+ *
116
+ * @enum:
117
+ * FT_VALIDATE_GXXXX
118
+ *
119
+ * @description:
120
+ * A list of bit-field constants used with @FT_TrueTypeGX_Validate to
121
+ * indicate which TrueTypeGX/AAT Type tables should be validated.
122
+ *
123
+ * @values:
124
+ * FT_VALIDATE_feat ::
125
+ * Validate 'feat' table.
126
+ *
127
+ * FT_VALIDATE_mort ::
128
+ * Validate 'mort' table.
129
+ *
130
+ * FT_VALIDATE_morx ::
131
+ * Validate 'morx' table.
132
+ *
133
+ * FT_VALIDATE_bsln ::
134
+ * Validate 'bsln' table.
135
+ *
136
+ * FT_VALIDATE_just ::
137
+ * Validate 'just' table.
138
+ *
139
+ * FT_VALIDATE_kern ::
140
+ * Validate 'kern' table.
141
+ *
142
+ * FT_VALIDATE_opbd ::
143
+ * Validate 'opbd' table.
144
+ *
145
+ * FT_VALIDATE_trak ::
146
+ * Validate 'trak' table.
147
+ *
148
+ * FT_VALIDATE_prop ::
149
+ * Validate 'prop' table.
150
+ *
151
+ * FT_VALIDATE_lcar ::
152
+ * Validate 'lcar' table.
153
+ *
154
+ * FT_VALIDATE_GX ::
155
+ * Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern,
156
+ * opbd, trak, prop and lcar).
157
+ *
158
+ */
159
+
160
+ #define FT_VALIDATE_feat FT_VALIDATE_GX_BITFIELD( feat )
161
+ #define FT_VALIDATE_mort FT_VALIDATE_GX_BITFIELD( mort )
162
+ #define FT_VALIDATE_morx FT_VALIDATE_GX_BITFIELD( morx )
163
+ #define FT_VALIDATE_bsln FT_VALIDATE_GX_BITFIELD( bsln )
164
+ #define FT_VALIDATE_just FT_VALIDATE_GX_BITFIELD( just )
165
+ #define FT_VALIDATE_kern FT_VALIDATE_GX_BITFIELD( kern )
166
+ #define FT_VALIDATE_opbd FT_VALIDATE_GX_BITFIELD( opbd )
167
+ #define FT_VALIDATE_trak FT_VALIDATE_GX_BITFIELD( trak )
168
+ #define FT_VALIDATE_prop FT_VALIDATE_GX_BITFIELD( prop )
169
+ #define FT_VALIDATE_lcar FT_VALIDATE_GX_BITFIELD( lcar )
170
+
171
+ #define FT_VALIDATE_GX ( FT_VALIDATE_feat | \
172
+ FT_VALIDATE_mort | \
173
+ FT_VALIDATE_morx | \
174
+ FT_VALIDATE_bsln | \
175
+ FT_VALIDATE_just | \
176
+ FT_VALIDATE_kern | \
177
+ FT_VALIDATE_opbd | \
178
+ FT_VALIDATE_trak | \
179
+ FT_VALIDATE_prop | \
180
+ FT_VALIDATE_lcar )
181
+
182
+
183
+ /**************************************************************************
184
+ *
185
+ * @function:
186
+ * FT_TrueTypeGX_Validate
187
+ *
188
+ * @description:
189
+ * Validate various TrueTypeGX tables to assure that all offsets and
190
+ * indices are valid. The idea is that a higher-level library that
191
+ * actually does the text layout can access those tables without error
192
+ * checking (which can be quite time consuming).
193
+ *
194
+ * @input:
195
+ * face ::
196
+ * A handle to the input face.
197
+ *
198
+ * validation_flags ::
199
+ * A bit field that specifies the tables to be validated. See
200
+ * @FT_VALIDATE_GXXXX for possible values.
201
+ *
202
+ * table_length ::
203
+ * The size of the `tables` array. Normally, @FT_VALIDATE_GX_LENGTH
204
+ * should be passed.
205
+ *
206
+ * @output:
207
+ * tables ::
208
+ * The array where all validated sfnt tables are stored. The array
209
+ * itself must be allocated by a client.
210
+ *
211
+ * @return:
212
+ * FreeType error code. 0~means success.
213
+ *
214
+ * @note:
215
+ * This function only works with TrueTypeGX fonts, returning an error
216
+ * otherwise.
217
+ *
218
+ * After use, the application should deallocate the buffers pointed to by
219
+ * each `tables` element, by calling @FT_TrueTypeGX_Free. A `NULL` value
220
+ * indicates that the table either doesn't exist in the font, the
221
+ * application hasn't asked for validation, or the validator doesn't have
222
+ * the ability to validate the sfnt table.
223
+ */
224
+ FT_EXPORT( FT_Error )
225
+ FT_TrueTypeGX_Validate( FT_Face face,
226
+ FT_UInt validation_flags,
227
+ FT_Bytes tables[FT_VALIDATE_GX_LENGTH],
228
+ FT_UInt table_length );
229
+
230
+
231
+ /**************************************************************************
232
+ *
233
+ * @function:
234
+ * FT_TrueTypeGX_Free
235
+ *
236
+ * @description:
237
+ * Free the buffer allocated by TrueTypeGX validator.
238
+ *
239
+ * @input:
240
+ * face ::
241
+ * A handle to the input face.
242
+ *
243
+ * table ::
244
+ * The pointer to the buffer allocated by @FT_TrueTypeGX_Validate.
245
+ *
246
+ * @note:
247
+ * This function must be used to free the buffer allocated by
248
+ * @FT_TrueTypeGX_Validate only.
249
+ */
250
+ FT_EXPORT( void )
251
+ FT_TrueTypeGX_Free( FT_Face face,
252
+ FT_Bytes table );
253
+
254
+
255
+ /**************************************************************************
256
+ *
257
+ * @enum:
258
+ * FT_VALIDATE_CKERNXXX
259
+ *
260
+ * @description:
261
+ * A list of bit-field constants used with @FT_ClassicKern_Validate to
262
+ * indicate the classic kern dialect or dialects. If the selected type
263
+ * doesn't fit, @FT_ClassicKern_Validate regards the table as invalid.
264
+ *
265
+ * @values:
266
+ * FT_VALIDATE_MS ::
267
+ * Handle the 'kern' table as a classic Microsoft kern table.
268
+ *
269
+ * FT_VALIDATE_APPLE ::
270
+ * Handle the 'kern' table as a classic Apple kern table.
271
+ *
272
+ * FT_VALIDATE_CKERN ::
273
+ * Handle the 'kern' as either classic Apple or Microsoft kern table.
274
+ */
275
+ #define FT_VALIDATE_MS ( FT_VALIDATE_GX_START << 0 )
276
+ #define FT_VALIDATE_APPLE ( FT_VALIDATE_GX_START << 1 )
277
+
278
+ #define FT_VALIDATE_CKERN ( FT_VALIDATE_MS | FT_VALIDATE_APPLE )
279
+
280
+
281
+ /**************************************************************************
282
+ *
283
+ * @function:
284
+ * FT_ClassicKern_Validate
285
+ *
286
+ * @description:
287
+ * Validate classic (16-bit format) kern table to assure that the
288
+ * offsets and indices are valid. The idea is that a higher-level
289
+ * library that actually does the text layout can access those tables
290
+ * without error checking (which can be quite time consuming).
291
+ *
292
+ * The 'kern' table validator in @FT_TrueTypeGX_Validate deals with both
293
+ * the new 32-bit format and the classic 16-bit format, while
294
+ * FT_ClassicKern_Validate only supports the classic 16-bit format.
295
+ *
296
+ * @input:
297
+ * face ::
298
+ * A handle to the input face.
299
+ *
300
+ * validation_flags ::
301
+ * A bit field that specifies the dialect to be validated. See
302
+ * @FT_VALIDATE_CKERNXXX for possible values.
303
+ *
304
+ * @output:
305
+ * ckern_table ::
306
+ * A pointer to the kern table.
307
+ *
308
+ * @return:
309
+ * FreeType error code. 0~means success.
310
+ *
311
+ * @note:
312
+ * After use, the application should deallocate the buffers pointed to by
313
+ * `ckern_table`, by calling @FT_ClassicKern_Free. A `NULL` value
314
+ * indicates that the table doesn't exist in the font.
315
+ */
316
+ FT_EXPORT( FT_Error )
317
+ FT_ClassicKern_Validate( FT_Face face,
318
+ FT_UInt validation_flags,
319
+ FT_Bytes *ckern_table );
320
+
321
+
322
+ /**************************************************************************
323
+ *
324
+ * @function:
325
+ * FT_ClassicKern_Free
326
+ *
327
+ * @description:
328
+ * Free the buffer allocated by classic Kern validator.
329
+ *
330
+ * @input:
331
+ * face ::
332
+ * A handle to the input face.
333
+ *
334
+ * table ::
335
+ * The pointer to the buffer that is allocated by
336
+ * @FT_ClassicKern_Validate.
337
+ *
338
+ * @note:
339
+ * This function must be used to free the buffer allocated by
340
+ * @FT_ClassicKern_Validate only.
341
+ */
342
+ FT_EXPORT( void )
343
+ FT_ClassicKern_Free( FT_Face face,
344
+ FT_Bytes table );
345
+
346
+ /* */
347
+
348
+
349
+ FT_END_HEADER
350
+
351
+ #endif /* FTGXVAL_H_ */
352
+
353
+
354
+ /* END */
@@ -0,0 +1,151 @@
1
+ /****************************************************************************
2
+ *
3
+ * ftgzip.h
4
+ *
5
+ * Gzip-compressed stream support.
6
+ *
7
+ * Copyright (C) 2002-2021 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
+ #ifndef FTGZIP_H_
20
+ #define FTGZIP_H_
21
+
22
+ #include <freetype/freetype.h>
23
+
24
+ #ifdef FREETYPE_H
25
+ #error "freetype.h of FreeType 1 has been loaded!"
26
+ #error "Please fix the directory search order for header files"
27
+ #error "so that freetype.h of FreeType 2 is found first."
28
+ #endif
29
+
30
+
31
+ FT_BEGIN_HEADER
32
+
33
+ /**************************************************************************
34
+ *
35
+ * @section:
36
+ * gzip
37
+ *
38
+ * @title:
39
+ * GZIP Streams
40
+ *
41
+ * @abstract:
42
+ * Using gzip-compressed font files.
43
+ *
44
+ * @description:
45
+ * In certain builds of the library, gzip compression recognition is
46
+ * automatically handled when calling @FT_New_Face or @FT_Open_Face.
47
+ * This means that if no font driver is capable of handling the raw
48
+ * compressed file, the library will try to open a gzipped stream from it
49
+ * and re-open the face with it.
50
+ *
51
+ * The stream implementation is very basic and resets the decompression
52
+ * process each time seeking backwards is needed within the stream,
53
+ * which significantly undermines the performance.
54
+ *
55
+ * This section contains the declaration of Gzip-specific functions.
56
+ *
57
+ */
58
+
59
+
60
+ /**************************************************************************
61
+ *
62
+ * @function:
63
+ * FT_Stream_OpenGzip
64
+ *
65
+ * @description:
66
+ * Open a new stream to parse gzip-compressed font files. This is mainly
67
+ * used to support the compressed `*.pcf.gz` fonts that come with
68
+ * XFree86.
69
+ *
70
+ * @input:
71
+ * stream ::
72
+ * The target embedding stream.
73
+ *
74
+ * source ::
75
+ * The source stream.
76
+ *
77
+ * @return:
78
+ * FreeType error code. 0~means success.
79
+ *
80
+ * @note:
81
+ * The source stream must be opened _before_ calling this function.
82
+ *
83
+ * Calling the internal function `FT_Stream_Close` on the new stream will
84
+ * **not** call `FT_Stream_Close` on the source stream. None of the
85
+ * stream objects will be released to the heap.
86
+ *
87
+ * This function may return `FT_Err_Unimplemented_Feature` if your build
88
+ * of FreeType was not compiled with zlib support.
89
+ */
90
+ FT_EXPORT( FT_Error )
91
+ FT_Stream_OpenGzip( FT_Stream stream,
92
+ FT_Stream source );
93
+
94
+
95
+ /**************************************************************************
96
+ *
97
+ * @function:
98
+ * FT_Gzip_Uncompress
99
+ *
100
+ * @description:
101
+ * Decompress a zipped input buffer into an output buffer. This function
102
+ * is modeled after zlib's `uncompress` function.
103
+ *
104
+ * @input:
105
+ * memory ::
106
+ * A FreeType memory handle.
107
+ *
108
+ * input ::
109
+ * The input buffer.
110
+ *
111
+ * input_len ::
112
+ * The length of the input buffer.
113
+ *
114
+ * @output:
115
+ * output ::
116
+ * The output buffer.
117
+ *
118
+ * @inout:
119
+ * output_len ::
120
+ * Before calling the function, this is the total size of the output
121
+ * buffer, which must be large enough to hold the entire uncompressed
122
+ * data (so the size of the uncompressed data must be known in
123
+ * advance). After calling the function, `output_len` is the size of
124
+ * the used data in `output`.
125
+ *
126
+ * @return:
127
+ * FreeType error code. 0~means success.
128
+ *
129
+ * @note:
130
+ * This function may return `FT_Err_Unimplemented_Feature` if your build
131
+ * of FreeType was not compiled with zlib support.
132
+ *
133
+ * @since:
134
+ * 2.5.1
135
+ */
136
+ FT_EXPORT( FT_Error )
137
+ FT_Gzip_Uncompress( FT_Memory memory,
138
+ FT_Byte* output,
139
+ FT_ULong* output_len,
140
+ const FT_Byte* input,
141
+ FT_ULong input_len );
142
+
143
+ /* */
144
+
145
+
146
+ FT_END_HEADER
147
+
148
+ #endif /* FTGZIP_H_ */
149
+
150
+
151
+ /* END */