home.social

#harfbuzz — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #harfbuzz, aggregated by home.social.

  1. llama.ttf is a font file which is also a large language model and an inference engine for that model. Made by @fuglede #harfbuzz #wasm

  2. Here comes the neat trick; #Fontra registers a message callback function, which gets called before and after each lookup is applied, and whenever #HarfBuzz is about to apply a lookup that the generated code would have been inserted before, Fontra steps in and modifies the glyph buffer and apply its own positioning logic. Then later lookups will be applied by HarfBuzz and modify the glyph positions as it would have happened with a fully compiled font.

    OK, it is a super nerdy and maybe a very few people can get why I’m so excited about it, but I’m really proud about it.

  3. Here comes the neat trick; #Fontra registers a message callback function, which gets called before and after each lookup is applied, and whenever #HarfBuzz is about to apply a lookup that the generated code would have been inserted before, Fontra steps in and modifies the glyph buffer and apply its own positioning logic. Then later lookups will be applied by HarfBuzz and modify the glyph positions as it would have happened with a fully compiled font.

    OK, it is a super nerdy and maybe a very few people can get why I’m so excited about it, but I’m really proud about it.

  4. Here comes the neat trick; #Fontra registers a message callback function, which gets called before and after each lookup is applied, and whenever #HarfBuzz is about to apply a lookup that the generated code would have been inserted before, Fontra steps in and modifies the glyph buffer and apply its own positioning logic. Then later lookups will be applied by HarfBuzz and modify the glyph positions as it would have happened with a fully compiled font.

    OK, it is a super nerdy and maybe a very few people can get why I’m so excited about it, but I’m really proud about it.

  5. Here comes the neat trick; #Fontra registers a message callback function, which gets called before and after each lookup is applied, and whenever #HarfBuzz is about to apply a lookup that the generated code would have been inserted before, Fontra steps in and modifies the glyph buffer and apply its own positioning logic. Then later lookups will be applied by HarfBuzz and modify the glyph positions as it would have happened with a fully compiled font.

    OK, it is a super nerdy and maybe a very few people can get why I’m so excited about it, but I’m really proud about it.

  6. Here comes the neat trick; #Fontra registers a message callback function, which gets called before and after each lookup is applied, and whenever #HarfBuzz is about to apply a lookup that the generated code would have been inserted before, Fontra steps in and modifies the glyph buffer and apply its own positioning logic. Then later lookups will be applied by HarfBuzz and modify the glyph positions as it would have happened with a fully compiled font.

    OK, it is a super nerdy and maybe a very few people can get why I’m so excited about it, but I’m really proud about it.

  7. However, #Fontra does not generate positioning feature code during live preview, as it does the glyph positioning itself, while the rest of the shaping is done by #HarfBuzz (as explained in the blogpost).

    So how would it do this emulation in the middle of lookup application by HarfBuzz?

    HarfBuzz has a so-called message callback that allows caller to get a message about what HarfBuzz is doing and the HarfBuzz glyph buffer before each shaping step (this is what corvelsoftware.co.uk/crowbar/ uses to debug OpenType layout).

  8. However, #Fontra does not generate positioning feature code during live preview, as it does the glyph positioning itself, while the rest of the shaping is done by #HarfBuzz (as explained in the blogpost).

    So how would it do this emulation in the middle of lookup application by HarfBuzz?

    HarfBuzz has a so-called message callback that allows caller to get a message about what HarfBuzz is doing and the HarfBuzz glyph buffer before each shaping step (this is what corvelsoftware.co.uk/crowbar/ uses to debug OpenType layout).

  9. However, #Fontra does not generate positioning feature code during live preview, as it does the glyph positioning itself, while the rest of the shaping is done by #HarfBuzz (as explained in the blogpost).

    So how would it do this emulation in the middle of lookup application by HarfBuzz?

    HarfBuzz has a so-called message callback that allows caller to get a message about what HarfBuzz is doing and the HarfBuzz glyph buffer before each shaping step (this is what corvelsoftware.co.uk/crowbar/ uses to debug OpenType layout).

  10. However, #Fontra does not generate positioning feature code during live preview, as it does the glyph positioning itself, while the rest of the shaping is done by #HarfBuzz (as explained in the blogpost).

    So how would it do this emulation in the middle of lookup application by HarfBuzz?

    HarfBuzz has a so-called message callback that allows caller to get a message about what HarfBuzz is doing and the HarfBuzz glyph buffer before each shaping step (this is what corvelsoftware.co.uk/crowbar/ uses to debug OpenType layout).

  11. However, #Fontra does not generate positioning feature code during live preview, as it does the glyph positioning itself, while the rest of the shaping is done by #HarfBuzz (as explained in the blogpost).

    So how would it do this emulation in the middle of lookup application by HarfBuzz?

    HarfBuzz has a so-called message callback that allows caller to get a message about what HarfBuzz is doing and the HarfBuzz glyph buffer before each shaping step (this is what corvelsoftware.co.uk/crowbar/ uses to debug OpenType layout).

  12. > CFF2 fonts are still drawn as graphics, but next of version of HarfBuzz will support downgrading CFF2 to CFF after instancing, and I plan to use that when it is available.

    #LibreOffice now uses the new support in #HarfBuzz 13.0.0 for downgrading CFF2 table to CFF when instancing variable fonts with CFF2 table.

    CFF table is still concerted to Type 1 fonts by LibreOffice when embedding such fonts in PDF. Making it embed CFF table directly is left for another day...

  13. I started working on #LibreOffice again, two new developments:

    It now instances variable fonts when embedding in PDF instead of drawing the outlines as PDF vectors (using PDF Type 3 fonts), which is more efficient and allows the text to be rendered as fonts not graphics.

    This uses #HarfBuzz subsetter under the hood, so while at it, I replaced most of LibreOffice’s ancient (CVE-happy) low-level font subsetting code, with HarfBuzz subsetter.

    CFF2 fonts are still drawn as graphics, but next of version of HarfBuzz will support downgrading CFF2 to CFF after instancing, and I plan to use that when it is available.

  14. @JonGretar #Harfbuzz, the text shaping infrastucture 95% of applications rely on, including most terminal emulators, is CPU-accelerated. That means Kitty, Ghostty, and others... notably Alacritty uses a rust crate that seeks to be the Harfbuzz of Rust, but its also CPU rendered, because bitmap rasterization, which is required in the rendering of glyphs, remains far more optimal on CPUs, for a variety of reasons (unless your matrices are huge and your ram is little)

  15. FontForge now supports HarfBuzz-based font preview: github.com/fontforge/fontforge

    Special thanks to Khaled Hosny @khaled for kind and thorough code review!

    #FontForge #HarfBuzz #FOSS #opensource #typography

  16. Interesting possible #Harfbuzz bug affecting kerning of U+0315 to a following superscript modifier. The sequence t̕ᶿ is a unit of the hən̓q̓əmin̓əm̓ alphabet.

    github.com/microsoft/Skeena-In

  17. Typesetting a font specimen for a #VariableFont with #TeXLaTeX is one of the last adventures apparently ;)
    But I got it working now. luaotfload seems to be buggy, but set to render the fonts with #HarfBuzz it seems to work.

  18. 🚀 Oh, look! #Harfbuzz just dropped version #11.0.0, and the internet can't handle the excitement! 🎉 Apparently, more "features" are here to make you realize that your font rendering woes have only just begun. 🙄 Remember, folks, more numbers after the dot mean it's definitely better! 🥳
    github.com/harfbuzz/harfbuzz/r #fontRendering #excitement #features #update #HackerNews #ngated

  19. 🚀 Oh, look! #Harfbuzz just dropped version #11.0.0, and the internet can't handle the excitement! 🎉 Apparently, more "features" are here to make you realize that your font rendering woes have only just begun. 🙄 Remember, folks, more numbers after the dot mean it's definitely better! 🥳
    github.com/harfbuzz/harfbuzz/r #fontRendering #excitement #features #update #HackerNews #ngated

  20. 🚀 Oh, look! #Harfbuzz just dropped version #11.0.0, and the internet can't handle the excitement! 🎉 Apparently, more "features" are here to make you realize that your font rendering woes have only just begun. 🙄 Remember, folks, more numbers after the dot mean it's definitely better! 🥳
    github.com/harfbuzz/harfbuzz/r #fontRendering #excitement #features #update #HackerNews #ngated

  21. 🚀 Oh, look! #Harfbuzz just dropped version #11.0.0, and the internet can't handle the excitement! 🎉 Apparently, more "features" are here to make you realize that your font rendering woes have only just begun. 🙄 Remember, folks, more numbers after the dot mean it's definitely better! 🥳
    github.com/harfbuzz/harfbuzz/r #fontRendering #excitement #features #update #HackerNews #ngated

  22. "State of Text Rendering 2024" -- behdad.org/text2024/

    "In this survey paper, I cover advances in the #OpenType standard and the Open Source text stack and applications since 2009. I also discuss the future advances currently underway."

    #Rendering #TextRendering #Freetype #HarfBuzz

  23. "State of Text Rendering 2024" -- behdad.org/text2024/

    "In this survey paper, I cover advances in the #OpenType standard and the Open Source text stack and applications since 2009. I also discuss the future advances currently underway."

    #Rendering #TextRendering #Freetype #HarfBuzz

  24. "State of Text Rendering 2024" -- behdad.org/text2024/

    "In this survey paper, I cover advances in the #OpenType standard and the Open Source text stack and applications since 2009. I also discuss the future advances currently underway."

    #Rendering #TextRendering #Freetype #HarfBuzz

  25. "State of Text Rendering 2024" -- behdad.org/text2024/

    "In this survey paper, I cover advances in the #OpenType standard and the Open Source text stack and applications since 2009. I also discuss the future advances currently underway."

    #Rendering #TextRendering #Freetype #HarfBuzz

  26. "State of Text Rendering 2024" -- behdad.org/text2024/

    "In this survey paper, I cover advances in the #OpenType standard and the Open Source text stack and applications since 2009. I also discuss the future advances currently underway."

    #Rendering #TextRendering #Freetype #HarfBuzz