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

Add support for 'Virtual Master' custom parameters #955

Merged
merged 7 commits into from
Nov 14, 2023
Merged

Commits on Nov 8, 2023

  1. [builder/axes] take into account Virtual Master params when defining …

    …axis min/max
    
    but only for axes that are un-mapped, since virtual master coordinates have no means of mapping {user:design} so are assumed un-mapped (whereas axis min/def/max must be in user-space).
    anthrotype committed Nov 8, 2023
    Configuration menu
    Copy the full SHA
    2dff28d View commit details
    Browse the repository at this point in the history
  2. [custom_params] ensure we store multiple 'Virtual Master' params in UFO

    with default glyphs_multivalued=False, we end up only storing one 'Virtual Master' param; also we want to read/write these only when dealing with GSFont, not also GSFontMaster
    anthrotype committed Nov 8, 2023
    Configuration menu
    Copy the full SHA
    1442867 View commit details
    Browse the repository at this point in the history
  3. [axes_test] test that axis min/max are influenced by virtual masters …

    …params
    
    The test font 'IntermediateLayer.glyphs' has a couple of glyphs that use virtual masters to control the cap height via a 'CPHT' axis.
    It contains no Axis Mappings nor Axis Location parameters, the axis coordinates are intented to be un-mapped (user==design). The virtual master custom parameters are expected to be taken into account when computing the CPHT min and max values.
    anthrotype committed Nov 8, 2023
    Configuration menu
    Copy the full SHA
    069d258 View commit details
    Browse the repository at this point in the history
  4. [ci] run lint job on python3.11 for now instead of latest 3.12

    somehow it fails while installing skia-pathops, trying to build from source. Probably we only need to bump requirements-dev.txt but I want to do that separately
    anthrotype committed Nov 8, 2023
    Configuration menu
    Copy the full SHA
    8082f99 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    49ca65d View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1450627 View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2023

  1. prefer instance-based axis mapping over master's only when non-identity

    in absence of explicit Axis Mappings or Axis Location, we infer wght/wdth user-spacelocations from the instances; however if the axis is un-mapped or resolves in an identity (no-op) mapping, there's no reason to prefer the instance-based mapping over the similarly identity/no-op mapping associated with the masters; actually it's possible that instances do not cover all the masters and thus by preferring the instances' mapping over the masters' we might produce incorrect axis min/max.
    So, only use the inferred instance-based mapping when it does something interesting, otherwise keep using the master (identity) mapping.
    anthrotype committed Nov 13, 2023
    Configuration menu
    Copy the full SHA
    b54d99d View commit details
    Browse the repository at this point in the history