Skip to content

Add text on paths, OpenType controls, and paged GPU effects - #118

Merged
IAmJSD merged 3 commits into
mainfrom
feat/path-text-paged-gpu
Sep 6, 2026
Merged

Add text on paths, OpenType controls, and paged GPU effects#118
IAmJSD merged 3 commits into
mainfrom
feat/path-text-paged-gpu

Conversation

@IAmJSD

@IAmJSD IAmJSD commented Sep 6, 2026

Copy link
Copy Markdown
Member

Text layers could not follow paths or expose OpenType features, and large warp/seam-carving jobs fell back to the CPU when a layer exceeded one GPU storage binding. This change addresses both README items.

  • Add Type controls for kerning, ligatures, discretionary ligatures, small caps, and placement on a copy of the active path. Glyphs, carets, and selection follow the curve; settings survive PSD/PSB reopen and undo. Existing text retains its layout until feature overrides are used.
  • Page warp sources into texture arrays and band their output. Add a paged seam-carving path with texture-backed image planes and a two-row cumulative-cost buffer, retaining the existing small-image path and device-limit fallbacks.
  • Preserve fractional warp sampling at large document coordinates on CPU and GPU by keeping integer positions separate from interpolation weights. Add origin-invariance regressions while retaining the existing GPU parity tolerance.
  • Give Type a compact single-row options bar with font, style, editable size, alignment, color, and commit/cancel controls. Put leading, tracking, OpenType toggles, and path settings in a docked Character panel. Numeric fields support replacement typing, negative values, and arrow-key adjustment without sending input to the text layer.
  • Add regression and GPU parity checks and document the completed features.

Native CMYK/Lab editing remains unresolved in the README. docs/native-colour-editing.md explains why retaining independent native channels requires coordinated storage, undo, compositor, and plugin API changes. Text path copies do not track subsequent source-path edits; bidi paragraph layout and vertical writing remain unsupported.

Validation:

  • make check-readme CARGO='cargo --locked': 185 tests, Clippy with warnings denied for the changed crates, and the app compile check.
  • Desktop debug build and a visual check of the Type toolbar at 1280×900 completed in the original checkout before isolating this branch.
  • Character UI: desktop debug build, app Clippy with warnings denied, workspace formatting, and a running-window check at 1280×900 covering numeric entry, negative values, arrow keys, feature toggles, and text commit.
  • git diff --check.

This PR is based directly on main; the existing Schist Cloud branch and uncommitted gallery work are excluded.

@IAmJSD
IAmJSD merged commit beef1ad into main Sep 6, 2026
4 checks passed
@IAmJSD
IAmJSD deleted the feat/path-text-paged-gpu branch September 6, 2026 10:49
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

Successfully merging this pull request may close these issues.

1 participant