Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fontmake has a majority market share #1

Open
49 of 93 tasks
simoncozens opened this issue Aug 5, 2021 · 4 comments
Open
49 of 93 tasks

fontmake has a majority market share #1

simoncozens opened this issue Aug 5, 2021 · 4 comments

Comments

@simoncozens
Copy link
Owner

simoncozens commented Aug 5, 2021

What stops fonticulus for being ready for prime-time?

Meta-development

  • Document build strategy / code flow so that it's understandable to others
  • Document all methods

Source loading (babelfont-rs)

  • Load UFO/designspace
  • Load Glyphs 3 (not features yet)
  • Load Glyphs 2
  • Load FontLab VFJ

Static-font metadata tables

  • head
    • macStyle
    • flags
  • post
  • cmap
    • cmap 4
    • cmap 12
    • cmap 14
  • hhea
  • OS/2
    • fsType
    • Unicode ranges (draft PR)
    • sFamilyClass
  • name (done, needs checking)
  • maxp
  • hmtx
  • loca
  • Vertical tables (vhea/vmtx)

Outlines

  • Decompose mixed glyphs
  • Convert cubic to quadratic
  • Remove overlaps on static build (use separate ttf-remove-overlap utility)
  • Remove implied oncurves (currently buggy, needs to be done in an interpolation-compatible way)

Variable fonts

  • Generate gvar deltas
  • Generate fvar table
  • Generate avar table
  • Generate HVAR/MVAR/VVAR metadata tables (could be done via separate utility?)
  • Generate STAT table (needs fonttools-rs support)
  • Optimize gvar deltas (use separate ttf-optimize-gvar utility)

OpenType layout generation

  • Parse the feature file
  • Generate binary layout tables (in progress)
    • Build basic tables with script table, feature table, lookup table
    • GSUB1
      • fonttools-rs
      • feaparser
    • GSUB2
      • fonttools-rs
      • feaparser
    • GSUB3
      • fonttools-rs
      • feaparser
    • GSUB4
      • fonttools-rs
      • feaparser
    • GSUB5
      • fonttools-rs
      • feaparser
    • GSUB6
      • fonttools-rs
      • feaparser
    • GSUB8
      • fonttools-rs
      • feaparser
    • GPOS1
      • fonttools-rs
      • feaparser
    • GPOS2
      • fonttools-rs (Format 1 done, format 2 needed)
      • feaparser
    • GPOS3
      • fonttools-rs
      • feaparser
    • GPOS4
      • fonttools-rs
      • feaparser
    • GPOS5
      • fonttools-rs
      • feaparser
    • GPOS6
      • fonttools-rs
      • feaparser
    • GPOS7
      • fonttools-rs
      • feaparser
    • GPOS8
      • fonttools-rs
      • feaparser
    • Build GDEF (needs fonttools-rs support)
    • Build GDEF variation store (needs fonttools-rs support)
  • Generate implicit features from source (what ufo2ft calls "feature writers")
    • Kern
      • Basic implementation
      • No, not just a rigged demo, a proper implementation with script-appropriate kern/dist and LTR/RTL support
      • Generate optimal class-based pair positioning in fonttools-rs
    • Mark/mkmk
  • Overflow handling

Verification and testing

  • Develop regression test suite which placates the easily-scared
  • Ensure regression test suite passes
@cmyr
Copy link
Contributor

cmyr commented Aug 5, 2021

Great, thanks simon.

I'm very happy to help out on this in any number of ways, both in the more busy-work stuff of cleanup/documentation, but I'm also happy to dig into the implementation details for missing tables etcetera; I think this would be helpful for me anyway as an opportunity to fill in some gaps in my knowledge.

@simoncozens
Copy link
Owner Author

Thanks! For some of the missing tables stuff, the basic rule is "do whatever ufo2ft does".

@yisibl
Copy link

yisibl commented Oct 29, 2021

Hi @simoncozens

This is an exciting project.

Are there any plans to support COLR/COLR and SVG tables? Chrome is going to release[1] support for COLRv1, and I hope to improve the speed of COLR font generation through Rust, so that more users can use the latest COLRv1 fonts through our platform.

[1] https://groups.google.com/a/chromium.org/g/blink-dev/c/kDfj3rcA6sc/m/mXFBFc5bBQAJ

@simoncozens
Copy link
Owner Author

I think eventually there will be COLR/SVG support, but not for a while yet. I'm going to focus on the 90% use case and get that right first.

@simoncozens simoncozens transferred this issue from simoncozens/fonticulus May 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants