uharfbuzz 0.39.1__zip → 0.39.3__zip

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 (449) hide show
  1. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/PKG-INFO +1 -1
  2. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Color/COLR/COLR.hh +281 -33
  3. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Color/COLR/colrv1-closure.hh +40 -10
  4. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GDEF/GDEF.hh +33 -56
  5. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/Ligature.hh +14 -1
  6. uharfbuzz-0.39.3/harfbuzz/src/OT/Var/VARC/VARC.cc +346 -0
  7. uharfbuzz-0.39.3/harfbuzz/src/OT/Var/VARC/VARC.hh +193 -0
  8. {uharfbuzz-0.39.1/harfbuzz/src/OT/glyf → uharfbuzz-0.39.3/harfbuzz/src/OT/Var/VARC}/coord-setter.hh +10 -9
  9. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/glyf/Glyph.hh +4 -131
  10. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/glyf/SubsetGlyph.hh +1 -12
  11. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/glyf/glyf.hh +11 -2
  12. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/harfbuzz-subset.cc +1 -0
  13. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/harfbuzz.cc +1 -0
  14. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-layout-common.hh +183 -30
  15. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-layout-kerx-table.hh +202 -25
  16. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-layout-morx-table.hh +253 -40
  17. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-layout.cc +28 -25
  18. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-algs.hh +4 -0
  19. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-buffer.cc +44 -0
  20. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-buffer.h +6 -0
  21. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-buffer.hh +1 -0
  22. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-cff-interp-common.hh +0 -1
  23. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-cff2-interp-cs.hh +2 -6
  24. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-common.h +5 -2
  25. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-config.hh +4 -0
  26. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-cplusplus.hh +0 -3
  27. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-draw.hh +1 -1
  28. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ft-colr.hh +1 -1
  29. uharfbuzz-0.39.1/harfbuzz/src/hb-paint-extents.hh → uharfbuzz-0.39.3/harfbuzz/src/hb-geometry.hh +91 -100
  30. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-iter.hh +10 -0
  31. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-limits.hh +8 -9
  32. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-open-type.hh +717 -0
  33. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-cff-common.hh +0 -241
  34. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-cff1-table.hh +2 -3
  35. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-cff2-table.cc +6 -1
  36. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-cff2-table.hh +2 -2
  37. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-face-table-list.hh +7 -4
  38. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-face.cc +2 -0
  39. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-font.cc +8 -0
  40. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-hmtx-table.hh +3 -1
  41. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-kern-table.hh +67 -4
  42. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-layout-base-table.hh +63 -12
  43. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-layout-common.hh +756 -24
  44. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-layout-gsubgpos.hh +76 -17
  45. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-layout.cc +9 -5
  46. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-os2-table.hh +5 -5
  47. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-post-table.hh +1 -1
  48. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shape-normalize.cc +2 -20
  49. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shape-normalize.hh +33 -0
  50. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shape.cc +6 -5
  51. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-hebrew.cc +1 -1
  52. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper.hh +14 -13
  53. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-stat-table.hh +2 -1
  54. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-tag-table.hh +60 -51
  55. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-var-avar-table.hh +4 -4
  56. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-var-common.hh +74 -473
  57. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-var-cvar-table.hh +2 -2
  58. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-var-fvar-table.hh +5 -2
  59. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-var-gvar-table.hh +5 -8
  60. uharfbuzz-0.39.3/harfbuzz/src/hb-ot-var-varc-table.hh +32 -0
  61. uharfbuzz-0.39.3/harfbuzz/src/hb-paint-extents.hh +132 -0
  62. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-repacker.hh +13 -5
  63. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-serialize.hh +52 -8
  64. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-set-digest.hh +15 -5
  65. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-set.hh +1 -1
  66. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-cff-common.hh +51 -6
  67. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-cff2.cc +3 -0
  68. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-input.cc +8 -10
  69. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-instancer-iup.cc +34 -34
  70. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-instancer-iup.hh +1 -1
  71. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-instancer-solver.cc +47 -47
  72. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-instancer-solver.hh +17 -15
  73. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-plan-member-list.hh +7 -1
  74. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-plan.cc +204 -111
  75. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset.h +5 -6
  76. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-version.h +4 -4
  77. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-wasm-api.h +3 -0
  78. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-wasm-shape.cc +3 -3
  79. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/main.cc +2 -1
  80. uharfbuzz-0.39.3/harfbuzz/src/test-cff.cc +75 -0
  81. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-item-varstore.cc +2 -2
  82. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-repacker.cc +101 -11
  83. uharfbuzz-0.39.3/harfbuzz/src/test-subset-instancer-solver.cc +431 -0
  84. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-tuple-varstore.cc +11 -11
  85. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/pyproject.toml +1 -1
  86. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/src/uharfbuzz/_harfbuzz.cpp +51 -13
  87. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/src/uharfbuzz/_harfbuzz_test.cpp +35 -5
  88. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/src/uharfbuzz/_version.py +2 -2
  89. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/src/uharfbuzz.egg-info/PKG-INFO +1 -1
  90. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/src/uharfbuzz.egg-info/SOURCES.txt +6 -2
  91. uharfbuzz-0.39.1/harfbuzz/src/OT/glyf/VarCompositeGlyph.hh +0 -401
  92. uharfbuzz-0.39.1/harfbuzz/src/test-subset-instancer-solver.cc +0 -431
  93. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/.coveragerc +0 -0
  94. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/.github/workflows/ci.yml +0 -0
  95. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/.gitignore +0 -0
  96. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/.gitmodules +0 -0
  97. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/LICENSE +0 -0
  98. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/MANIFEST.in +0 -0
  99. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/README.md +0 -0
  100. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Color/CBDT/CBDT.hh +0 -0
  101. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Color/CPAL/CPAL.hh +0 -0
  102. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Color/sbix/sbix.hh +0 -0
  103. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Color/svg/svg.hh +0 -0
  104. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/Common/Coverage.hh +0 -0
  105. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/Common/CoverageFormat1.hh +0 -0
  106. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/Common/CoverageFormat2.hh +0 -0
  107. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/Common/RangeRecord.hh +0 -0
  108. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/Anchor.hh +0 -0
  109. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/AnchorFormat1.hh +0 -0
  110. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/AnchorFormat2.hh +0 -0
  111. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/AnchorFormat3.hh +0 -0
  112. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/AnchorMatrix.hh +0 -0
  113. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/ChainContextPos.hh +0 -0
  114. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/Common.hh +0 -0
  115. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/ContextPos.hh +0 -0
  116. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/CursivePos.hh +0 -0
  117. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/CursivePosFormat1.hh +0 -0
  118. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/ExtensionPos.hh +0 -0
  119. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/GPOS.hh +0 -0
  120. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/LigatureArray.hh +0 -0
  121. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/MarkArray.hh +0 -0
  122. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/MarkBasePos.hh +0 -0
  123. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/MarkBasePosFormat1.hh +0 -0
  124. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/MarkLigPos.hh +0 -0
  125. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/MarkLigPosFormat1.hh +0 -0
  126. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/MarkMarkPos.hh +0 -0
  127. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/MarkMarkPosFormat1.hh +0 -0
  128. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/MarkRecord.hh +0 -0
  129. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/PairPos.hh +0 -0
  130. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/PairPosFormat1.hh +0 -0
  131. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/PairPosFormat2.hh +0 -0
  132. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/PairSet.hh +0 -0
  133. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/PairValueRecord.hh +0 -0
  134. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/PosLookup.hh +0 -0
  135. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/PosLookupSubTable.hh +0 -0
  136. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/SinglePos.hh +0 -0
  137. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/SinglePosFormat1.hh +0 -0
  138. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/SinglePosFormat2.hh +0 -0
  139. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GPOS/ValueFormat.hh +0 -0
  140. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/AlternateSet.hh +0 -0
  141. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/AlternateSubst.hh +0 -0
  142. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/AlternateSubstFormat1.hh +0 -0
  143. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/ChainContextSubst.hh +0 -0
  144. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/Common.hh +0 -0
  145. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/ContextSubst.hh +0 -0
  146. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/ExtensionSubst.hh +0 -0
  147. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/GSUB.hh +0 -0
  148. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/LigatureSet.hh +0 -0
  149. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/LigatureSubst.hh +0 -0
  150. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/LigatureSubstFormat1.hh +0 -0
  151. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/MultipleSubst.hh +0 -0
  152. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/MultipleSubstFormat1.hh +0 -0
  153. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/ReverseChainSingleSubst.hh +0 -0
  154. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/ReverseChainSingleSubstFormat1.hh +0 -0
  155. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/Sequence.hh +0 -0
  156. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/SingleSubst.hh +0 -0
  157. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/SingleSubstFormat1.hh +0 -0
  158. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/SingleSubstFormat2.hh +0 -0
  159. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/SubstLookup.hh +0 -0
  160. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/GSUB/SubstLookupSubTable.hh +0 -0
  161. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/Layout/types.hh +0 -0
  162. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/glyf/CompositeGlyph.hh +0 -0
  163. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/glyf/GlyphHeader.hh +0 -0
  164. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/glyf/SimpleGlyph.hh +0 -0
  165. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/glyf/composite-iter.hh +0 -0
  166. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/glyf/glyf-helpers.hh +0 -0
  167. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/glyf/loca.hh +0 -0
  168. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/glyf/path-builder.hh +0 -0
  169. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/OT/name/name.hh +0 -0
  170. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/graph/classdef-graph.hh +0 -0
  171. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/graph/coverage-graph.hh +0 -0
  172. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/graph/graph.hh +0 -0
  173. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/graph/gsubgpos-context.cc +0 -0
  174. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/graph/gsubgpos-context.hh +0 -0
  175. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/graph/gsubgpos-graph.hh +0 -0
  176. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/graph/markbasepos-graph.hh +0 -0
  177. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/graph/pairpos-graph.hh +0 -0
  178. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/graph/serialize.hh +0 -0
  179. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/graph/split-helpers.hh +0 -0
  180. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/graph/test-classdef-graph.cc +0 -0
  181. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-layout-ankr-table.hh +0 -0
  182. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-layout-bsln-table.hh +0 -0
  183. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-layout-feat-table.hh +0 -0
  184. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-layout-just-table.hh +0 -0
  185. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-layout-opbd-table.hh +0 -0
  186. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-layout-trak-table.hh +0 -0
  187. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-layout.h +0 -0
  188. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-layout.hh +0 -0
  189. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-ltag-table.hh +0 -0
  190. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-map.cc +0 -0
  191. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat-map.hh +0 -0
  192. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-aat.h +0 -0
  193. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-array.hh +0 -0
  194. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-atomic.hh +0 -0
  195. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-bimap.hh +0 -0
  196. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-bit-page.hh +0 -0
  197. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-bit-set-invertible.hh +0 -0
  198. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-bit-set.hh +0 -0
  199. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-blob.cc +0 -0
  200. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-blob.h +0 -0
  201. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-blob.hh +0 -0
  202. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-buffer-deserialize-json.hh +0 -0
  203. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-buffer-deserialize-text-glyphs.hh +0 -0
  204. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-buffer-deserialize-text-unicode.hh +0 -0
  205. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-buffer-serialize.cc +0 -0
  206. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-buffer-verify.cc +0 -0
  207. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-cache.hh +0 -0
  208. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-cairo-utils.cc +0 -0
  209. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-cairo-utils.hh +0 -0
  210. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-cairo.cc +0 -0
  211. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-cairo.h +0 -0
  212. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-cff-interp-cs-common.hh +0 -0
  213. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-cff-interp-dict-common.hh +0 -0
  214. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-cff1-interp-cs.hh +0 -0
  215. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-common.cc +0 -0
  216. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-coretext.cc +0 -0
  217. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-coretext.h +0 -0
  218. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-debug.hh +0 -0
  219. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-deprecated.h +0 -0
  220. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-directwrite.cc +0 -0
  221. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-directwrite.h +0 -0
  222. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-dispatch.hh +0 -0
  223. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-draw.cc +0 -0
  224. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-draw.h +0 -0
  225. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-face-builder.cc +0 -0
  226. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-face.cc +0 -0
  227. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-face.h +0 -0
  228. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-face.hh +0 -0
  229. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-fallback-shape.cc +0 -0
  230. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-font.cc +0 -0
  231. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-font.h +0 -0
  232. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-font.hh +0 -0
  233. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ft.cc +0 -0
  234. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ft.h +0 -0
  235. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-gdi.cc +0 -0
  236. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-gdi.h +0 -0
  237. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-glib.cc +0 -0
  238. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-glib.h +0 -0
  239. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-gobject-structs.cc +0 -0
  240. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-gobject-structs.h +0 -0
  241. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-gobject.h +0 -0
  242. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-graphite2.cc +0 -0
  243. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-graphite2.h +0 -0
  244. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-icu.cc +0 -0
  245. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-icu.h +0 -0
  246. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-kern.hh +0 -0
  247. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-machinery.hh +0 -0
  248. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-map.cc +0 -0
  249. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-map.h +0 -0
  250. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-map.hh +0 -0
  251. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-meta.hh +0 -0
  252. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ms-feature-ranges.hh +0 -0
  253. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-multimap.hh +0 -0
  254. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-mutex.hh +0 -0
  255. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-null.hh +0 -0
  256. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-number-parser.hh +0 -0
  257. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-number.cc +0 -0
  258. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-number.hh +0 -0
  259. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-object.hh +0 -0
  260. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-open-file.hh +0 -0
  261. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-cff1-std-str.hh +0 -0
  262. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-cff1-table.cc +0 -0
  263. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-cmap-table.hh +0 -0
  264. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-color.cc +0 -0
  265. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-color.h +0 -0
  266. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-deprecated.h +0 -0
  267. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-face.hh +0 -0
  268. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-font.h +0 -0
  269. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-gasp-table.hh +0 -0
  270. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-glyf-table.hh +0 -0
  271. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-hdmx-table.hh +0 -0
  272. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-head-table.hh +0 -0
  273. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-hhea-table.hh +0 -0
  274. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-layout-gdef-table.hh +0 -0
  275. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-layout-gpos-table.hh +0 -0
  276. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-layout-gsub-table.hh +0 -0
  277. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-layout-jstf-table.hh +0 -0
  278. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-layout.h +0 -0
  279. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-layout.hh +0 -0
  280. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-map.cc +0 -0
  281. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-map.hh +0 -0
  282. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-math-table.hh +0 -0
  283. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-math.cc +0 -0
  284. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-math.h +0 -0
  285. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-maxp-table.hh +0 -0
  286. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-meta-table.hh +0 -0
  287. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-meta.cc +0 -0
  288. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-meta.h +0 -0
  289. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-metrics.cc +0 -0
  290. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-metrics.h +0 -0
  291. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-metrics.hh +0 -0
  292. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-name-language-static.hh +0 -0
  293. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-name-language.hh +0 -0
  294. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-name-table.hh +0 -0
  295. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-name.cc +0 -0
  296. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-name.h +0 -0
  297. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-os2-unicode-ranges.hh +0 -0
  298. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-post-macroman.hh +0 -0
  299. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-post-table-v2subset.hh +0 -0
  300. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shape-fallback.cc +0 -0
  301. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shape-fallback.hh +0 -0
  302. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shape.h +0 -0
  303. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shape.hh +0 -0
  304. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-arabic-fallback.hh +0 -0
  305. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-arabic-joining-list.hh +0 -0
  306. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-arabic-pua.hh +0 -0
  307. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-arabic-table.hh +0 -0
  308. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-arabic-win1256.hh +0 -0
  309. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-arabic.cc +0 -0
  310. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-arabic.hh +0 -0
  311. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-default.cc +0 -0
  312. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-hangul.cc +0 -0
  313. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-indic-machine.hh +0 -0
  314. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-indic-table.cc +0 -0
  315. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-indic.cc +0 -0
  316. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-indic.hh +0 -0
  317. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-khmer-machine.hh +0 -0
  318. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-khmer.cc +0 -0
  319. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-myanmar-machine.hh +0 -0
  320. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-myanmar.cc +0 -0
  321. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-syllabic.cc +0 -0
  322. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-syllabic.hh +0 -0
  323. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-thai.cc +0 -0
  324. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-use-machine.hh +0 -0
  325. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-use-table.hh +0 -0
  326. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-use.cc +0 -0
  327. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-vowel-constraints.cc +0 -0
  328. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-shaper-vowel-constraints.hh +0 -0
  329. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-tag.cc +0 -0
  330. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-var-hvar-table.hh +0 -0
  331. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-var-mvar-table.hh +0 -0
  332. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-var.cc +0 -0
  333. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-var.h +0 -0
  334. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot-vorg-table.hh +0 -0
  335. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ot.h +0 -0
  336. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-outline.cc +0 -0
  337. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-outline.hh +0 -0
  338. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-paint-extents.cc +0 -0
  339. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-paint.cc +0 -0
  340. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-paint.h +0 -0
  341. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-paint.hh +0 -0
  342. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-pool.hh +0 -0
  343. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-priority-queue.hh +0 -0
  344. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-sanitize.hh +0 -0
  345. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-set.cc +0 -0
  346. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-set.h +0 -0
  347. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-shape-plan.cc +0 -0
  348. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-shape-plan.h +0 -0
  349. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-shape-plan.hh +0 -0
  350. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-shape.cc +0 -0
  351. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-shape.h +0 -0
  352. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-shaper-impl.hh +0 -0
  353. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-shaper-list.hh +0 -0
  354. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-shaper.cc +0 -0
  355. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-shaper.hh +0 -0
  356. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-static.cc +0 -0
  357. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-string-array.hh +0 -0
  358. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-style.cc +0 -0
  359. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-style.h +0 -0
  360. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-accelerator.hh +0 -0
  361. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-cff-common.cc +0 -0
  362. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-cff1.cc +0 -0
  363. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-input.hh +0 -0
  364. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-plan.hh +0 -0
  365. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-repacker.cc +0 -0
  366. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset-repacker.h +0 -0
  367. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset.cc +0 -0
  368. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-subset.hh +0 -0
  369. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ucd-table.hh +0 -0
  370. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-ucd.cc +0 -0
  371. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-unicode-emoji-table.hh +0 -0
  372. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-unicode.cc +0 -0
  373. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-unicode.h +0 -0
  374. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-unicode.hh +0 -0
  375. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-uniscribe.cc +0 -0
  376. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-uniscribe.h +0 -0
  377. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-utf.hh +0 -0
  378. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-vector.hh +0 -0
  379. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-wasm-api-blob.hh +0 -0
  380. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-wasm-api-buffer.hh +0 -0
  381. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-wasm-api-common.hh +0 -0
  382. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-wasm-api-face.hh +0 -0
  383. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-wasm-api-font.hh +0 -0
  384. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-wasm-api-list.hh +0 -0
  385. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-wasm-api-shape.hh +0 -0
  386. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-wasm-api.cc +0 -0
  387. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb-wasm-api.hh +0 -0
  388. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb.h +0 -0
  389. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/hb.hh +0 -0
  390. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-algs.cc +0 -0
  391. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-array.cc +0 -0
  392. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-bimap.cc +0 -0
  393. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-buffer-serialize.cc +0 -0
  394. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-gpos-size-params.cc +0 -0
  395. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-gsub-get-alternates.cc +0 -0
  396. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-gsub-would-substitute.cc +0 -0
  397. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-iter.cc +0 -0
  398. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-machinery.cc +0 -0
  399. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-map.cc +0 -0
  400. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-multimap.cc +0 -0
  401. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-number.cc +0 -0
  402. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-ot-glyphname.cc +0 -0
  403. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-ot-meta.cc +0 -0
  404. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-ot-name.cc +0 -0
  405. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-priority-queue.cc +0 -0
  406. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-serialize.cc +0 -0
  407. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-set.cc +0 -0
  408. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-unicode-ranges.cc +0 -0
  409. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-use-table.cc +0 -0
  410. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test-vector.cc +0 -0
  411. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/test.cc +0 -0
  412. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/wasm/graphite/shape.cc +0 -0
  413. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/wasm/sample/c/shape-fallback.cc +0 -0
  414. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/harfbuzz/src/wasm/sample/c/shape-ot.cc +0 -0
  415. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/requirements-dev.txt +0 -0
  416. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/setup.cfg +0 -0
  417. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/setup.py +0 -0
  418. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/src/uharfbuzz/__init__.py +0 -0
  419. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/src/uharfbuzz/_draw_test_funcs.cc +0 -0
  420. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/src/uharfbuzz/_harfbuzz.pyx +0 -0
  421. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/src/uharfbuzz/_harfbuzz_test.pyx +0 -0
  422. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/src/uharfbuzz/charfbuzz.pxd +0 -0
  423. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/src/uharfbuzz.egg-info/dependency_links.txt +0 -0
  424. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/src/uharfbuzz.egg-info/not-zip-safe +0 -0
  425. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/src/uharfbuzz.egg-info/top_level.txt +0 -0
  426. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/AdobeBlank.fea +0 -0
  427. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/AdobeBlank.subset.ttf +0 -0
  428. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/LICENSE_AdobeBlank.txt +0 -0
  429. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/LICENSE_MutatorSans.txt +0 -0
  430. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/LICENSE_OpenSans.ttf +0 -0
  431. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/MutatorSans-VF.subset.ttf +0 -0
  432. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/OpenSans.subset.ttf +0 -0
  433. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/STIXTwoMath-Regular.ttf +0 -0
  434. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/SparseFont.ttf +0 -0
  435. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/chromacheck-colr.ttf +0 -0
  436. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/expected/hand-10 +0 -0
  437. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/expected/test-10 +0 -0
  438. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/expected/test-106 +0 -0
  439. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/expected/test-116 +0 -0
  440. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/expected/test-123 +0 -0
  441. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/expected/test-154 +0 -0
  442. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/expected/test-165 +0 -0
  443. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/expected/test-175 +0 -0
  444. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/expected/test-6 +0 -0
  445. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/expected/test-92 +0 -0
  446. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/noto_handwriting-cff2_colr_1.otf +0 -0
  447. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/data/test_glyphs-glyf_colr_1.ttf +0 -0
  448. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tests/test_uharfbuzz.py +0 -0
  449. {uharfbuzz-0.39.1 → uharfbuzz-0.39.3}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: uharfbuzz
3
- Version: 0.39.1
3
+ Version: 0.39.3
4
4
  Summary: Streamlined Cython bindings for the harfbuzz shaping engine
5
5
  Home-page: https://github.com/trufont/uharfbuzz
6
6
  Author: Adrien Tétar
@@ -72,7 +72,7 @@ public:
72
72
  hb_map_t current_glyphs;
73
73
  hb_map_t current_layers;
74
74
  int depth_left = HB_MAX_NESTING_LEVEL;
75
- int edge_count = HB_COLRV1_MAX_EDGE_COUNT;
75
+ int edge_count = HB_MAX_GRAPH_EDGE_COUNT;
76
76
 
77
77
  hb_paint_context_t (const void *base_,
78
78
  hb_paint_funcs_t *funcs_,
@@ -159,23 +159,35 @@ struct hb_colrv1_closure_context_t :
159
159
  void add_palette_index (unsigned palette_index)
160
160
  { palette_indices->add (palette_index); }
161
161
 
162
+ void add_var_idxes (unsigned first_var_idx, unsigned num_idxes)
163
+ {
164
+ if (!num_idxes || first_var_idx == VarIdx::NO_VARIATION) return;
165
+ variation_indices->add_range (first_var_idx, first_var_idx + num_idxes - 1);
166
+ }
167
+
162
168
  public:
163
169
  const void *base;
164
170
  hb_set_t visited_paint;
165
171
  hb_set_t *glyphs;
166
172
  hb_set_t *layer_indices;
167
173
  hb_set_t *palette_indices;
174
+ hb_set_t *variation_indices;
175
+ unsigned num_var_idxes;
168
176
  unsigned nesting_level_left;
169
177
 
170
178
  hb_colrv1_closure_context_t (const void *base_,
171
179
  hb_set_t *glyphs_,
172
180
  hb_set_t *layer_indices_,
173
181
  hb_set_t *palette_indices_,
182
+ hb_set_t *variation_indices_,
183
+ unsigned num_var_idxes_ = 1,
174
184
  unsigned nesting_level_left_ = HB_MAX_NESTING_LEVEL) :
175
185
  base (base_),
176
186
  glyphs (glyphs_),
177
187
  layer_indices (layer_indices_),
178
188
  palette_indices (palette_indices_),
189
+ variation_indices (variation_indices_),
190
+ num_var_idxes (num_var_idxes_),
179
191
  nesting_level_left (nesting_level_left_)
180
192
  {}
181
193
  };
@@ -242,7 +254,12 @@ struct Variable
242
254
  }
243
255
 
244
256
  void closurev1 (hb_colrv1_closure_context_t* c) const
245
- { value.closurev1 (c); }
257
+ {
258
+ c->num_var_idxes = 0;
259
+ // update c->num_var_idxes during value closure
260
+ value.closurev1 (c);
261
+ c->add_var_idxes (varIdxBase, c->num_var_idxes);
262
+ }
246
263
 
247
264
  bool subset (hb_subset_context_t *c,
248
265
  const ItemVarStoreInstancer &instancer) const
@@ -252,8 +269,18 @@ struct Variable
252
269
  if (c->plan->all_axes_pinned)
253
270
  return_trace (true);
254
271
 
255
- //TODO: update varIdxBase for partial-instancing
256
- return_trace (c->serializer->embed (varIdxBase));
272
+ VarIdx new_varidx;
273
+ new_varidx = varIdxBase;
274
+ if (varIdxBase != VarIdx::NO_VARIATION)
275
+ {
276
+ hb_pair_t<unsigned, int> *new_varidx_delta;
277
+ if (!c->plan->colrv1_variation_idx_delta_map.has (varIdxBase, &new_varidx_delta))
278
+ return_trace (false);
279
+
280
+ new_varidx = hb_first (*new_varidx_delta);
281
+ }
282
+
283
+ return_trace (c->serializer->embed (new_varidx));
257
284
  }
258
285
 
259
286
  bool sanitize (hb_sanitize_context_t *c) const
@@ -345,7 +372,10 @@ struct NoVariable
345
372
  struct ColorStop
346
373
  {
347
374
  void closurev1 (hb_colrv1_closure_context_t* c) const
348
- { c->add_palette_index (paletteIndex); }
375
+ {
376
+ c->add_palette_index (paletteIndex);
377
+ c->num_var_idxes = 2;
378
+ }
349
379
 
350
380
  bool subset (hb_subset_context_t *c,
351
381
  const ItemVarStoreInstancer &instancer,
@@ -542,6 +572,9 @@ struct Affine2x3
542
572
  return_trace (c->check_struct (this));
543
573
  }
544
574
 
575
+ void closurev1 (hb_colrv1_closure_context_t* c) const
576
+ { c->num_var_idxes = 6; }
577
+
545
578
  bool subset (hb_subset_context_t *c,
546
579
  const ItemVarStoreInstancer &instancer,
547
580
  uint32_t varIdxBase) const
@@ -617,7 +650,10 @@ struct PaintColrLayers
617
650
  struct PaintSolid
618
651
  {
619
652
  void closurev1 (hb_colrv1_closure_context_t* c) const
620
- { c->add_palette_index (paletteIndex); }
653
+ {
654
+ c->add_palette_index (paletteIndex);
655
+ c->num_var_idxes = 1;
656
+ }
621
657
 
622
658
  bool subset (hb_subset_context_t *c,
623
659
  const ItemVarStoreInstancer &instancer,
@@ -666,7 +702,10 @@ template <template<typename> class Var>
666
702
  struct PaintLinearGradient
667
703
  {
668
704
  void closurev1 (hb_colrv1_closure_context_t* c) const
669
- { (this+colorLine).closurev1 (c); }
705
+ {
706
+ (this+colorLine).closurev1 (c);
707
+ c->num_var_idxes = 6;
708
+ }
670
709
 
671
710
  bool subset (hb_subset_context_t *c,
672
711
  const ItemVarStoreInstancer &instancer,
@@ -733,7 +772,10 @@ template <template<typename> class Var>
733
772
  struct PaintRadialGradient
734
773
  {
735
774
  void closurev1 (hb_colrv1_closure_context_t* c) const
736
- { (this+colorLine).closurev1 (c); }
775
+ {
776
+ (this+colorLine).closurev1 (c);
777
+ c->num_var_idxes = 6;
778
+ }
737
779
 
738
780
  bool subset (hb_subset_context_t *c,
739
781
  const ItemVarStoreInstancer &instancer,
@@ -800,7 +842,10 @@ template <template<typename> class Var>
800
842
  struct PaintSweepGradient
801
843
  {
802
844
  void closurev1 (hb_colrv1_closure_context_t* c) const
803
- { (this+colorLine).closurev1 (c); }
845
+ {
846
+ (this+colorLine).closurev1 (c);
847
+ c->num_var_idxes = 4;
848
+ }
804
849
 
805
850
  bool subset (hb_subset_context_t *c,
806
851
  const ItemVarStoreInstancer &instancer,
@@ -1544,6 +1589,9 @@ struct ClipBoxFormat2 : Variable<ClipBoxFormat1>
1544
1589
  clip_box.yMax += roundf (instancer (varIdxBase, 3));
1545
1590
  }
1546
1591
  }
1592
+
1593
+ void closurev1 (hb_colrv1_closure_context_t* c) const
1594
+ { c->variation_indices->add_range (varIdxBase, varIdxBase + 3); }
1547
1595
  };
1548
1596
 
1549
1597
  struct ClipBox
@@ -1559,6 +1607,14 @@ struct ClipBox
1559
1607
  }
1560
1608
  }
1561
1609
 
1610
+ void closurev1 (hb_colrv1_closure_context_t* c) const
1611
+ {
1612
+ switch (u.format) {
1613
+ case 2: u.format2.closurev1 (c);
1614
+ default:return;
1615
+ }
1616
+ }
1617
+
1562
1618
  template <typename context_t, typename ...Ts>
1563
1619
  typename context_t::return_t dispatch (context_t *c, Ts&&... ds) const
1564
1620
  {
@@ -1606,6 +1662,12 @@ struct ClipRecord
1606
1662
  int cmp (hb_codepoint_t g) const
1607
1663
  { return g < startGlyphID ? -1 : g <= endGlyphID ? 0 : +1; }
1608
1664
 
1665
+ void closurev1 (hb_colrv1_closure_context_t* c, const void *base) const
1666
+ {
1667
+ if (!c->glyphs->intersects (startGlyphID, endGlyphID)) return;
1668
+ (base+clipBox).closurev1 (c);
1669
+ }
1670
+
1609
1671
  bool subset (hb_subset_context_t *c,
1610
1672
  const void *base,
1611
1673
  const ItemVarStoreInstancer &instancer) const
@@ -1941,6 +2003,76 @@ struct LayerList : Array32OfOffset32To<Paint>
1941
2003
  }
1942
2004
  };
1943
2005
 
2006
+ struct delta_set_index_map_subset_plan_t
2007
+ {
2008
+ unsigned get_inner_bit_count () const { return inner_bit_count; }
2009
+ unsigned get_width () const { return ((outer_bit_count + inner_bit_count + 7) / 8); }
2010
+ hb_array_t<const uint32_t> get_output_map () const { return output_map.as_array (); }
2011
+
2012
+ delta_set_index_map_subset_plan_t (const hb_map_t &new_deltaset_idx_varidx_map)
2013
+ {
2014
+ map_count = 0;
2015
+ outer_bit_count = 0;
2016
+ inner_bit_count = 1;
2017
+ output_map.init ();
2018
+
2019
+ /* search backwards */
2020
+ unsigned count = new_deltaset_idx_varidx_map.get_population ();
2021
+ if (!count) return;
2022
+
2023
+ unsigned last_idx = (unsigned)-1;
2024
+ unsigned last_varidx = (unsigned)-1;
2025
+
2026
+ for (unsigned i = count; i; i--)
2027
+ {
2028
+ unsigned delta_set_idx = i - 1;
2029
+ unsigned var_idx = new_deltaset_idx_varidx_map.get (delta_set_idx);
2030
+ if (i == count)
2031
+ {
2032
+ last_idx = delta_set_idx;
2033
+ last_varidx = var_idx;
2034
+ continue;
2035
+ }
2036
+ if (var_idx != last_varidx)
2037
+ break;
2038
+ last_idx = delta_set_idx;
2039
+ }
2040
+
2041
+ map_count = last_idx + 1;
2042
+ }
2043
+
2044
+ bool remap (const hb_map_t &new_deltaset_idx_varidx_map)
2045
+ {
2046
+ /* recalculate bit_count */
2047
+ outer_bit_count = 1;
2048
+ inner_bit_count = 1;
2049
+
2050
+ if (unlikely (!output_map.resize (map_count, false))) return false;
2051
+
2052
+ for (unsigned idx = 0; idx < map_count; idx++)
2053
+ {
2054
+ uint32_t *var_idx;
2055
+ if (!new_deltaset_idx_varidx_map.has (idx, &var_idx)) return false;
2056
+ output_map.arrayZ[idx] = *var_idx;
2057
+
2058
+ unsigned outer = (*var_idx) >> 16;
2059
+ unsigned bit_count = (outer == 0) ? 1 : hb_bit_storage (outer);
2060
+ outer_bit_count = hb_max (bit_count, outer_bit_count);
2061
+
2062
+ unsigned inner = (*var_idx) & 0xFFFF;
2063
+ bit_count = (inner == 0) ? 1 : hb_bit_storage (inner);
2064
+ inner_bit_count = hb_max (bit_count, inner_bit_count);
2065
+ }
2066
+ return true;
2067
+ }
2068
+
2069
+ private:
2070
+ unsigned map_count;
2071
+ unsigned outer_bit_count;
2072
+ unsigned inner_bit_count;
2073
+ hb_vector_t<uint32_t> output_map;
2074
+ };
2075
+
1944
2076
  struct COLR
1945
2077
  {
1946
2078
  static constexpr hb_tag_t tableTag = HB_OT_TAG_COLR;
@@ -1992,8 +2124,22 @@ struct COLR
1992
2124
 
1993
2125
  void closure_forV1 (hb_set_t *glyphset,
1994
2126
  hb_set_t *layer_indices,
1995
- hb_set_t *palette_indices) const
1996
- { colr->closure_forV1 (glyphset, layer_indices, palette_indices); }
2127
+ hb_set_t *palette_indices,
2128
+ hb_set_t *variation_indices,
2129
+ hb_set_t *delta_set_indices) const
2130
+ { colr->closure_forV1 (glyphset, layer_indices, palette_indices, variation_indices, delta_set_indices); }
2131
+
2132
+ bool has_var_store () const
2133
+ { return colr->has_var_store (); }
2134
+
2135
+ const ItemVariationStore &get_var_store () const
2136
+ { return colr->get_var_store (); }
2137
+
2138
+ bool has_delta_set_index_map () const
2139
+ { return colr->has_delta_set_index_map (); }
2140
+
2141
+ const DeltaSetIndexMap &get_delta_set_index_map () const
2142
+ { return colr->get_delta_set_index_map (); }
1997
2143
 
1998
2144
  private:
1999
2145
  hb_blob_ptr_t<COLR> colr;
@@ -2030,14 +2176,16 @@ struct COLR
2030
2176
 
2031
2177
  void closure_forV1 (hb_set_t *glyphset,
2032
2178
  hb_set_t *layer_indices,
2033
- hb_set_t *palette_indices) const
2179
+ hb_set_t *palette_indices,
2180
+ hb_set_t *variation_indices,
2181
+ hb_set_t *delta_set_indices) const
2034
2182
  {
2035
2183
  if (version != 1) return;
2036
2184
  hb_barrier ();
2037
2185
 
2038
2186
  hb_set_t visited_glyphs;
2039
2187
 
2040
- hb_colrv1_closure_context_t c (this, &visited_glyphs, layer_indices, palette_indices);
2188
+ hb_colrv1_closure_context_t c (this, &visited_glyphs, layer_indices, palette_indices, variation_indices);
2041
2189
  const BaseGlyphList &baseglyph_paintrecords = this+baseGlyphList;
2042
2190
 
2043
2191
  for (const BaseGlyphPaintRecord &baseglyph_paintrecord: baseglyph_paintrecords.iter ())
@@ -2049,6 +2197,22 @@ struct COLR
2049
2197
  paint.dispatch (&c);
2050
2198
  }
2051
2199
  hb_set_union (glyphset, &visited_glyphs);
2200
+
2201
+ const ClipList &cliplist = this+clipList;
2202
+ c.glyphs = glyphset;
2203
+ for (const ClipRecord &clip_record : cliplist.clips.iter())
2204
+ clip_record.closurev1 (&c, &cliplist);
2205
+
2206
+ // if a DeltaSetIndexMap is included, collected variation indices are
2207
+ // actually delta set indices, we need to map them into variation indices
2208
+ if (has_delta_set_index_map ())
2209
+ {
2210
+ const DeltaSetIndexMap &var_idx_map = this+varIdxMap;
2211
+ delta_set_indices->set (*variation_indices);
2212
+ variation_indices->clear ();
2213
+ for (unsigned delta_set_idx : *delta_set_indices)
2214
+ variation_indices->add (var_idx_map.map (delta_set_idx));
2215
+ }
2052
2216
  }
2053
2217
 
2054
2218
  const LayerList& get_layerList () const
@@ -2057,6 +2221,18 @@ struct COLR
2057
2221
  const BaseGlyphList& get_baseglyphList () const
2058
2222
  { return (this+baseGlyphList); }
2059
2223
 
2224
+ bool has_var_store () const
2225
+ { return version >= 1 && varStore != 0; }
2226
+
2227
+ bool has_delta_set_index_map () const
2228
+ { return version >= 1 && varIdxMap != 0; }
2229
+
2230
+ const DeltaSetIndexMap &get_delta_set_index_map () const
2231
+ { return (version == 0 || varIdxMap == 0) ? Null (DeltaSetIndexMap) : this+varIdxMap; }
2232
+
2233
+ const ItemVariationStore &get_var_store () const
2234
+ { return (version == 0 || varStore == 0) ? Null (ItemVariationStore) : this+varStore; }
2235
+
2060
2236
  bool sanitize (hb_sanitize_context_t *c) const
2061
2237
  {
2062
2238
  TRACE_SANITIZE (this);
@@ -2132,6 +2308,88 @@ struct COLR
2132
2308
  return record;
2133
2309
  }
2134
2310
 
2311
+ bool downgrade_to_V0 (const hb_set_t &glyphset) const
2312
+ {
2313
+ //no more COLRv1 glyphs, downgrade to version 0
2314
+ for (const BaseGlyphPaintRecord& _ : get_baseglyphList ())
2315
+ if (glyphset.has (_.glyphId))
2316
+ return false;
2317
+
2318
+ return true;
2319
+ }
2320
+
2321
+ bool subset_varstore (hb_subset_context_t *c,
2322
+ COLR* out /* OUT */) const
2323
+ {
2324
+ TRACE_SUBSET (this);
2325
+ if (!varStore || c->plan->all_axes_pinned ||
2326
+ !c->plan->colrv1_variation_idx_delta_map)
2327
+ return_trace (true);
2328
+
2329
+ const ItemVariationStore& var_store = this+varStore;
2330
+ if (c->plan->normalized_coords)
2331
+ {
2332
+ item_variations_t item_vars;
2333
+ /* turn off varstore optimization when varIdxMap is null, so we maintain
2334
+ * original var_idx sequence */
2335
+ bool optimize = (varIdxMap != 0) ? true : false;
2336
+ if (!item_vars.instantiate (var_store, c->plan,
2337
+ optimize, /* optimization */
2338
+ optimize, /* use_no_variation_idx = false */
2339
+ c->plan->colrv1_varstore_inner_maps.as_array ()))
2340
+ return_trace (false);
2341
+
2342
+ if (!out->varStore.serialize_serialize (c->serializer,
2343
+ item_vars.has_long_word (),
2344
+ c->plan->axis_tags,
2345
+ item_vars.get_region_list (),
2346
+ item_vars.get_vardata_encodings ()))
2347
+ return_trace (false);
2348
+
2349
+ /* if varstore is optimized, update colrv1_new_deltaset_idx_varidx_map in
2350
+ * subset plan */
2351
+ if (optimize)
2352
+ {
2353
+ const hb_map_t &varidx_map = item_vars.get_varidx_map ();
2354
+ for (auto _ : c->plan->colrv1_new_deltaset_idx_varidx_map.iter_ref ())
2355
+ {
2356
+ uint32_t varidx = _.second;
2357
+ uint32_t *new_varidx;
2358
+ if (varidx_map.has (varidx, &new_varidx))
2359
+ _.second = *new_varidx;
2360
+ else
2361
+ _.second = VarIdx::NO_VARIATION;
2362
+ }
2363
+ }
2364
+ }
2365
+ else
2366
+ {
2367
+ if (unlikely (!out->varStore.serialize_serialize (c->serializer,
2368
+ &var_store,
2369
+ c->plan->colrv1_varstore_inner_maps.as_array ())))
2370
+ return_trace (false);
2371
+ }
2372
+
2373
+ return_trace (true);
2374
+ }
2375
+
2376
+ bool subset_delta_set_index_map (hb_subset_context_t *c,
2377
+ COLR* out /* OUT */) const
2378
+ {
2379
+ TRACE_SUBSET (this);
2380
+ if (!varIdxMap || c->plan->all_axes_pinned ||
2381
+ !c->plan->colrv1_new_deltaset_idx_varidx_map)
2382
+ return_trace (true);
2383
+
2384
+ const hb_map_t &deltaset_idx_varidx_map = c->plan->colrv1_new_deltaset_idx_varidx_map;
2385
+ delta_set_index_map_subset_plan_t index_map_plan (deltaset_idx_varidx_map);
2386
+
2387
+ if (unlikely (!index_map_plan.remap (deltaset_idx_varidx_map)))
2388
+ return_trace (false);
2389
+
2390
+ return_trace (out->varIdxMap.serialize_serialize (c->serializer, index_map_plan));
2391
+ }
2392
+
2135
2393
  bool subset (hb_subset_context_t *c) const
2136
2394
  {
2137
2395
  TRACE_SUBSET (this);
@@ -2200,34 +2458,28 @@ struct COLR
2200
2458
  auto *colr_prime = c->serializer->start_embed<COLR> ();
2201
2459
  if (unlikely (!c->serializer->extend_min (colr_prime))) return_trace (false);
2202
2460
 
2203
- if (version == 0)
2204
- return_trace (colr_prime->serialize_V0 (c->serializer, version, base_it, layer_it));
2461
+ if (version == 0 || downgrade_to_V0 (glyphset))
2462
+ return_trace (colr_prime->serialize_V0 (c->serializer, 0, base_it, layer_it));
2205
2463
 
2206
- auto snap = c->serializer->snapshot ();
2464
+ //start version 1
2207
2465
  if (!c->serializer->allocate_size<void> (5 * HBUINT32::static_size)) return_trace (false);
2466
+ if (!colr_prime->serialize_V0 (c->serializer, version, base_it, layer_it)) return_trace (false);
2467
+
2468
+ /* subset ItemVariationStore first, cause varidx_map needs to be updated
2469
+ * after instancing */
2470
+ if (!subset_varstore (c, colr_prime)) return_trace (false);
2208
2471
 
2209
2472
  ItemVarStoreInstancer instancer (varStore ? &(this+varStore) : nullptr,
2210
2473
  varIdxMap ? &(this+varIdxMap) : nullptr,
2211
2474
  c->plan->normalized_coords.as_array ());
2212
2475
 
2213
2476
  if (!colr_prime->baseGlyphList.serialize_subset (c, baseGlyphList, this, instancer))
2214
- {
2215
- if (c->serializer->in_error ()) return_trace (false);
2216
- //no more COLRv1 glyphs: downgrade to version 0
2217
- c->serializer->revert (snap);
2218
- return_trace (colr_prime->serialize_V0 (c->serializer, 0, base_it, layer_it));
2219
- }
2220
-
2221
- if (!colr_prime->serialize_V0 (c->serializer, version, base_it, layer_it)) return_trace (false);
2477
+ return_trace (false);
2222
2478
 
2223
2479
  colr_prime->layerList.serialize_subset (c, layerList, this, instancer);
2224
2480
  colr_prime->clipList.serialize_subset (c, clipList, this, instancer);
2225
- if (!varStore || c->plan->all_axes_pinned)
2226
- return_trace (true);
2227
2481
 
2228
- colr_prime->varIdxMap.serialize_copy (c->serializer, varIdxMap, this);
2229
- colr_prime->varStore.serialize_copy (c->serializer, varStore, this);
2230
- return_trace (true);
2482
+ return_trace (subset_delta_set_index_map (c, colr_prime));
2231
2483
  }
2232
2484
 
2233
2485
  const Paint *get_base_glyph_paint (hb_codepoint_t glyph) const
@@ -2327,10 +2579,6 @@ struct COLR
2327
2579
  {
2328
2580
  // COLRv1 glyph
2329
2581
 
2330
- ItemVarStoreInstancer instancer (&(this+varStore),
2331
- &(this+varIdxMap),
2332
- hb_array (font->coords, font->num_coords));
2333
-
2334
2582
  bool is_bounded = true;
2335
2583
  if (clip)
2336
2584
  {
@@ -66,34 +66,64 @@ HB_INTERNAL void PaintColrGlyph::closurev1 (hb_colrv1_closure_context_t* c) cons
66
66
 
67
67
  template <template<typename> class Var>
68
68
  HB_INTERNAL void PaintTransform<Var>::closurev1 (hb_colrv1_closure_context_t* c) const
69
- { (this+src).dispatch (c); }
69
+ {
70
+ (this+src).dispatch (c);
71
+ (this+transform).closurev1 (c);
72
+ }
70
73
 
71
74
  HB_INTERNAL void PaintTranslate::closurev1 (hb_colrv1_closure_context_t* c) const
72
- { (this+src).dispatch (c); }
75
+ {
76
+ (this+src).dispatch (c);
77
+ c->num_var_idxes = 2;
78
+ }
73
79
 
74
80
  HB_INTERNAL void PaintScale::closurev1 (hb_colrv1_closure_context_t* c) const
75
- { (this+src).dispatch (c); }
81
+ {
82
+ (this+src).dispatch (c);
83
+ c->num_var_idxes = 2;
84
+ }
76
85
 
77
86
  HB_INTERNAL void PaintScaleAroundCenter::closurev1 (hb_colrv1_closure_context_t* c) const
78
- { (this+src).dispatch (c); }
87
+ {
88
+ (this+src).dispatch (c);
89
+ c->num_var_idxes = 4;
90
+ }
79
91
 
80
92
  HB_INTERNAL void PaintScaleUniform::closurev1 (hb_colrv1_closure_context_t* c) const
81
- { (this+src).dispatch (c); }
93
+ {
94
+ (this+src).dispatch (c);
95
+ c->num_var_idxes = 1;
96
+ }
82
97
 
83
98
  HB_INTERNAL void PaintScaleUniformAroundCenter::closurev1 (hb_colrv1_closure_context_t* c) const
84
- { (this+src).dispatch (c); }
99
+ {
100
+ (this+src).dispatch (c);
101
+ c->num_var_idxes = 3;
102
+ }
85
103
 
86
104
  HB_INTERNAL void PaintRotate::closurev1 (hb_colrv1_closure_context_t* c) const
87
- { (this+src).dispatch (c); }
105
+ {
106
+ (this+src).dispatch (c);
107
+ c->num_var_idxes = 1;
108
+ }
88
109
 
89
110
  HB_INTERNAL void PaintRotateAroundCenter::closurev1 (hb_colrv1_closure_context_t* c) const
90
- { (this+src).dispatch (c); }
111
+ {
112
+ (this+src).dispatch (c);
113
+ c->num_var_idxes = 3;
114
+ }
91
115
 
92
116
  HB_INTERNAL void PaintSkew::closurev1 (hb_colrv1_closure_context_t* c) const
93
- { (this+src).dispatch (c); }
117
+ {
118
+ (this+src).dispatch (c);
119
+ c->num_var_idxes = 2;
120
+ }
94
121
 
95
122
  HB_INTERNAL void PaintSkewAroundCenter::closurev1 (hb_colrv1_closure_context_t* c) const
96
- { (this+src).dispatch (c); }
123
+ {
124
+ (this+src).dispatch (c);
125
+ c->num_var_idxes = 4;
126
+ }
97
127
 
98
128
  HB_INTERNAL void PaintComposite::closurev1 (hb_colrv1_closure_context_t* c) const
99
129
  {