<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Harfbuzz on Jan Kelemen - Personal site</title><link>https://jk.rubberdax.xyz/tags/harfbuzz/</link><description>Recent content in Harfbuzz on Jan Kelemen - Personal site</description><generator>Hugo</generator><language>en</language><copyright>© [Jan Kelemen](https://www.rubberdax.xyz)</copyright><lastBuildDate>Mon, 28 Jul 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://jk.rubberdax.xyz/tags/harfbuzz/index.xml" rel="self" type="application/rss+xml"/><item><title>Ligatures... The Final Frontier</title><link>https://jk.rubberdax.xyz/post/2025-07-28-ligatures-the-final-frontier/</link><pubDate>Mon, 28 Jul 2025 00:00:00 +0000</pubDate><guid>https://jk.rubberdax.xyz/post/2025-07-28-ligatures-the-final-frontier/</guid><description>&lt;p&gt;Text rendering update for my game engine &lt;a href="https://github.com/jan-kelemen/niku"&gt;jan-kelemen/niku&lt;/a&gt;, now without missing glyphs.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/M0Soxc6BoRM?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;For the demo video, I&amp;rsquo;ve increased the font size; YouTube renders it a bit better than the previous one.&lt;/p&gt;
&lt;h1 id="the-missing-glyph"&gt;The missing glyph&lt;/h1&gt;
&lt;p&gt;In the previous &lt;a href="https://jk.rubberdax.xyz/post/2025-06-04-text-hates-us"&gt;post&lt;/a&gt;, I&amp;rsquo;ve shown that the rendering of variable spaced fonts is mostly working.
The missing part was ligatures, when multiple letters from the text are combined into a single glyph.&lt;/p&gt;</description></item><item><title>Text Hates Us</title><link>https://jk.rubberdax.xyz/post/2025-06-04-text-hates-us/</link><pubDate>Wed, 04 Jun 2025 00:00:00 +0000</pubDate><guid>https://jk.rubberdax.xyz/post/2025-06-04-text-hates-us/</guid><description>&lt;p&gt;Adding support for text rendering has been one of the things I avoided for a long time in my game engine &lt;a href="https://github.com/jan-kelemen/niku"&gt;jan-kelemen/niku&lt;/a&gt;.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/6OVR9dF1lCI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;The video is a bit blurry at times, YouTube compression algorithm doesn&amp;rsquo;t like content like this.&lt;/p&gt;
&lt;h1 id="new-engine-demo"&gt;New engine demo&lt;/h1&gt;
&lt;p&gt;To support text rendering, I&amp;rsquo;ve created a new engine demo, &lt;code&gt;reshed&lt;/code&gt;.
The intended scope is to get a text editor that can edit GLSL shader files, it derives its name from this intended purpose, &lt;strong&gt;RE&lt;/strong&gt;al &lt;strong&gt;SH&lt;/strong&gt;ader &lt;strong&gt;ED&lt;/strong&gt;itor.
There is also a hope that I&amp;rsquo;ll clean up the event handling during its development.&lt;/p&gt;</description></item></channel></rss>