#harfbuzz — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #harfbuzz, aggregated by home.social.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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 https://www.corvelsoftware.co.uk/crowbar/ uses to debug OpenType layout).
-
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 https://www.corvelsoftware.co.uk/crowbar/ uses to debug OpenType layout).
-
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 https://www.corvelsoftware.co.uk/crowbar/ uses to debug OpenType layout).
-
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 https://www.corvelsoftware.co.uk/crowbar/ uses to debug OpenType layout).
-
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 https://www.corvelsoftware.co.uk/crowbar/ uses to debug OpenType layout).
-
> 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...
-
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.
-
@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)
-
FontForge now supports HarfBuzz-based font preview: https://github.com/fontforge/fontforge/pull/5522
Special thanks to Khaled Hosny @khaled for kind and thorough code review!
-
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.
https://github.com/microsoft/Skeena-Indigenous-Typeface/issues/10#issuecomment-2798958550
-
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. -
🚀 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! 🥳
https://github.com/harfbuzz/harfbuzz/releases/tag/11.0.0 #fontRendering #excitement #features #update #HackerNews #ngated -
🚀 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! 🥳
https://github.com/harfbuzz/harfbuzz/releases/tag/11.0.0 #fontRendering #excitement #features #update #HackerNews #ngated -
🚀 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! 🥳
https://github.com/harfbuzz/harfbuzz/releases/tag/11.0.0 #fontRendering #excitement #features #update #HackerNews #ngated -
🚀 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! 🥳
https://github.com/harfbuzz/harfbuzz/releases/tag/11.0.0 #fontRendering #excitement #features #update #HackerNews #ngated -
"State of Text Rendering 2024" -- https://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."
-
"State of Text Rendering 2024" -- https://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."
-
"State of Text Rendering 2024" -- https://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."
-
"State of Text Rendering 2024" -- https://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."
-
"State of Text Rendering 2024" -- https://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."
-
1) #Harfbuzz is a #text shaping engine, it's used in #Android, #Chrome, #ChromeOS, #Firefox, #GNOME, #GTK+, #KDE, #Qt, #LibreOffice, #OpenJDK, #XeTeX, #PlayStation, #Microsoft #Edge, #Adobe #Photoshop, #Illustrator, #InDesign, #Godot Engine, and other places.
2) Harfbuzz 8.0 introduces a #Wasm shaper, that allows #WebAssembly to be embedded in a #font file. https://www.phoronix.com/news/HarfBuzz-8.0
3) It's only a matter of time until someone embeds a #cryptominer in a font file.
-
1) #Harfbuzz is a #text shaping engine, it's used in #Android, #Chrome, #ChromeOS, #Firefox, #GNOME, #GTK+, #KDE, #Qt, #LibreOffice, #OpenJDK, #XeTeX, #PlayStation, #Microsoft #Edge, #Adobe #Photoshop, #Illustrator, #InDesign, #Godot Engine, and other places.
2) Harfbuzz 8.0 introduces a #Wasm shaper, that allows #WebAssembly to be embedded in a #font file. https://www.phoronix.com/news/HarfBuzz-8.0
3) It's only a matter of time until someone embeds a #cryptominer in a font file.
-
1) #Harfbuzz is a #text shaping engine, it's used in #Android, #Chrome, #ChromeOS, #Firefox, #GNOME, #GTK+, #KDE, #Qt, #LibreOffice, #OpenJDK, #XeTeX, #PlayStation, #Microsoft #Edge, #Adobe #Photoshop, #Illustrator, #InDesign, #Godot Engine, and other places.
2) Harfbuzz 8.0 introduces a #Wasm shaper, that allows #WebAssembly to be embedded in a #font file. https://www.phoronix.com/news/HarfBuzz-8.0
3) It's only a matter of time until someone embeds a #cryptominer in a font file.
-
1) #Harfbuzz is a #text shaping engine, it's used in #Android, #Chrome, #ChromeOS, #Firefox, #GNOME, #GTK+, #KDE, #Qt, #LibreOffice, #OpenJDK, #XeTeX, #PlayStation, #Microsoft #Edge, #Adobe #Photoshop, #Illustrator, #InDesign, #Godot Engine, and other places.
2) Harfbuzz 8.0 introduces a #Wasm shaper, that allows #WebAssembly to be embedded in a #font file. https://www.phoronix.com/news/HarfBuzz-8.0
3) It's only a matter of time until someone embeds a #cryptominer in a font file.
-
1) #Harfbuzz is a #text shaping engine, it's used in #Android, #Chrome, #ChromeOS, #Firefox, #GNOME, #GTK+, #KDE, #Qt, #LibreOffice, #OpenJDK, #XeTeX, #PlayStation, #Microsoft #Edge, #Adobe #Photoshop, #Illustrator, #InDesign, #Godot Engine, and other places.
2) Harfbuzz 8.0 introduces a #Wasm shaper, that allows #WebAssembly to be embedded in a #font file. https://www.phoronix.com/news/HarfBuzz-8.0
3) It's only a matter of time until someone embeds a #cryptominer in a font file.
-
In the field of #typography and #type #technology, a publication of June 14 sparks the fire.
Below my attempt to list a chronology of subjectively chosen elements linked to it.
http://pads.osp.kitchen/p/type-blm
With #Alphabettes #blm #diversity #non-latin #scripts @kupfers @bb #HrantPapazian #Jean-FrancoisPorchez #JohnHudson #BehdadEsfahbod #harfbuzz #abuse #racism #colonialism #Adobe #SairusPatel #CFF2 #Microsoft #PeterConstable #svg #OpenType #Monotype #UFO #JuanVillanueva #tdc #TypeDirectorClub #BobbyCMartinJr. #EmmanuelBesse #Underware #NadineChahine #TanyaGeorge #Font and #Text #w3c #shaping #layout #encoding #formats #fonttools #FrederickBrennan #FontForge #StrokedFonts #StrokeFonts #Google #Facebook #Iran #ISO #OFF #specifications #specs #DaveCrossland #JamesClark #standard #LiangHai #AdamTwardoch #SimonCozens #VladLevantovsky #EricMuller and others. -
In the field of #typography and #type #technology, a publication of June 14 sparks the fire.
Below my attempt to list a chronology of subjectively chosen elements linked to it.
http://pads.osp.kitchen/p/type-blm
With #Alphabettes #blm #diversity #non-latin #scripts @kupfers @bb #HrantPapazian #Jean-FrancoisPorchez #JohnHudson #BehdadEsfahbod #harfbuzz #abuse #racism #colonialism #Adobe #SairusPatel #CFF2 #Microsoft #PeterConstable #svg #OpenType #Monotype #UFO #JuanVillanueva #tdc #TypeDirectorClub #BobbyCMartinJr. #EmmanuelBesse #Underware #NadineChahine #TanyaGeorge #Font and #Text #w3c #shaping #layout #encoding #formats #fonttools #FrederickBrennan #FontForge #StrokedFonts #StrokeFonts #Google #Facebook #Iran #ISO #OFF #specifications #specs #DaveCrossland #JamesClark #standard #LiangHai #AdamTwardoch #SimonCozens #VladLevantovsky #EricMuller and others.