jassub 1.7.11 → 1.7.13

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 (171) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +251 -251
  3. package/dist/COPYRIGHT +951 -951
  4. package/dist/jassub-worker-modern.wasm +0 -0
  5. package/dist/jassub-worker.js +11 -11
  6. package/dist/jassub-worker.wasm +0 -0
  7. package/dist/jassub-worker.wasm.js +1 -1
  8. package/dist/jassub.es.js +1 -1
  9. package/dist/jassub.umd.js +1 -1
  10. package/dist/js/jassub-worker-modern.js +119 -1
  11. package/dist/js/jassub-worker-modern.wasm +0 -0
  12. package/dist/js/jassub-worker.js +122 -4
  13. package/dist/js/jassub-worker.wasm +0 -0
  14. package/dist/js/jassub-worker.wasm.js +26 -25
  15. package/dist/js/jassub.js +832 -832
  16. package/dist/libraries/bin/brotli.js +1 -0
  17. package/dist/libraries/include/ass/ass.h +812 -0
  18. package/dist/libraries/include/ass/ass_types.h +292 -0
  19. package/dist/libraries/include/brotli/decode.h +344 -0
  20. package/dist/libraries/include/brotli/encode.h +448 -0
  21. package/dist/libraries/include/brotli/port.h +288 -0
  22. package/dist/libraries/include/brotli/types.h +83 -0
  23. package/dist/libraries/include/expat.h +1064 -0
  24. package/dist/libraries/include/expat_config.h +115 -0
  25. package/dist/libraries/include/expat_external.h +165 -0
  26. package/dist/libraries/include/fontconfig/fcfreetype.h +59 -0
  27. package/dist/libraries/include/fontconfig/fcprivate.h +134 -0
  28. package/dist/libraries/include/fontconfig/fontconfig.h +1154 -0
  29. package/dist/libraries/include/freetype2/freetype/config/ftconfig.h +63 -0
  30. package/dist/libraries/include/freetype2/freetype/config/ftheader.h +824 -0
  31. package/dist/libraries/include/freetype2/freetype/config/ftmodule.h +20 -0
  32. package/dist/libraries/include/freetype2/freetype/config/ftoption.h +1011 -0
  33. package/dist/libraries/include/freetype2/freetype/config/ftstdlib.h +175 -0
  34. package/dist/libraries/include/freetype2/freetype/config/integer-types.h +245 -0
  35. package/dist/libraries/include/freetype2/freetype/config/mac-support.h +49 -0
  36. package/dist/libraries/include/freetype2/freetype/config/public-macros.h +120 -0
  37. package/dist/libraries/include/freetype2/freetype/freetype.h +4833 -0
  38. package/dist/libraries/include/freetype2/freetype/ftadvanc.h +188 -0
  39. package/dist/libraries/include/freetype2/freetype/ftbbox.h +101 -0
  40. package/dist/libraries/include/freetype2/freetype/ftbdf.h +212 -0
  41. package/dist/libraries/include/freetype2/freetype/ftbitmap.h +329 -0
  42. package/dist/libraries/include/freetype2/freetype/ftbzip2.h +102 -0
  43. package/dist/libraries/include/freetype2/freetype/ftcache.h +1087 -0
  44. package/dist/libraries/include/freetype2/freetype/ftchapters.h +147 -0
  45. package/dist/libraries/include/freetype2/freetype/ftcid.h +167 -0
  46. package/dist/libraries/include/freetype2/freetype/ftcolor.h +1609 -0
  47. package/dist/libraries/include/freetype2/freetype/ftdriver.h +1193 -0
  48. package/dist/libraries/include/freetype2/freetype/fterrdef.h +279 -0
  49. package/dist/libraries/include/freetype2/freetype/fterrors.h +296 -0
  50. package/dist/libraries/include/freetype2/freetype/ftfntfmt.h +93 -0
  51. package/dist/libraries/include/freetype2/freetype/ftgasp.h +143 -0
  52. package/dist/libraries/include/freetype2/freetype/ftglyph.h +664 -0
  53. package/dist/libraries/include/freetype2/freetype/ftgxval.h +354 -0
  54. package/dist/libraries/include/freetype2/freetype/ftgzip.h +151 -0
  55. package/dist/libraries/include/freetype2/freetype/ftimage.h +1276 -0
  56. package/dist/libraries/include/freetype2/freetype/ftincrem.h +348 -0
  57. package/dist/libraries/include/freetype2/freetype/ftlcdfil.h +323 -0
  58. package/dist/libraries/include/freetype2/freetype/ftlist.h +296 -0
  59. package/dist/libraries/include/freetype2/freetype/ftlogging.h +184 -0
  60. package/dist/libraries/include/freetype2/freetype/ftlzw.h +100 -0
  61. package/dist/libraries/include/freetype2/freetype/ftmac.h +289 -0
  62. package/dist/libraries/include/freetype2/freetype/ftmm.h +752 -0
  63. package/dist/libraries/include/freetype2/freetype/ftmodapi.h +806 -0
  64. package/dist/libraries/include/freetype2/freetype/ftmoderr.h +204 -0
  65. package/dist/libraries/include/freetype2/freetype/ftotval.h +206 -0
  66. package/dist/libraries/include/freetype2/freetype/ftoutln.h +586 -0
  67. package/dist/libraries/include/freetype2/freetype/ftparams.h +203 -0
  68. package/dist/libraries/include/freetype2/freetype/ftpfr.h +179 -0
  69. package/dist/libraries/include/freetype2/freetype/ftrender.h +244 -0
  70. package/dist/libraries/include/freetype2/freetype/ftsizes.h +159 -0
  71. package/dist/libraries/include/freetype2/freetype/ftsnames.h +272 -0
  72. package/dist/libraries/include/freetype2/freetype/ftstroke.h +773 -0
  73. package/dist/libraries/include/freetype2/freetype/ftsynth.h +83 -0
  74. package/dist/libraries/include/freetype2/freetype/ftsystem.h +352 -0
  75. package/dist/libraries/include/freetype2/freetype/fttrigon.h +350 -0
  76. package/dist/libraries/include/freetype2/freetype/fttypes.h +615 -0
  77. package/dist/libraries/include/freetype2/freetype/ftwinfnt.h +276 -0
  78. package/dist/libraries/include/freetype2/freetype/t1tables.h +773 -0
  79. package/dist/libraries/include/freetype2/freetype/ttnameid.h +1235 -0
  80. package/dist/libraries/include/freetype2/freetype/tttables.h +855 -0
  81. package/dist/libraries/include/freetype2/freetype/tttags.h +123 -0
  82. package/dist/libraries/include/freetype2/ft2build.h +42 -0
  83. package/dist/libraries/include/fribidi/fribidi-arabic.h +81 -0
  84. package/dist/libraries/include/fribidi/fribidi-begindecls.h +3 -0
  85. package/dist/libraries/include/fribidi/fribidi-bidi-types-list.h +96 -0
  86. package/dist/libraries/include/fribidi/fribidi-bidi-types.h +405 -0
  87. package/dist/libraries/include/fribidi/fribidi-bidi.h +142 -0
  88. package/dist/libraries/include/fribidi/fribidi-brackets.h +89 -0
  89. package/dist/libraries/include/fribidi/fribidi-char-sets-list.h +54 -0
  90. package/dist/libraries/include/fribidi/fribidi-char-sets.h +106 -0
  91. package/dist/libraries/include/fribidi/fribidi-common.h +158 -0
  92. package/dist/libraries/include/fribidi/fribidi-config.h +23 -0
  93. package/dist/libraries/include/fribidi/fribidi-deprecated.h +175 -0
  94. package/dist/libraries/include/fribidi/fribidi-enddecls.h +3 -0
  95. package/dist/libraries/include/fribidi/fribidi-flags.h +72 -0
  96. package/dist/libraries/include/fribidi/fribidi-joining-types-list.h +44 -0
  97. package/dist/libraries/include/fribidi/fribidi-joining-types.h +249 -0
  98. package/dist/libraries/include/fribidi/fribidi-joining.h +74 -0
  99. package/dist/libraries/include/fribidi/fribidi-mirroring.h +86 -0
  100. package/dist/libraries/include/fribidi/fribidi-shape.h +71 -0
  101. package/dist/libraries/include/fribidi/fribidi-types.h +79 -0
  102. package/dist/libraries/include/fribidi/fribidi-unicode-version.h +10 -0
  103. package/dist/libraries/include/fribidi/fribidi-unicode.h +105 -0
  104. package/dist/libraries/include/fribidi/fribidi.h +129 -0
  105. package/dist/libraries/include/harfbuzz/hb-aat-layout.h +795 -0
  106. package/dist/libraries/include/harfbuzz/hb-aat.h +38 -0
  107. package/dist/libraries/include/harfbuzz/hb-blob.h +160 -0
  108. package/dist/libraries/include/harfbuzz/hb-buffer.h +799 -0
  109. package/dist/libraries/include/harfbuzz/hb-common.h +902 -0
  110. package/dist/libraries/include/harfbuzz/hb-cplusplus.hh +221 -0
  111. package/dist/libraries/include/harfbuzz/hb-deprecated.h +251 -0
  112. package/dist/libraries/include/harfbuzz/hb-draw.h +325 -0
  113. package/dist/libraries/include/harfbuzz/hb-face.h +181 -0
  114. package/dist/libraries/include/harfbuzz/hb-font.h +1108 -0
  115. package/dist/libraries/include/harfbuzz/hb-ft.h +145 -0
  116. package/dist/libraries/include/harfbuzz/hb-map.h +124 -0
  117. package/dist/libraries/include/harfbuzz/hb-ot-color.h +146 -0
  118. package/dist/libraries/include/harfbuzz/hb-ot-deprecated.h +141 -0
  119. package/dist/libraries/include/harfbuzz/hb-ot-font.h +45 -0
  120. package/dist/libraries/include/harfbuzz/hb-ot-layout.h +503 -0
  121. package/dist/libraries/include/harfbuzz/hb-ot-math.h +333 -0
  122. package/dist/libraries/include/harfbuzz/hb-ot-meta.h +72 -0
  123. package/dist/libraries/include/harfbuzz/hb-ot-metrics.h +129 -0
  124. package/dist/libraries/include/harfbuzz/hb-ot-name.h +158 -0
  125. package/dist/libraries/include/harfbuzz/hb-ot-shape.h +53 -0
  126. package/dist/libraries/include/harfbuzz/hb-ot-var.h +191 -0
  127. package/dist/libraries/include/harfbuzz/hb-ot.h +49 -0
  128. package/dist/libraries/include/harfbuzz/hb-set.h +200 -0
  129. package/dist/libraries/include/harfbuzz/hb-shape-plan.h +122 -0
  130. package/dist/libraries/include/harfbuzz/hb-shape.h +62 -0
  131. package/dist/libraries/include/harfbuzz/hb-style.h +81 -0
  132. package/dist/libraries/include/harfbuzz/hb-subset-repacker.h +81 -0
  133. package/dist/libraries/include/harfbuzz/hb-subset.h +234 -0
  134. package/dist/libraries/include/harfbuzz/hb-unicode.h +643 -0
  135. package/dist/libraries/include/harfbuzz/hb-version.h +95 -0
  136. package/dist/libraries/include/harfbuzz/hb.h +50 -0
  137. package/dist/libraries/lib/cmake/expat-2.4.7/expat-config-version.cmake +70 -0
  138. package/dist/libraries/lib/cmake/expat-2.4.7/expat-config.cmake +99 -0
  139. package/dist/libraries/lib/cmake/expat-2.4.7/expat-noconfig.cmake +19 -0
  140. package/dist/libraries/lib/cmake/expat-2.4.7/expat.cmake +99 -0
  141. package/dist/libraries/lib/libass.a +0 -0
  142. package/dist/libraries/lib/libass.la +41 -0
  143. package/dist/libraries/lib/libbrotlicommon.a +0 -0
  144. package/dist/libraries/lib/libbrotlidec.a +0 -0
  145. package/dist/libraries/lib/libbrotlienc.a +0 -0
  146. package/dist/libraries/lib/libexpat.a +0 -0
  147. package/dist/libraries/lib/libfontconfig.a +0 -0
  148. package/dist/libraries/lib/libfontconfig.la +41 -0
  149. package/dist/libraries/lib/libfreetype.a +0 -0
  150. package/dist/libraries/lib/libfreetype.la +41 -0
  151. package/dist/libraries/lib/libfribidi.a +0 -0
  152. package/dist/libraries/lib/libfribidi.la +41 -0
  153. package/dist/libraries/lib/libharfbuzz-subset.a +0 -0
  154. package/dist/libraries/lib/libharfbuzz-subset.la +41 -0
  155. package/dist/libraries/lib/libharfbuzz.a +0 -0
  156. package/dist/libraries/lib/libharfbuzz.la +41 -0
  157. package/dist/libraries/lib/pkgconfig/expat.pc +11 -0
  158. package/dist/libraries/lib/pkgconfig/fontconfig.pc +18 -0
  159. package/dist/libraries/lib/pkgconfig/freetype2.pc +14 -0
  160. package/dist/libraries/lib/pkgconfig/fribidi.pc +13 -0
  161. package/dist/libraries/lib/pkgconfig/harfbuzz-subset.pc +12 -0
  162. package/dist/libraries/lib/pkgconfig/harfbuzz.pc +13 -0
  163. package/dist/libraries/lib/pkgconfig/libass.pc +13 -0
  164. package/dist/libraries/lib/pkgconfig/libbrotlicommon.pc +11 -0
  165. package/dist/libraries/lib/pkgconfig/libbrotlidec.pc +12 -0
  166. package/dist/libraries/lib/pkgconfig/libbrotlienc.pc +12 -0
  167. package/dist/libraries/share/aclocal/freetype2.m4 +194 -0
  168. package/dist/libraries/share/doc/expat/AUTHORS +10 -0
  169. package/dist/libraries/share/doc/expat/changelog +1161 -0
  170. package/index.d.ts +115 -115
  171. package/package.json +1 -1
@@ -0,0 +1,773 @@
1
+ /****************************************************************************
2
+ *
3
+ * t1tables.h
4
+ *
5
+ * Basic Type 1/Type 2 tables definitions and interface (specification
6
+ * only).
7
+ *
8
+ * Copyright (C) 1996-2021 by
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
+ #ifndef T1TABLES_H_
21
+ #define T1TABLES_H_
22
+
23
+
24
+ #include <freetype/freetype.h>
25
+
26
+ #ifdef FREETYPE_H
27
+ #error "freetype.h of FreeType 1 has been loaded!"
28
+ #error "Please fix the directory search order for header files"
29
+ #error "so that freetype.h of FreeType 2 is found first."
30
+ #endif
31
+
32
+
33
+ FT_BEGIN_HEADER
34
+
35
+
36
+ /**************************************************************************
37
+ *
38
+ * @section:
39
+ * type1_tables
40
+ *
41
+ * @title:
42
+ * Type 1 Tables
43
+ *
44
+ * @abstract:
45
+ * Type~1-specific font tables.
46
+ *
47
+ * @description:
48
+ * This section contains the definition of Type~1-specific tables,
49
+ * including structures related to other PostScript font formats.
50
+ *
51
+ * @order:
52
+ * PS_FontInfoRec
53
+ * PS_FontInfo
54
+ * PS_PrivateRec
55
+ * PS_Private
56
+ *
57
+ * CID_FaceDictRec
58
+ * CID_FaceDict
59
+ * CID_FaceInfoRec
60
+ * CID_FaceInfo
61
+ *
62
+ * FT_Has_PS_Glyph_Names
63
+ * FT_Get_PS_Font_Info
64
+ * FT_Get_PS_Font_Private
65
+ * FT_Get_PS_Font_Value
66
+ *
67
+ * T1_Blend_Flags
68
+ * T1_EncodingType
69
+ * PS_Dict_Keys
70
+ *
71
+ */
72
+
73
+
74
+ /* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */
75
+ /* structures in order to support Multiple Master fonts. */
76
+
77
+
78
+ /**************************************************************************
79
+ *
80
+ * @struct:
81
+ * PS_FontInfoRec
82
+ *
83
+ * @description:
84
+ * A structure used to model a Type~1 or Type~2 FontInfo dictionary.
85
+ * Note that for Multiple Master fonts, each instance has its own
86
+ * FontInfo dictionary.
87
+ */
88
+ typedef struct PS_FontInfoRec_
89
+ {
90
+ FT_String* version;
91
+ FT_String* notice;
92
+ FT_String* full_name;
93
+ FT_String* family_name;
94
+ FT_String* weight;
95
+ FT_Long italic_angle;
96
+ FT_Bool is_fixed_pitch;
97
+ FT_Short underline_position;
98
+ FT_UShort underline_thickness;
99
+
100
+ } PS_FontInfoRec;
101
+
102
+
103
+ /**************************************************************************
104
+ *
105
+ * @struct:
106
+ * PS_FontInfo
107
+ *
108
+ * @description:
109
+ * A handle to a @PS_FontInfoRec structure.
110
+ */
111
+ typedef struct PS_FontInfoRec_* PS_FontInfo;
112
+
113
+
114
+ /**************************************************************************
115
+ *
116
+ * @struct:
117
+ * T1_FontInfo
118
+ *
119
+ * @description:
120
+ * This type is equivalent to @PS_FontInfoRec. It is deprecated but kept
121
+ * to maintain source compatibility between various versions of FreeType.
122
+ */
123
+ typedef PS_FontInfoRec T1_FontInfo;
124
+
125
+
126
+ /**************************************************************************
127
+ *
128
+ * @struct:
129
+ * PS_PrivateRec
130
+ *
131
+ * @description:
132
+ * A structure used to model a Type~1 or Type~2 private dictionary. Note
133
+ * that for Multiple Master fonts, each instance has its own Private
134
+ * dictionary.
135
+ */
136
+ typedef struct PS_PrivateRec_
137
+ {
138
+ FT_Int unique_id;
139
+ FT_Int lenIV;
140
+
141
+ FT_Byte num_blue_values;
142
+ FT_Byte num_other_blues;
143
+ FT_Byte num_family_blues;
144
+ FT_Byte num_family_other_blues;
145
+
146
+ FT_Short blue_values[14];
147
+ FT_Short other_blues[10];
148
+
149
+ FT_Short family_blues [14];
150
+ FT_Short family_other_blues[10];
151
+
152
+ FT_Fixed blue_scale;
153
+ FT_Int blue_shift;
154
+ FT_Int blue_fuzz;
155
+
156
+ FT_UShort standard_width[1];
157
+ FT_UShort standard_height[1];
158
+
159
+ FT_Byte num_snap_widths;
160
+ FT_Byte num_snap_heights;
161
+ FT_Bool force_bold;
162
+ FT_Bool round_stem_up;
163
+
164
+ FT_Short snap_widths [13]; /* including std width */
165
+ FT_Short snap_heights[13]; /* including std height */
166
+
167
+ FT_Fixed expansion_factor;
168
+
169
+ FT_Long language_group;
170
+ FT_Long password;
171
+
172
+ FT_Short min_feature[2];
173
+
174
+ } PS_PrivateRec;
175
+
176
+
177
+ /**************************************************************************
178
+ *
179
+ * @struct:
180
+ * PS_Private
181
+ *
182
+ * @description:
183
+ * A handle to a @PS_PrivateRec structure.
184
+ */
185
+ typedef struct PS_PrivateRec_* PS_Private;
186
+
187
+
188
+ /**************************************************************************
189
+ *
190
+ * @struct:
191
+ * T1_Private
192
+ *
193
+ * @description:
194
+ * This type is equivalent to @PS_PrivateRec. It is deprecated but kept
195
+ * to maintain source compatibility between various versions of FreeType.
196
+ */
197
+ typedef PS_PrivateRec T1_Private;
198
+
199
+
200
+ /**************************************************************************
201
+ *
202
+ * @enum:
203
+ * T1_Blend_Flags
204
+ *
205
+ * @description:
206
+ * A set of flags used to indicate which fields are present in a given
207
+ * blend dictionary (font info or private). Used to support Multiple
208
+ * Masters fonts.
209
+ *
210
+ * @values:
211
+ * T1_BLEND_UNDERLINE_POSITION ::
212
+ * T1_BLEND_UNDERLINE_THICKNESS ::
213
+ * T1_BLEND_ITALIC_ANGLE ::
214
+ * T1_BLEND_BLUE_VALUES ::
215
+ * T1_BLEND_OTHER_BLUES ::
216
+ * T1_BLEND_STANDARD_WIDTH ::
217
+ * T1_BLEND_STANDARD_HEIGHT ::
218
+ * T1_BLEND_STEM_SNAP_WIDTHS ::
219
+ * T1_BLEND_STEM_SNAP_HEIGHTS ::
220
+ * T1_BLEND_BLUE_SCALE ::
221
+ * T1_BLEND_BLUE_SHIFT ::
222
+ * T1_BLEND_FAMILY_BLUES ::
223
+ * T1_BLEND_FAMILY_OTHER_BLUES ::
224
+ * T1_BLEND_FORCE_BOLD ::
225
+ */
226
+ typedef enum T1_Blend_Flags_
227
+ {
228
+ /* required fields in a FontInfo blend dictionary */
229
+ T1_BLEND_UNDERLINE_POSITION = 0,
230
+ T1_BLEND_UNDERLINE_THICKNESS,
231
+ T1_BLEND_ITALIC_ANGLE,
232
+
233
+ /* required fields in a Private blend dictionary */
234
+ T1_BLEND_BLUE_VALUES,
235
+ T1_BLEND_OTHER_BLUES,
236
+ T1_BLEND_STANDARD_WIDTH,
237
+ T1_BLEND_STANDARD_HEIGHT,
238
+ T1_BLEND_STEM_SNAP_WIDTHS,
239
+ T1_BLEND_STEM_SNAP_HEIGHTS,
240
+ T1_BLEND_BLUE_SCALE,
241
+ T1_BLEND_BLUE_SHIFT,
242
+ T1_BLEND_FAMILY_BLUES,
243
+ T1_BLEND_FAMILY_OTHER_BLUES,
244
+ T1_BLEND_FORCE_BOLD,
245
+
246
+ T1_BLEND_MAX /* do not remove */
247
+
248
+ } T1_Blend_Flags;
249
+
250
+
251
+ /* these constants are deprecated; use the corresponding */
252
+ /* `T1_Blend_Flags` values instead */
253
+ #define t1_blend_underline_position T1_BLEND_UNDERLINE_POSITION
254
+ #define t1_blend_underline_thickness T1_BLEND_UNDERLINE_THICKNESS
255
+ #define t1_blend_italic_angle T1_BLEND_ITALIC_ANGLE
256
+ #define t1_blend_blue_values T1_BLEND_BLUE_VALUES
257
+ #define t1_blend_other_blues T1_BLEND_OTHER_BLUES
258
+ #define t1_blend_standard_widths T1_BLEND_STANDARD_WIDTH
259
+ #define t1_blend_standard_height T1_BLEND_STANDARD_HEIGHT
260
+ #define t1_blend_stem_snap_widths T1_BLEND_STEM_SNAP_WIDTHS
261
+ #define t1_blend_stem_snap_heights T1_BLEND_STEM_SNAP_HEIGHTS
262
+ #define t1_blend_blue_scale T1_BLEND_BLUE_SCALE
263
+ #define t1_blend_blue_shift T1_BLEND_BLUE_SHIFT
264
+ #define t1_blend_family_blues T1_BLEND_FAMILY_BLUES
265
+ #define t1_blend_family_other_blues T1_BLEND_FAMILY_OTHER_BLUES
266
+ #define t1_blend_force_bold T1_BLEND_FORCE_BOLD
267
+ #define t1_blend_max T1_BLEND_MAX
268
+
269
+ /* */
270
+
271
+
272
+ /* maximum number of Multiple Masters designs, as defined in the spec */
273
+ #define T1_MAX_MM_DESIGNS 16
274
+
275
+ /* maximum number of Multiple Masters axes, as defined in the spec */
276
+ #define T1_MAX_MM_AXIS 4
277
+
278
+ /* maximum number of elements in a design map */
279
+ #define T1_MAX_MM_MAP_POINTS 20
280
+
281
+
282
+ /* this structure is used to store the BlendDesignMap entry for an axis */
283
+ typedef struct PS_DesignMap_
284
+ {
285
+ FT_Byte num_points;
286
+ FT_Long* design_points;
287
+ FT_Fixed* blend_points;
288
+
289
+ } PS_DesignMapRec, *PS_DesignMap;
290
+
291
+ /* backward compatible definition */
292
+ typedef PS_DesignMapRec T1_DesignMap;
293
+
294
+
295
+ typedef struct PS_BlendRec_
296
+ {
297
+ FT_UInt num_designs;
298
+ FT_UInt num_axis;
299
+
300
+ FT_String* axis_names[T1_MAX_MM_AXIS];
301
+ FT_Fixed* design_pos[T1_MAX_MM_DESIGNS];
302
+ PS_DesignMapRec design_map[T1_MAX_MM_AXIS];
303
+
304
+ FT_Fixed* weight_vector;
305
+ FT_Fixed* default_weight_vector;
306
+
307
+ PS_FontInfo font_infos[T1_MAX_MM_DESIGNS + 1];
308
+ PS_Private privates [T1_MAX_MM_DESIGNS + 1];
309
+
310
+ FT_ULong blend_bitflags;
311
+
312
+ FT_BBox* bboxes [T1_MAX_MM_DESIGNS + 1];
313
+
314
+ /* since 2.3.0 */
315
+
316
+ /* undocumented, optional: the default design instance; */
317
+ /* corresponds to default_weight_vector -- */
318
+ /* num_default_design_vector == 0 means it is not present */
319
+ /* in the font and associated metrics files */
320
+ FT_UInt default_design_vector[T1_MAX_MM_DESIGNS];
321
+ FT_UInt num_default_design_vector;
322
+
323
+ } PS_BlendRec, *PS_Blend;
324
+
325
+
326
+ /* backward compatible definition */
327
+ typedef PS_BlendRec T1_Blend;
328
+
329
+
330
+ /**************************************************************************
331
+ *
332
+ * @struct:
333
+ * CID_FaceDictRec
334
+ *
335
+ * @description:
336
+ * A structure used to represent data in a CID top-level dictionary. In
337
+ * most cases, they are part of the font's '/FDArray' array. Within a
338
+ * CID font file, such (internal) subfont dictionaries are enclosed by
339
+ * '%ADOBeginFontDict' and '%ADOEndFontDict' comments.
340
+ *
341
+ * Note that `CID_FaceDictRec` misses a field for the '/FontName'
342
+ * keyword, specifying the subfont's name (the top-level font name is
343
+ * given by the '/CIDFontName' keyword). This is an oversight, but it
344
+ * doesn't limit the 'cid' font module's functionality because FreeType
345
+ * neither needs this entry nor gives access to CID subfonts.
346
+ */
347
+ typedef struct CID_FaceDictRec_
348
+ {
349
+ PS_PrivateRec private_dict;
350
+
351
+ FT_UInt len_buildchar;
352
+ FT_Fixed forcebold_threshold;
353
+ FT_Pos stroke_width;
354
+ FT_Fixed expansion_factor; /* this is a duplicate of */
355
+ /* `private_dict->expansion_factor' */
356
+ FT_Byte paint_type;
357
+ FT_Byte font_type;
358
+ FT_Matrix font_matrix;
359
+ FT_Vector font_offset;
360
+
361
+ FT_UInt num_subrs;
362
+ FT_ULong subrmap_offset;
363
+ FT_Int sd_bytes;
364
+
365
+ } CID_FaceDictRec;
366
+
367
+
368
+ /**************************************************************************
369
+ *
370
+ * @struct:
371
+ * CID_FaceDict
372
+ *
373
+ * @description:
374
+ * A handle to a @CID_FaceDictRec structure.
375
+ */
376
+ typedef struct CID_FaceDictRec_* CID_FaceDict;
377
+
378
+
379
+ /**************************************************************************
380
+ *
381
+ * @struct:
382
+ * CID_FontDict
383
+ *
384
+ * @description:
385
+ * This type is equivalent to @CID_FaceDictRec. It is deprecated but
386
+ * kept to maintain source compatibility between various versions of
387
+ * FreeType.
388
+ */
389
+ typedef CID_FaceDictRec CID_FontDict;
390
+
391
+
392
+ /**************************************************************************
393
+ *
394
+ * @struct:
395
+ * CID_FaceInfoRec
396
+ *
397
+ * @description:
398
+ * A structure used to represent CID Face information.
399
+ */
400
+ typedef struct CID_FaceInfoRec_
401
+ {
402
+ FT_String* cid_font_name;
403
+ FT_Fixed cid_version;
404
+ FT_Int cid_font_type;
405
+
406
+ FT_String* registry;
407
+ FT_String* ordering;
408
+ FT_Int supplement;
409
+
410
+ PS_FontInfoRec font_info;
411
+ FT_BBox font_bbox;
412
+ FT_ULong uid_base;
413
+
414
+ FT_Int num_xuid;
415
+ FT_ULong xuid[16];
416
+
417
+ FT_ULong cidmap_offset;
418
+ FT_Int fd_bytes;
419
+ FT_Int gd_bytes;
420
+ FT_ULong cid_count;
421
+
422
+ FT_Int num_dicts;
423
+ CID_FaceDict font_dicts;
424
+
425
+ FT_ULong data_offset;
426
+
427
+ } CID_FaceInfoRec;
428
+
429
+
430
+ /**************************************************************************
431
+ *
432
+ * @struct:
433
+ * CID_FaceInfo
434
+ *
435
+ * @description:
436
+ * A handle to a @CID_FaceInfoRec structure.
437
+ */
438
+ typedef struct CID_FaceInfoRec_* CID_FaceInfo;
439
+
440
+
441
+ /**************************************************************************
442
+ *
443
+ * @struct:
444
+ * CID_Info
445
+ *
446
+ * @description:
447
+ * This type is equivalent to @CID_FaceInfoRec. It is deprecated but kept
448
+ * to maintain source compatibility between various versions of FreeType.
449
+ */
450
+ typedef CID_FaceInfoRec CID_Info;
451
+
452
+
453
+ /**************************************************************************
454
+ *
455
+ * @function:
456
+ * FT_Has_PS_Glyph_Names
457
+ *
458
+ * @description:
459
+ * Return true if a given face provides reliable PostScript glyph names.
460
+ * This is similar to using the @FT_HAS_GLYPH_NAMES macro, except that
461
+ * certain fonts (mostly TrueType) contain incorrect glyph name tables.
462
+ *
463
+ * When this function returns true, the caller is sure that the glyph
464
+ * names returned by @FT_Get_Glyph_Name are reliable.
465
+ *
466
+ * @input:
467
+ * face ::
468
+ * face handle
469
+ *
470
+ * @return:
471
+ * Boolean. True if glyph names are reliable.
472
+ *
473
+ */
474
+ FT_EXPORT( FT_Int )
475
+ FT_Has_PS_Glyph_Names( FT_Face face );
476
+
477
+
478
+ /**************************************************************************
479
+ *
480
+ * @function:
481
+ * FT_Get_PS_Font_Info
482
+ *
483
+ * @description:
484
+ * Retrieve the @PS_FontInfoRec structure corresponding to a given
485
+ * PostScript font.
486
+ *
487
+ * @input:
488
+ * face ::
489
+ * PostScript face handle.
490
+ *
491
+ * @output:
492
+ * afont_info ::
493
+ * Output font info structure pointer.
494
+ *
495
+ * @return:
496
+ * FreeType error code. 0~means success.
497
+ *
498
+ * @note:
499
+ * String pointers within the @PS_FontInfoRec structure are owned by the
500
+ * face and don't need to be freed by the caller. Missing entries in
501
+ * the font's FontInfo dictionary are represented by `NULL` pointers.
502
+ *
503
+ * If the font's format is not PostScript-based, this function will
504
+ * return the `FT_Err_Invalid_Argument` error code.
505
+ *
506
+ */
507
+ FT_EXPORT( FT_Error )
508
+ FT_Get_PS_Font_Info( FT_Face face,
509
+ PS_FontInfo afont_info );
510
+
511
+
512
+ /**************************************************************************
513
+ *
514
+ * @function:
515
+ * FT_Get_PS_Font_Private
516
+ *
517
+ * @description:
518
+ * Retrieve the @PS_PrivateRec structure corresponding to a given
519
+ * PostScript font.
520
+ *
521
+ * @input:
522
+ * face ::
523
+ * PostScript face handle.
524
+ *
525
+ * @output:
526
+ * afont_private ::
527
+ * Output private dictionary structure pointer.
528
+ *
529
+ * @return:
530
+ * FreeType error code. 0~means success.
531
+ *
532
+ * @note:
533
+ * The string pointers within the @PS_PrivateRec structure are owned by
534
+ * the face and don't need to be freed by the caller.
535
+ *
536
+ * If the font's format is not PostScript-based, this function returns
537
+ * the `FT_Err_Invalid_Argument` error code.
538
+ *
539
+ */
540
+ FT_EXPORT( FT_Error )
541
+ FT_Get_PS_Font_Private( FT_Face face,
542
+ PS_Private afont_private );
543
+
544
+
545
+ /**************************************************************************
546
+ *
547
+ * @enum:
548
+ * T1_EncodingType
549
+ *
550
+ * @description:
551
+ * An enumeration describing the 'Encoding' entry in a Type 1 dictionary.
552
+ *
553
+ * @values:
554
+ * T1_ENCODING_TYPE_NONE ::
555
+ * T1_ENCODING_TYPE_ARRAY ::
556
+ * T1_ENCODING_TYPE_STANDARD ::
557
+ * T1_ENCODING_TYPE_ISOLATIN1 ::
558
+ * T1_ENCODING_TYPE_EXPERT ::
559
+ *
560
+ * @since:
561
+ * 2.4.8
562
+ */
563
+ typedef enum T1_EncodingType_
564
+ {
565
+ T1_ENCODING_TYPE_NONE = 0,
566
+ T1_ENCODING_TYPE_ARRAY,
567
+ T1_ENCODING_TYPE_STANDARD,
568
+ T1_ENCODING_TYPE_ISOLATIN1,
569
+ T1_ENCODING_TYPE_EXPERT
570
+
571
+ } T1_EncodingType;
572
+
573
+
574
+ /**************************************************************************
575
+ *
576
+ * @enum:
577
+ * PS_Dict_Keys
578
+ *
579
+ * @description:
580
+ * An enumeration used in calls to @FT_Get_PS_Font_Value to identify the
581
+ * Type~1 dictionary entry to retrieve.
582
+ *
583
+ * @values:
584
+ * PS_DICT_FONT_TYPE ::
585
+ * PS_DICT_FONT_MATRIX ::
586
+ * PS_DICT_FONT_BBOX ::
587
+ * PS_DICT_PAINT_TYPE ::
588
+ * PS_DICT_FONT_NAME ::
589
+ * PS_DICT_UNIQUE_ID ::
590
+ * PS_DICT_NUM_CHAR_STRINGS ::
591
+ * PS_DICT_CHAR_STRING_KEY ::
592
+ * PS_DICT_CHAR_STRING ::
593
+ * PS_DICT_ENCODING_TYPE ::
594
+ * PS_DICT_ENCODING_ENTRY ::
595
+ * PS_DICT_NUM_SUBRS ::
596
+ * PS_DICT_SUBR ::
597
+ * PS_DICT_STD_HW ::
598
+ * PS_DICT_STD_VW ::
599
+ * PS_DICT_NUM_BLUE_VALUES ::
600
+ * PS_DICT_BLUE_VALUE ::
601
+ * PS_DICT_BLUE_FUZZ ::
602
+ * PS_DICT_NUM_OTHER_BLUES ::
603
+ * PS_DICT_OTHER_BLUE ::
604
+ * PS_DICT_NUM_FAMILY_BLUES ::
605
+ * PS_DICT_FAMILY_BLUE ::
606
+ * PS_DICT_NUM_FAMILY_OTHER_BLUES ::
607
+ * PS_DICT_FAMILY_OTHER_BLUE ::
608
+ * PS_DICT_BLUE_SCALE ::
609
+ * PS_DICT_BLUE_SHIFT ::
610
+ * PS_DICT_NUM_STEM_SNAP_H ::
611
+ * PS_DICT_STEM_SNAP_H ::
612
+ * PS_DICT_NUM_STEM_SNAP_V ::
613
+ * PS_DICT_STEM_SNAP_V ::
614
+ * PS_DICT_FORCE_BOLD ::
615
+ * PS_DICT_RND_STEM_UP ::
616
+ * PS_DICT_MIN_FEATURE ::
617
+ * PS_DICT_LEN_IV ::
618
+ * PS_DICT_PASSWORD ::
619
+ * PS_DICT_LANGUAGE_GROUP ::
620
+ * PS_DICT_VERSION ::
621
+ * PS_DICT_NOTICE ::
622
+ * PS_DICT_FULL_NAME ::
623
+ * PS_DICT_FAMILY_NAME ::
624
+ * PS_DICT_WEIGHT ::
625
+ * PS_DICT_IS_FIXED_PITCH ::
626
+ * PS_DICT_UNDERLINE_POSITION ::
627
+ * PS_DICT_UNDERLINE_THICKNESS ::
628
+ * PS_DICT_FS_TYPE ::
629
+ * PS_DICT_ITALIC_ANGLE ::
630
+ *
631
+ * @since:
632
+ * 2.4.8
633
+ */
634
+ typedef enum PS_Dict_Keys_
635
+ {
636
+ /* conventionally in the font dictionary */
637
+ PS_DICT_FONT_TYPE, /* FT_Byte */
638
+ PS_DICT_FONT_MATRIX, /* FT_Fixed */
639
+ PS_DICT_FONT_BBOX, /* FT_Fixed */
640
+ PS_DICT_PAINT_TYPE, /* FT_Byte */
641
+ PS_DICT_FONT_NAME, /* FT_String* */
642
+ PS_DICT_UNIQUE_ID, /* FT_Int */
643
+ PS_DICT_NUM_CHAR_STRINGS, /* FT_Int */
644
+ PS_DICT_CHAR_STRING_KEY, /* FT_String* */
645
+ PS_DICT_CHAR_STRING, /* FT_String* */
646
+ PS_DICT_ENCODING_TYPE, /* T1_EncodingType */
647
+ PS_DICT_ENCODING_ENTRY, /* FT_String* */
648
+
649
+ /* conventionally in the font Private dictionary */
650
+ PS_DICT_NUM_SUBRS, /* FT_Int */
651
+ PS_DICT_SUBR, /* FT_String* */
652
+ PS_DICT_STD_HW, /* FT_UShort */
653
+ PS_DICT_STD_VW, /* FT_UShort */
654
+ PS_DICT_NUM_BLUE_VALUES, /* FT_Byte */
655
+ PS_DICT_BLUE_VALUE, /* FT_Short */
656
+ PS_DICT_BLUE_FUZZ, /* FT_Int */
657
+ PS_DICT_NUM_OTHER_BLUES, /* FT_Byte */
658
+ PS_DICT_OTHER_BLUE, /* FT_Short */
659
+ PS_DICT_NUM_FAMILY_BLUES, /* FT_Byte */
660
+ PS_DICT_FAMILY_BLUE, /* FT_Short */
661
+ PS_DICT_NUM_FAMILY_OTHER_BLUES, /* FT_Byte */
662
+ PS_DICT_FAMILY_OTHER_BLUE, /* FT_Short */
663
+ PS_DICT_BLUE_SCALE, /* FT_Fixed */
664
+ PS_DICT_BLUE_SHIFT, /* FT_Int */
665
+ PS_DICT_NUM_STEM_SNAP_H, /* FT_Byte */
666
+ PS_DICT_STEM_SNAP_H, /* FT_Short */
667
+ PS_DICT_NUM_STEM_SNAP_V, /* FT_Byte */
668
+ PS_DICT_STEM_SNAP_V, /* FT_Short */
669
+ PS_DICT_FORCE_BOLD, /* FT_Bool */
670
+ PS_DICT_RND_STEM_UP, /* FT_Bool */
671
+ PS_DICT_MIN_FEATURE, /* FT_Short */
672
+ PS_DICT_LEN_IV, /* FT_Int */
673
+ PS_DICT_PASSWORD, /* FT_Long */
674
+ PS_DICT_LANGUAGE_GROUP, /* FT_Long */
675
+
676
+ /* conventionally in the font FontInfo dictionary */
677
+ PS_DICT_VERSION, /* FT_String* */
678
+ PS_DICT_NOTICE, /* FT_String* */
679
+ PS_DICT_FULL_NAME, /* FT_String* */
680
+ PS_DICT_FAMILY_NAME, /* FT_String* */
681
+ PS_DICT_WEIGHT, /* FT_String* */
682
+ PS_DICT_IS_FIXED_PITCH, /* FT_Bool */
683
+ PS_DICT_UNDERLINE_POSITION, /* FT_Short */
684
+ PS_DICT_UNDERLINE_THICKNESS, /* FT_UShort */
685
+ PS_DICT_FS_TYPE, /* FT_UShort */
686
+ PS_DICT_ITALIC_ANGLE, /* FT_Long */
687
+
688
+ PS_DICT_MAX = PS_DICT_ITALIC_ANGLE
689
+
690
+ } PS_Dict_Keys;
691
+
692
+
693
+ /**************************************************************************
694
+ *
695
+ * @function:
696
+ * FT_Get_PS_Font_Value
697
+ *
698
+ * @description:
699
+ * Retrieve the value for the supplied key from a PostScript font.
700
+ *
701
+ * @input:
702
+ * face ::
703
+ * PostScript face handle.
704
+ *
705
+ * key ::
706
+ * An enumeration value representing the dictionary key to retrieve.
707
+ *
708
+ * idx ::
709
+ * For array values, this specifies the index to be returned.
710
+ *
711
+ * value ::
712
+ * A pointer to memory into which to write the value.
713
+ *
714
+ * valen_len ::
715
+ * The size, in bytes, of the memory supplied for the value.
716
+ *
717
+ * @output:
718
+ * value ::
719
+ * The value matching the above key, if it exists.
720
+ *
721
+ * @return:
722
+ * The amount of memory (in bytes) required to hold the requested value
723
+ * (if it exists, -1 otherwise).
724
+ *
725
+ * @note:
726
+ * The values returned are not pointers into the internal structures of
727
+ * the face, but are 'fresh' copies, so that the memory containing them
728
+ * belongs to the calling application. This also enforces the
729
+ * 'read-only' nature of these values, i.e., this function cannot be
730
+ * used to manipulate the face.
731
+ *
732
+ * `value` is a void pointer because the values returned can be of
733
+ * various types.
734
+ *
735
+ * If either `value` is `NULL` or `value_len` is too small, just the
736
+ * required memory size for the requested entry is returned.
737
+ *
738
+ * The `idx` parameter is used, not only to retrieve elements of, for
739
+ * example, the FontMatrix or FontBBox, but also to retrieve name keys
740
+ * from the CharStrings dictionary, and the charstrings themselves. It
741
+ * is ignored for atomic values.
742
+ *
743
+ * `PS_DICT_BLUE_SCALE` returns a value that is scaled up by 1000. To
744
+ * get the value as in the font stream, you need to divide by 65536000.0
745
+ * (to remove the FT_Fixed scale, and the x1000 scale).
746
+ *
747
+ * IMPORTANT: Only key/value pairs read by the FreeType interpreter can
748
+ * be retrieved. So, for example, PostScript procedures such as NP, ND,
749
+ * and RD are not available. Arbitrary keys are, obviously, not be
750
+ * available either.
751
+ *
752
+ * If the font's format is not PostScript-based, this function returns
753
+ * the `FT_Err_Invalid_Argument` error code.
754
+ *
755
+ * @since:
756
+ * 2.4.8
757
+ *
758
+ */
759
+ FT_EXPORT( FT_Long )
760
+ FT_Get_PS_Font_Value( FT_Face face,
761
+ PS_Dict_Keys key,
762
+ FT_UInt idx,
763
+ void *value,
764
+ FT_Long value_len );
765
+
766
+ /* */
767
+
768
+ FT_END_HEADER
769
+
770
+ #endif /* T1TABLES_H_ */
771
+
772
+
773
+ /* END */