linebender / linebender/parley
Shaper Driven Itemisation
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 736
- Forks
- 120
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 53
Description
Today, the text pipeline is dominated by 2 stages: shaping and font selection as shown in the below profile:
Per @behdad's comment (see 2. in https://github.com/harfbuzz/harfrust/issues/297#issuecomment-3524469810), it appears that a more correct and, likely, faster approach is to perform shaper-driven itemization where:
> you simply shape the text with your primary font, then look for unshaped holes in the middle and reshape those holes with the next font, and next font, etc. This sidesteps the classic font fallback itemization.
The hope is that this strategy could consolidate the redundant work happening in shaping and font selection (`charmap` lookups and normalisation). Moreover, it could help us be more correct since, as Behdad states, it's unlikely for us to succeed in making our itemizer match the same normalisation applied by the shaper.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the text pipeline profile and the linked HarfRust discussion, then trace how shaping and font selection currently divide the work. Compare the existing stages with shaper-driven itemisation and establish measurable correctness and performance criteria; the issue does not name files, tests, or a concrete completion condition.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100