Skip to content

Enhance TrueType hinting to bring full FreeType v40 Parity#508

Merged
JimBobSquarePants merged 4 commits intomainfrom
js/hinter-parity
Mar 12, 2026
Merged

Enhance TrueType hinting to bring full FreeType v40 Parity#508
JimBobSquarePants merged 4 commits intomainfrom
js/hinter-parity

Conversation

@JimBobSquarePants
Copy link
Copy Markdown
Member

Prerequisites

  • I have written a descriptive pull-request title
  • I have verified that there are no overlapping pull-requests open
  • I have verified that I am following matches the existing coding patterns and practice as demonstrated in the repository. These follow strict Stylecop rules 👮.
  • I have provided test coverage for my change (where applicable)

Description

This pull request introduces improvements to TrueType hinting and variable font support, updates licensing and third-party notices, and modifies test image outputs and test code. The most important changes include enabling normalized axis coordinates for hinting, updating licensing documentation for FreeType and HarfBuzz, and adjustments to test assets and code for robustness and accuracy.

Enhancements to TrueType hinting and variable font support:

  • Added support for providing normalized axis coordinates to the TrueType interpreter, enabling correct handling of variable fonts during hinting (ApplyTrueTypeHinting in StreamFontMetrics.TrueType.cs, GlyphVariationProcessor.NormalizedCoordinates in GlyphVariationProcessor.cs). [1] [2]
  • Removed MgOpen Canonica from the NeverHint list, allowing hinting for this font and improving test coverage (TrueTypeGlyphMetrics.CompatibilityLists.cs).

Licensing and third-party notices:

  • Added FTL.TXT (FreeType License) and updated THIRD-PARTY-NOTICES to include FreeType and HarfBuzz license information, ensuring compliance and transparency. [1] [2]
  • Updated SixLabors.Fonts.csproj to include new license files in the package.

Test assets and code updates:

  • Updated reference output images for hinting robustness and variable font tests to reflect recent changes and improvements. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
  • Refactored test code to clarify variable naming and ensure accurate test execution for MgOpen Canonica hinting (Issues_493.cs).

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 12, 2026

Codecov Report

❌ Patch coverage is 70.94595% with 129 lines in your changes missing coverage. Please review.
✅ Project coverage is 83%. Comparing base (0be32b2) to head (f6b5c0b).
⚠️ Report is 5 commits behind head on main.

Files with missing lines Patch % Lines
...nts/Tables/TrueType/Hinting/TrueTypeInterpreter.cs 58% 82 Missing and 47 partials ⚠️
Additional details and impacted files
@@          Coverage Diff           @@
##            main    #508    +/-   ##
======================================
- Coverage     83%     83%    -1%     
======================================
  Files        302     303     +1     
  Lines      20884   21208   +324     
  Branches    3026    3106    +80     
======================================
+ Hits       17462   17691   +229     
- Misses      2658    2715    +57     
- Partials     764     802    +38     
Flag Coverage Δ
unittests 83% <70%> (-1%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@JimBobSquarePants JimBobSquarePants merged commit ee58d0d into main Mar 12, 2026
9 of 10 checks passed
@JimBobSquarePants JimBobSquarePants deleted the js/hinter-parity branch March 12, 2026 01:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant