Conversation
…nstead of the fully rendered glyph sequence
…oth the break point and the final render
…length) can change while stepping through the shaping steps
|
(Think think this could be done now, but a little more stress-testing wouldn't hurt...) |
ce1767e to
a0e7111
Compare
|
All looks good now. I really like it. One little thing, then clicking on collapsed steps, the glyph output before applying any of the enclosed changes is shown. This was confusing a bit at the start e.g. I expected to see the output of |
I still think it would be nice to have this. |
|
Yes, I see that is confusing, and I struggled with it a bit. The behavior you suggests sounds good but has one oddity: selecting the "folder" item would result in a different "breakpoint" when folded and unfolded. But perhaps that is still more intuitive than the current behavior. |
"Page reload" should not really be a thing for end users, so this would be mostly a convenience for us, and not for the general user. I'll think about it, but for this reason it's not high on my priority list. |
I thought about that as well, and I’m not very sure which is best, but I feel the current behavior is probably less intuitive than the other option. |
Right. |
I implemented this and I think you are right that this is much more intuitive behavior. |
It is much better now indeed. I tested the debugger with a few fonts and I think it is pretty good now. |
…reak index is different
…ms to be moving towards start/end for these messages anyway

This adds "tracing" or "debugging" functionality to text shaping and OpenType feature processing, via the HarfBuzz message API. This is the same as what Crowbar does, but integrated in Fontra's rendering machinery.
The UI is part of the "Input characters and output glyphs" panel, and is currently very flat and simple. There is a new accordion item labeled "Shaping debugger", that is closed by default. Once opened, it shows a list with "messages" from HarfBuzz and Fontra's own positioning feature emulation. You can click on a message to make the canvas display the text as it would render at that point during the shaping process.