Skip to content

1.2.0

  • 1.2.0
  • 15ba95f
  • Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
  • Choose a tag to compare

  • 1.2.0
  • 15ba95f
  • Choose a tag to compare

  • Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
@MaksimG82 MaksimG82 tagged this 22 Oct 17:10
* codestyle hotfix

* GlyphPathExtractor Core Text Line and Run used to exctract CGPath

* README.MD updated

* Extract glyph path pipeline into GlyphPathProvider

Moves cached extraction + layout resolution out of GlyphView into a shared
internal helper so an upcoming GlyphShape can reuse it. No behavior change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Add GlyphShape: glyph outline as a SwiftUI Shape

GlyphShape reuses GlyphPathProvider and offsets the cached path by the
rect's origin. Previews mirror GlyphView's. GlyphPathCache docs updated
for the shared pipeline.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Add GlyphShape tests

Covers tight/fontMetrics bounds, non-zero rect origin, parity with
GlyphPathProvider, and empty path for outline-less characters.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Add GlyphShape previews showcasing Shape capabilities

Strokes, gradient fills, content clipping, and trim animation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Document GlyphShape in README and CLAUDE.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Deprecate GlyphView in favor of GlyphShape

GlyphView stays functional but is marked deprecated, pointing to
GlyphShape(...).fill(color). Its previews are removed (GlyphShape has
equivalents). README examples, DocC landing page, and CLAUDE.md now
use GlyphShape, with a short migration note in the README.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Conform GlyphShape to InsettableShape

inset(by:) shrinks the layout rect the glyph is fitted into, enabling
strokeBorder. path(in:) returns an empty path when the inset rect has
no area.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Add GlyphShape inset(by:) tests

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Document and preview GlyphShape strokeBorder

Adds a stroke vs strokeBorder preview, a README example, and a CLAUDE.md
note on InsettableShape. Documents that miter joins on sharp glyph
corners can extend past the frame; examples use round joins.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Cache resolved CTFont in a font tier of GlyphPathCache

Font construction was ~96% of a render-tier miss. GlyphPathProvider now
reads the CTFont through GlyphPathCache.ctFont(for:), which caches
successfully resolved fonts only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Add GlyphPathCache font tier tests

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Document GlyphPathCache font tier in CLAUDE.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Add render tier micro-benchmark

Measures steady-state lookups for identical cells and a per-step
breakdown of a render-tier miss. Prints ns/call; run in Release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Resolve GlyphKitFont with Core Text instead of UIKit

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Add GlyphKitFont custom font and bold trait tests

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Use cross-platform colors in GlyphShape previews

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Run tests on macOS in CI and document macOS support

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Assets 2
Loading