Jump to content

More info about Affinity (V2) text shaper?


Recommended Posts

I understand Affinity apps use their own text shaping engine for converting Unicode input into glyph sequences. Is there anywhere I can find more information about how that implementation works, and what its limitations are?

As a font developer I quite frequently run into “bugs” or unexpected behaviours with Affinity’s text shaping, and without a good understanding of how the underlying system is supposed to work, it can be extremely challenging to solve them. Compared with a standard shaper like HarfBuzz, where I can see clear documentation on how strings are processed, Affinity’s text engine is a black box that sometimes behaves in unpredictable ways.

Rather than having to say “sorry, they’re not fully supported” when customers ask about Affinity apps, it would be great to be able to ensure my studio’s fonts work correctly in the software.

Link to comment
Share on other sites

  • Staff

Hi Rutherford, 

We aim to implement the GSUB, GPOS and GDEF tables in the future however we don't really have any public documentation available for our text engine. If you post a bug report regarding the issues with your fonts in Affinity we'd be happy to look into this with you :)

Thanks
C

Please tag me using @ in your reply so I can be sure to respond ASAP.

Link to comment
Share on other sites

11 hours ago, Callum said:

We aim to implement the GSUB, GPOS and GDEF tables in the future

To not confuse people, these tables are already supported as they are some of the basic OpenType tables. Without them you have no OpenType.

Perhaps it would be useful to document which of the many types of lookups and which formats of those tables are supported for each of those basic tables.
That information would be useful to font designers.

Link to comment
Share on other sites

On 7/11/2023 at 12:52 PM, Callum said:

We aim to implement the GSUB, GPOS and GDEF tables in the future however we don't really have any public documentation available for our text engine.

Okay, thanks for the clarification! I’ll do my best to submit bug reports for specific issues as they arise.

As Ken said, the GSUB, GPOS and GDEF tables are evidently all (partially) supported already, but not necessarily in a way that’s 100% complete or according to spec. (For instance, a specific issue I’ve encountered recently is that GSUB/GPOS ignore rules are [sometimes?] skipped, while the rest of the lookup they appeared in is executed normally. That causes lookups to interfere with each other, potentially breaking the text, rather than just quietly failing — I can make a separate bug report about this if it helps.)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.