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,81 @@
1
+ /*
2
+ * Copyright © 2019 Ebrahim Byagowi
3
+ *
4
+ * This is part of HarfBuzz, a text shaping library.
5
+ *
6
+ * Permission is hereby granted, without written agreement and without
7
+ * license or royalty fees, to use, copy, modify, and distribute this
8
+ * software and its documentation for any purpose, provided that the
9
+ * above copyright notice and the following two paragraphs appear in
10
+ * all copies of this software.
11
+ *
12
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
13
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
14
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
15
+ * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
16
+ * DAMAGE.
17
+ *
18
+ * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
19
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20
+ * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
21
+ * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
22
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
23
+ */
24
+
25
+ #if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR)
26
+ #error "Include <hb.h> instead."
27
+ #endif
28
+
29
+ #ifndef HB_STYLE_H
30
+ #define HB_STYLE_H
31
+
32
+ #include "hb.h"
33
+
34
+ HB_BEGIN_DECLS
35
+
36
+ /**
37
+ * hb_style_tag_t:
38
+ * @HB_STYLE_TAG_ITALIC: Used to vary between non-italic and italic.
39
+ * A value of 0 can be interpreted as "Roman" (non-italic); a value of 1 can
40
+ * be interpreted as (fully) italic.
41
+ * @HB_STYLE_TAG_OPTICAL_SIZE: Used to vary design to suit different text sizes.
42
+ * Non-zero. Values can be interpreted as text size, in points.
43
+ * @HB_STYLE_TAG_SLANT_ANGLE: Used to vary between upright and slanted text. Values
44
+ * must be greater than -90 and less than +90. Values can be interpreted as
45
+ * the angle, in counter-clockwise degrees, of oblique slant from whatever the
46
+ * designer considers to be upright for that font design. Typical right-leaning
47
+ * Italic fonts have a negative slant angle (typically around -12)
48
+ * @HB_STYLE_TAG_SLANT_RATIO: same as @HB_STYLE_TAG_SLANT_ANGLE expression as ratio.
49
+ * Typical right-leaning Italic fonts have a positive slant ratio (typically around 0.2)
50
+ * @HB_STYLE_TAG_WIDTH: Used to vary width of text from narrower to wider.
51
+ * Non-zero. Values can be interpreted as a percentage of whatever the font
52
+ * designer considers “normal width” for that font design.
53
+ * @HB_STYLE_TAG_WEIGHT: Used to vary stroke thicknesses or other design details
54
+ * to give variation from lighter to blacker. Values can be interpreted in direct
55
+ * comparison to values for usWeightClass in the OS/2 table,
56
+ * or the CSS font-weight property.
57
+ *
58
+ * Defined by [OpenType Design-Variation Axis Tag Registry](https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg).
59
+ *
60
+ * Since: 3.0.0
61
+ **/
62
+ typedef enum
63
+ {
64
+ HB_STYLE_TAG_ITALIC = HB_TAG ('i','t','a','l'),
65
+ HB_STYLE_TAG_OPTICAL_SIZE = HB_TAG ('o','p','s','z'),
66
+ HB_STYLE_TAG_SLANT_ANGLE = HB_TAG ('s','l','n','t'),
67
+ HB_STYLE_TAG_SLANT_RATIO = HB_TAG ('S','l','n','t'),
68
+ HB_STYLE_TAG_WIDTH = HB_TAG ('w','d','t','h'),
69
+ HB_STYLE_TAG_WEIGHT = HB_TAG ('w','g','h','t'),
70
+
71
+ /*< private >*/
72
+ _HB_STYLE_TAG_MAX_VALUE = HB_TAG_MAX_SIGNED /*< skip >*/
73
+ } hb_style_tag_t;
74
+
75
+
76
+ HB_EXTERN float
77
+ hb_style_get_value (hb_font_t *font, hb_style_tag_t style_tag);
78
+
79
+ HB_END_DECLS
80
+
81
+ #endif /* HB_STYLE_H */
@@ -0,0 +1,81 @@
1
+ /*
2
+ * Copyright © 2022 Google, Inc.
3
+ *
4
+ * This is part of HarfBuzz, a text shaping library.
5
+ *
6
+ * Permission is hereby granted, without written agreement and without
7
+ * license or royalty fees, to use, copy, modify, and distribute this
8
+ * software and its documentation for any purpose, provided that the
9
+ * above copyright notice and the following two paragraphs appear in
10
+ * all copies of this software.
11
+ *
12
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
13
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
14
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
15
+ * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
16
+ * DAMAGE.
17
+ *
18
+ * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
19
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20
+ * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
21
+ * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
22
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
23
+ *
24
+ */
25
+
26
+ #ifndef HB_SUBSET_REPACKER_H
27
+ #define HB_SUBSET_REPACKER_H
28
+
29
+ #include "hb.h"
30
+
31
+ HB_BEGIN_DECLS
32
+
33
+ #ifdef HB_EXPERIMENTAL_API
34
+ /*
35
+ * struct hb_link_t
36
+ * width: offsetSize in bytes
37
+ * position: position of the offset field in bytes
38
+ * from beginning of subtable
39
+ * objidx: index of subtable
40
+ */
41
+ struct hb_link_t
42
+ {
43
+ unsigned width;
44
+ unsigned position;
45
+ unsigned objidx;
46
+ };
47
+
48
+ typedef struct hb_link_t hb_link_t;
49
+
50
+ /*
51
+ * struct hb_object_t
52
+ * head: start of object data
53
+ * tail: end of object data
54
+ * num_real_links: num of offset field in the object
55
+ * real_links: pointer to array of offset info
56
+ * num_virtual_links: num of objects that must be packed
57
+ * after current object in the final serialized order
58
+ * virtual_links: array of virtual link info
59
+ */
60
+ struct hb_object_t
61
+ {
62
+ char *head;
63
+ char *tail;
64
+ unsigned num_real_links;
65
+ hb_link_t *real_links;
66
+ unsigned num_virtual_links;
67
+ hb_link_t *virtual_links;
68
+ };
69
+
70
+ typedef struct hb_object_t hb_object_t;
71
+
72
+ HB_EXTERN hb_blob_t*
73
+ hb_subset_repack_or_fail (hb_tag_t table_tag,
74
+ hb_object_t* hb_objects,
75
+ unsigned num_hb_objs);
76
+
77
+ #endif
78
+
79
+ HB_END_DECLS
80
+
81
+ #endif /* HB_SUBSET_REPACKER_H */
@@ -0,0 +1,234 @@
1
+ /*
2
+ * Copyright © 2018 Google, Inc.
3
+ *
4
+ * This is part of HarfBuzz, a text shaping library.
5
+ *
6
+ * Permission is hereby granted, without written agreement and without
7
+ * license or royalty fees, to use, copy, modify, and distribute this
8
+ * software and its documentation for any purpose, provided that the
9
+ * above copyright notice and the following two paragraphs appear in
10
+ * all copies of this software.
11
+ *
12
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
13
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
14
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
15
+ * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
16
+ * DAMAGE.
17
+ *
18
+ * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
19
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20
+ * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
21
+ * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
22
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
23
+ *
24
+ * Google Author(s): Rod Sheeter
25
+ */
26
+
27
+ #ifndef HB_SUBSET_H
28
+ #define HB_SUBSET_H
29
+
30
+ #include "hb.h"
31
+ #include "hb-ot.h"
32
+
33
+ HB_BEGIN_DECLS
34
+
35
+ /**
36
+ * hb_subset_input_t:
37
+ *
38
+ * Things that change based on the input. Characters to keep, etc.
39
+ */
40
+
41
+ typedef struct hb_subset_input_t hb_subset_input_t;
42
+
43
+ /**
44
+ * hb_subset_plan_t:
45
+ *
46
+ * Contains information about how the subset operation will be executed.
47
+ * Such as mappings from the old glyph ids to the new ones in the subset.
48
+ */
49
+
50
+ typedef struct hb_subset_plan_t hb_subset_plan_t;
51
+
52
+ /**
53
+ * hb_subset_flags_t:
54
+ * @HB_SUBSET_FLAGS_DEFAULT: all flags at their default value of false.
55
+ * @HB_SUBSET_FLAGS_NO_HINTING: If set hinting instructions will be dropped in
56
+ * the produced subset. Otherwise hinting instructions will be retained.
57
+ * @HB_SUBSET_FLAGS_RETAIN_GIDS: If set glyph indices will not be modified in
58
+ * the produced subset. If glyphs are dropped their indices will be retained
59
+ * as an empty glyph.
60
+ * @HB_SUBSET_FLAGS_DESUBROUTINIZE: If set and subsetting a CFF font the
61
+ * subsetter will attempt to remove subroutines from the CFF glyphs.
62
+ * @HB_SUBSET_FLAGS_NAME_LEGACY: If set non-unicode name records will be
63
+ * retained in the subset.
64
+ * @HB_SUBSET_FLAGS_SET_OVERLAPS_FLAG: If set the subsetter will set the
65
+ * OVERLAP_SIMPLE flag on each simple glyph.
66
+ * @HB_SUBSET_FLAGS_PASSTHROUGH_UNRECOGNIZED: If set the subsetter will not
67
+ * drop unrecognized tables and instead pass them through untouched.
68
+ * @HB_SUBSET_FLAGS_NOTDEF_OUTLINE: If set the notdef glyph outline will be
69
+ * retained in the final subset.
70
+ * @HB_SUBSET_FLAGS_GLYPH_NAMES: If set the PS glyph names will be retained
71
+ * in the final subset.
72
+ * @HB_SUBSET_FLAGS_NO_PRUNE_UNICODE_RANGES: If set then the unicode ranges in
73
+ * OS/2 will not be recalculated.
74
+ * @HB_SUBSET_FLAGS_PATCH_MODE: If set the subsetter behaviour will be modified
75
+ * to produce a subset that is better suited to patching. For example cmap
76
+ * subtable format will be kept stable.
77
+ * @HB_SUBSET_FLAGS_OMIT_GLYF: If set the subsetter won't actually produce the final
78
+ * glyf table bytes. The table directory will include and entry as if the table was
79
+ * there but the actual final font blob will be truncated prior to the glyf data. This
80
+ * is a useful performance optimization when a font aware binary patching algorithm
81
+ * is being used to diff two subsets.
82
+ *
83
+ * List of boolean properties that can be configured on the subset input.
84
+ *
85
+ * Since: 2.9.0
86
+ **/
87
+ typedef enum { /*< flags >*/
88
+ HB_SUBSET_FLAGS_DEFAULT = 0x00000000u,
89
+ HB_SUBSET_FLAGS_NO_HINTING = 0x00000001u,
90
+ HB_SUBSET_FLAGS_RETAIN_GIDS = 0x00000002u,
91
+ HB_SUBSET_FLAGS_DESUBROUTINIZE = 0x00000004u,
92
+ HB_SUBSET_FLAGS_NAME_LEGACY = 0x00000008u,
93
+ HB_SUBSET_FLAGS_SET_OVERLAPS_FLAG = 0x00000010u,
94
+ HB_SUBSET_FLAGS_PASSTHROUGH_UNRECOGNIZED = 0x00000020u,
95
+ HB_SUBSET_FLAGS_NOTDEF_OUTLINE = 0x00000040u,
96
+ HB_SUBSET_FLAGS_GLYPH_NAMES = 0x00000080u,
97
+ HB_SUBSET_FLAGS_NO_PRUNE_UNICODE_RANGES = 0x00000100u,
98
+ // Not supported yet: HB_SUBSET_FLAGS_PATCH_MODE = 0x00000200u,
99
+ // Not supported yet: HB_SUBSET_FLAGS_OMIT_GLYF = 0x00000400u,
100
+ } hb_subset_flags_t;
101
+
102
+ /**
103
+ * hb_subset_sets_t:
104
+ * @HB_SUBSET_SETS_GLYPH_INDEX: the set of glyph indexes to retain in the subset.
105
+ * @HB_SUBSET_SETS_UNICODE: the set of unicode codepoints to retain in the subset.
106
+ * @HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG: the set of table tags which specifies tables that should not be
107
+ * subsetted.
108
+ * @HB_SUBSET_SETS_DROP_TABLE_TAG: the set of table tags which specifies tables which will be dropped
109
+ * in the subset.
110
+ * @HB_SUBSET_SETS_NAME_ID: the set of name ids that will be retained.
111
+ * @HB_SUBSET_SETS_NAME_LANG_ID: the set of name lang ids that will be retained.
112
+ * @HB_SUBSET_SETS_LAYOUT_FEATURE_TAG: the set of layout feature tags that will be retained
113
+ * in the subset.
114
+ * @HB_SUBSET_SETS_LAYOUT_SCRIPT_TAG: the set of layout script tags that will be retained
115
+ * in the subset. Defaults to all tags. Since: 5.0.0
116
+ *
117
+ * List of sets that can be configured on the subset input.
118
+ *
119
+ * Since: 2.9.1
120
+ **/
121
+ typedef enum {
122
+ HB_SUBSET_SETS_GLYPH_INDEX = 0,
123
+ HB_SUBSET_SETS_UNICODE,
124
+ HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG,
125
+ HB_SUBSET_SETS_DROP_TABLE_TAG,
126
+ HB_SUBSET_SETS_NAME_ID,
127
+ HB_SUBSET_SETS_NAME_LANG_ID,
128
+ HB_SUBSET_SETS_LAYOUT_FEATURE_TAG,
129
+ HB_SUBSET_SETS_LAYOUT_SCRIPT_TAG,
130
+ } hb_subset_sets_t;
131
+
132
+ HB_EXTERN hb_subset_input_t *
133
+ hb_subset_input_create_or_fail (void);
134
+
135
+ HB_EXTERN hb_subset_input_t *
136
+ hb_subset_input_reference (hb_subset_input_t *input);
137
+
138
+ HB_EXTERN void
139
+ hb_subset_input_destroy (hb_subset_input_t *input);
140
+
141
+ HB_EXTERN hb_bool_t
142
+ hb_subset_input_set_user_data (hb_subset_input_t *input,
143
+ hb_user_data_key_t *key,
144
+ void * data,
145
+ hb_destroy_func_t destroy,
146
+ hb_bool_t replace);
147
+
148
+ HB_EXTERN void *
149
+ hb_subset_input_get_user_data (const hb_subset_input_t *input,
150
+ hb_user_data_key_t *key);
151
+
152
+ HB_EXTERN hb_set_t *
153
+ hb_subset_input_unicode_set (hb_subset_input_t *input);
154
+
155
+ HB_EXTERN hb_set_t *
156
+ hb_subset_input_glyph_set (hb_subset_input_t *input);
157
+
158
+ HB_EXTERN hb_set_t *
159
+ hb_subset_input_set (hb_subset_input_t *input, hb_subset_sets_t set_type);
160
+
161
+ HB_EXTERN hb_subset_flags_t
162
+ hb_subset_input_get_flags (hb_subset_input_t *input);
163
+
164
+ HB_EXTERN void
165
+ hb_subset_input_set_flags (hb_subset_input_t *input,
166
+ unsigned value);
167
+
168
+ HB_EXTERN hb_bool_t
169
+ hb_subset_input_pin_axis_to_default (hb_subset_input_t *input,
170
+ hb_face_t *face,
171
+ hb_tag_t axis_tag);
172
+
173
+ HB_EXTERN hb_bool_t
174
+ hb_subset_input_pin_axis_location (hb_subset_input_t *input,
175
+ hb_face_t *face,
176
+ hb_tag_t axis_tag,
177
+ float axis_value);
178
+
179
+ #ifdef HB_EXPERIMENTAL_API
180
+ HB_EXTERN hb_bool_t
181
+ hb_subset_input_override_name_table (hb_subset_input_t *input,
182
+ hb_ot_name_id_t name_id,
183
+ unsigned platform_id,
184
+ unsigned encoding_id,
185
+ unsigned language_id,
186
+ const char *name_str,
187
+ int str_len);
188
+
189
+ #endif
190
+
191
+ HB_EXTERN hb_face_t *
192
+ hb_subset_preprocess (hb_face_t *source);
193
+
194
+ HB_EXTERN hb_face_t *
195
+ hb_subset_or_fail (hb_face_t *source, const hb_subset_input_t *input);
196
+
197
+ HB_EXTERN hb_face_t *
198
+ hb_subset_plan_execute_or_fail (hb_subset_plan_t *plan);
199
+
200
+ HB_EXTERN hb_subset_plan_t *
201
+ hb_subset_plan_create_or_fail (hb_face_t *face,
202
+ const hb_subset_input_t *input);
203
+
204
+ HB_EXTERN void
205
+ hb_subset_plan_destroy (hb_subset_plan_t *plan);
206
+
207
+ HB_EXTERN const hb_map_t*
208
+ hb_subset_plan_old_to_new_glyph_mapping (const hb_subset_plan_t *plan);
209
+
210
+ HB_EXTERN const hb_map_t*
211
+ hb_subset_plan_new_to_old_glyph_mapping (const hb_subset_plan_t *plan);
212
+
213
+ HB_EXTERN const hb_map_t*
214
+ hb_subset_plan_unicode_to_old_glyph_mapping (const hb_subset_plan_t *plan);
215
+
216
+
217
+ HB_EXTERN hb_subset_plan_t *
218
+ hb_subset_plan_reference (hb_subset_plan_t *plan);
219
+
220
+ HB_EXTERN hb_bool_t
221
+ hb_subset_plan_set_user_data (hb_subset_plan_t *plan,
222
+ hb_user_data_key_t *key,
223
+ void *data,
224
+ hb_destroy_func_t destroy,
225
+ hb_bool_t replace);
226
+
227
+ HB_EXTERN void *
228
+ hb_subset_plan_get_user_data (const hb_subset_plan_t *plan,
229
+ hb_user_data_key_t *key);
230
+
231
+
232
+ HB_END_DECLS
233
+
234
+ #endif /* HB_SUBSET_H */