[kde] [Bug 497819] New: Full hinting (byte code interpreter) for fonts does not work

bugzilla_noreply at kde.org bugzilla_noreply at kde.org
Mon Dec 23 08:42:49 GMT 2024


https://bugs.kde.org/show_bug.cgi?id=497819

            Bug ID: 497819
           Summary: Full hinting (byte code interpreter) for fonts does
                    not work
    Classification: I don't know
           Product: kde
           Version: unspecified
          Platform: Fedora RPMs
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: unassigned-bugs at kde.org
          Reporter: andrew at eastfarthing.com
  Target Milestone: ---

Created attachment 176842
  --> https://bugs.kde.org/attachment.cgi?id=176842&action=edit
FontForge source for a TTF test font with byte code hinting instructions to
clearly test hinting

SUMMARY

When I select full hinting from the Fonts panel in System Settings, KDE
applications do not actually appear to use full hints, or at least not to use
the hints in the byte code within TTF fonts.  

STEPS TO REPRODUCE

1. Use the System Settings to set hinting to full
1a. Verify that /etc/fonts/conf.d is set to full hinting
1b. Verify that ~/.config/fontconfig has nothing that overrides this
2. Run KDE Plasma on Wayland
3. Set Konsole, Kwrite, or other to KDE app to use a TTF font that includes
byte code instructions for hinting (e.g., attached)

OBSERVED RESULT

The KDE app does not display text with hinting according to the byte code
within the font.  Strongly-hinted fonts still appear blurry.

EXPECTED RESULT

KDE apps display text with hinting using the byte code within the font.

SOFTWARE/OS VERSIONS

Operating System: Fedora Linux 41
KDE Plasma Version: 6.2.4
KDE Frameworks Version: 6.9.0
Qt Version: 6.8.1
Kernel Version: 6.12.5-200.fc41.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 32 × AMD Ryzen 9 7950X 16-Core Processor
Memory: 62.5 GiB of RAM
Graphics Processor: NVIDIA GeForce RTX 4090/PCIe/SSE2

ADDITIONAL INFORMATION

I first noticed this when I realized that Konsole, when set to my own coding
font, was not using the hinting instructions that I had laboriously programmed
in.  This was despite hinting being set to Full in the System Setting,
/etc/fonts/conf.d/ being set to full hinting, ~/.Xresources being set to
Xft.hintstyle: hintfull, and everything else that I could think of.

Graphical Emacs, built against GTK3 and using XWayland, correctly renders the
full hinting.  The FreeType tool, ftview, also correctly displays fonts with
byte code hinting, so this does not seem to be at the level of FreeType.

Since the effect of font hinting can be subtle, I have created the attached
test font to clearly verify whether byte code hinting is working or not.  It
has two glyphs:

- The `x` glyph has a glyph outline that displays an N (for not hinting), but
uses byte code instructions to reposition the diagonal to a horizontal stem,
making an H to demonstrate that byte code hinting is working.

- The `o` glyph displays three nested squares.  If byte code hinting is
working, each square and the spaces between them should be exactly one pixel in
thickness, regardless of font size.  (There may be some variation here
horizontally depending on sub-pixel alignment settings, but certainly they
should be aligned vertically to the pixel grid.)  Otherwise, if the squares are
significantly thicker than a pixel at larger sizes, byte code hinting is not
working.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Unassigned-bugs mailing list