<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ghostty.git/src/font/Collection.zig, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/'/>
<entry>
<title>ci: cleanup</title>
<updated>2025-10-03T14:10:43+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-10-02T22:57:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=87b77e19803f1fccd4eaa7136ee2f0104369cfa2'/>
<id>87b77e19803f1fccd4eaa7136ee2f0104369cfa2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement and use generic approx equality tester</title>
<updated>2025-09-30T19:38:29+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-09-30T19:28:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=26b70e3125d04f48ce76a49b6b22b08d06619404'/>
<id>26b70e3125d04f48ce76a49b6b22b08d06619404</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(font): Improve FreeType glyph measurements and add unit tests for face metrics (#8738)</title>
<updated>2025-09-29T19:24:42+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-09-29T19:24:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=0bddaed53b75355506cbf84ce1bc3aaaaff22a67'/>
<id>0bddaed53b75355506cbf84ce1bc3aaaaff22a67</id>
<content type='text'>
Follow-up to #8720 adding

* Two improvements to FreeType glyph measurements:
- Ensuring that glyphs are measured with the same hinting as they are
rendered, ref
[#8720#issuecomment-3305408157](https://github.com/ghostty-org/ghostty/pull/8720#issuecomment-3305408157);
- For outline glyphs, using the outline bbox instead of the built-in
metrics, like `renderGlyph()`.
* Basic unit tests for face metrics and their estimators, using the
narrowest and widest fonts from the resource directory, Cozette Vector
and Geist Mono.

---

I also made one unrelated change to `freetype.zig`, replacing
`@alignCast(@ptrCast(...))` with `@ptrCast(@alignCast(...))` on line
173. Autoformatting has been making this change on every save for weeks,
and reverting the hunk before each commit is getting old, so I hope it's
OK that I use this PR to upstream this decree from the formatter.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Follow-up to #8720 adding

* Two improvements to FreeType glyph measurements:
- Ensuring that glyphs are measured with the same hinting as they are
rendered, ref
[#8720#issuecomment-3305408157](https://github.com/ghostty-org/ghostty/pull/8720#issuecomment-3305408157);
- For outline glyphs, using the outline bbox instead of the built-in
metrics, like `renderGlyph()`.
* Basic unit tests for face metrics and their estimators, using the
narrowest and widest fonts from the resource directory, Cozette Vector
and Geist Mono.

---

I also made one unrelated change to `freetype.zig`, replacing
`@alignCast(@ptrCast(...))` with `@ptrCast(@alignCast(...))` on line
173. Autoformatting has been making this change on every save for weeks,
and reverting the hunk before each commit is getting old, so I hope it's
OK that I use this PR to upstream this decree from the formatter.</pre>
</div>
</content>
</entry>
<entry>
<title>Rewrite constraint code for improved icon scaling/alignment</title>
<updated>2025-09-29T19:09:21+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-09-07T02:21:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=e3ebdc79756985ee541b6b1ed402da596b39318b'/>
<id>e3ebdc79756985ee541b6b1ed402da596b39318b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Drop the nan sentinel; just fall through instead</title>
<updated>2025-09-18T19:39:19+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-09-18T19:39:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=8fe9c579ef945228ccd4f604d23fd6670890cbfb'/>
<id>8fe9c579ef945228ccd4f604d23fd6670890cbfb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use approximate equality for float comparisons</title>
<updated>2025-09-18T19:34:32+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-09-18T19:34:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=4af4e18725b7cdfd3632bcc7eabd5a82c465ea55'/>
<id>4af4e18725b7cdfd3632bcc7eabd5a82c465ea55</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add tests for font metrics and their estimators</title>
<updated>2025-09-18T06:04:59+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-09-18T02:05:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=03a707b2c0d31f2a228d5578abf6c9c46291c443'/>
<id>03a707b2c0d31f2a228d5578abf6c9c46291c443</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(font): make `face.getMetrics()` infallible</title>
<updated>2025-09-04T03:13:39+00:00</updated>
<author>
<name>Qwerasd</name>
<email>qwerasd205@users.noreply.github.com</email>
</author>
<published>2025-09-04T02:04:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=5c1d87fda6b4a7304248fb8bdd00a27a2d0cfbfd'/>
<id>5c1d87fda6b4a7304248fb8bdd00a27a2d0cfbfd</id>
<content type='text'>
Before we had a bad day if we tried to get the metrics of a bitmap font,
which would happen if we ever used one as fallback because we started
doing it for all fonts when we added fallback font scaling. This is a
pretty easy fix and finally allows users to configure true bitmap fonts
as their primary font as long as FreeType/CoreText can handle it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Before we had a bad day if we tried to get the metrics of a bitmap font,
which would happen if we ever used one as fallback because we started
doing it for all fonts when we added fallback font scaling. This is a
pretty easy fix and finally allows users to configure true bitmap fonts
as their primary font as long as FreeType/CoreText can handle it.
</pre>
</div>
</content>
</entry>
<entry>
<title>terminal: fix undefined memory in Tabstops code</title>
<updated>2025-08-21T03:44:35+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-08-21T03:44:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=566062c0a57832026807bbf04a8eecb478278cc5'/>
<id>566062c0a57832026807bbf04a8eecb478278cc5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>font: clean up Collection api somewhat</title>
<updated>2025-07-25T17:50:59+00:00</updated>
<author>
<name>Qwerasd</name>
<email>qwerasd205@users.noreply.github.com</email>
</author>
<published>2025-07-25T17:50:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=6af6357949ef3a2904facc073b8644e2300d0e1c'/>
<id>6af6357949ef3a2904facc073b8644e2300d0e1c</id>
<content type='text'>
Move size adjustment logic out of `Entry`, I understand the impulse to
put it there but it results in passing a lot of stuff around which isn't
great.

Rework `add(...)` in to `add(...)` and `addDeferred(...)`, faces are
passed directly now instead of passing an entry, and an options struct
is used instead of positional arguments for things like style, fallback,
and size adjustment.

Change size adjustment test back to a half pixel tolerance instead of 5%
because the previous commit (allowing fractional pixel sizes) fixed the
root cause of large differences.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move size adjustment logic out of `Entry`, I understand the impulse to
put it there but it results in passing a lot of stuff around which isn't
great.

Rework `add(...)` in to `add(...)` and `addDeferred(...)`, faces are
passed directly now instead of passing an entry, and an options struct
is used instead of positional arguments for things like style, fallback,
and size adjustment.

Change size adjustment test back to a half pixel tolerance instead of 5%
because the previous commit (allowing fractional pixel sizes) fixed the
root cause of large differences.
</pre>
</div>
</content>
</entry>
</feed>
