540
Jenga Stack (lemmy.blahaj.zone)
you are viewing a single comment's thread
view the rest of the comments
[-] calcopiritus@lemmy.world 2 points 2 days ago* (last edited 2 days ago)

I've got all that. I just needed to convert a string of characters into a list of glyph IDs.

For context, I'm doing a code editor.

I don't use harfbuzz for shaping or whatever, since I planned on rendering single lines of mono spaced text. I can do everything except string->glyphs conversion.

Just trying to implement basic features such as ligatures is incredibly hard, since there's almost no documentation. Therefore you can't make assumptions that are necessary to take shortcuts and make optimizations. I don't know if harfbuzz uses a source of documentation that I haven't been able to find, or maybe they are just way smarter than me, or if fonts are made in a way that they work with harfbuzz instead of the other way around.

As someone trying to have as little dependencies as possible, it is a struggle. But at the same time, harfbuzz saved me soo much time.

EDIT: I don't do my own glyph rasterization, but that's because I haven't gotten to it yet, so I do use a library. I don't know if it's going to be harder than string->glyphs, but I doubt so.

[-] chellomere@lemmy.world 3 points 2 days ago* (last edited 2 days ago)

It would make sense that a code editor could use a more limited subset of text rendering that could be more optimized.

Perhaps a bit surprisingly, Microsoft actually has pretty good documentation on OpenType. Here's info on what shaping applies to "standard" scripts:

https://learn.microsoft.com/en-us/typography/script-development/standard

And here's the landing page for the latest OpenType spec:

https://learn.microsoft.com/en-us/typography/opentype/spec/

Specifically for ligatures, you're looking for the liga feature which is specified in the font's GSUB table.

this post was submitted on 20 Nov 2025
540 points (97.2% liked)

Programmer Humor

27444 readers
2213 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS