Repository navigation
feat(flare): stage path conversion to CoreGraphics - #756
Merged
Merged
Conversation
Contributor
|
Fast lane: merged into dev (171 lines, 3 files, Fast-Check marker). |
Closed
github-actions Bot
pushed a commit
that referenced
this pull request
Oct 14, 2026
## What and why The last PR of the mac-platform feature (#793, resumes #754). It records that the packet is built and carries `feature-done`, so the lane dispatches the full CI run on `dev` that judges the feature. - `docs/blueprints/flare/features/mac-platform.md`: a **Status** line naming the merged task PRs (MP-1 #757, MP-2 #759, MP-3 #760, MP-4 #756, MP-5 #761, MP-6 #762), the round-1 test fix #764, and the feature issue #793. Nothing is wired into the window yet; F17a #205 and F17c #393 add the menu and the restore alert. - `docs/blueprints/flare/features/waves.md`: the wave-1 row's feature issue is now #793 (built). No CI run has judged the feature since 4594082. #801 fixed FlareModel's build against creative-core main, which had broken every Linux build of `dev`. ## Proof Docs only. `scripts/ci`: CI: PASS (1414 tests) on this head, rebased on 11e3e0c (#801). Snapshot PNGs changed: none. Refs #793 Belt-Lead: act-1a13c789856-0qa9 Feature: mac-platform Fast-Check: pass Head: e3c132f
This was referenced Oct 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
MP-4 of the mac-platform feature (docs/blueprints/flare/features/mac-platform.md). Closes #370.
What changed
Sources/FlareApp/StagePath.swift:enum StagePathwithstatic func cgPath(_ path: FlarePath, transform: Matrix) -> CGPath: every FlareCore element maps to one CG element (cubic → oneaddCurve, quad → oneaddQuadCurve, line → oneaddLine, move and close kept). Points go throughMatrix.applyfirst. Any element with a non-finite coordinate after the transform is skipped (no crash); a drawing element that then has no current point starts its subpath at its end point, and a close with no current point is dropped.static func cgColor(_ color: FlareColor) -> CGColorviaCGColor(srgbRed:green:blue:alpha:).#if canImport(CoreGraphics).docs/c4/model.json: theflare-app-sourcesdescription now mentions StagePath.Why
Stage drawing (journey step 6 of the packet, and every stage golden) needs curves to reach CoreGraphics as curves, not flattened polylines, and needs non-finite data never to crash the draw.
Proof
Tests/AppSnapshotTests/StagePathTests.swift(Swift Testing, macOS only):cubicsStayCurves: an ellipse built as 4 cubics gives exactly 4addCurveToPoint; a pen path with 2 cubics and 1 line gives 2addCurveToPointand 1addLineToPoint(counted withCGPath.applyWithBlock).translationMovesTheBounds: a translate-by-(10, 20) matrix movesboundingBoxOfPathby (10, 20).colorIsSRGB:cgColorof (1, 0.5, 0, 0.25) is in the sRGB color space with those components.nonFinitePointIsSkipped,skippedMoveStartsAtTheNextPoint,emptyPathIsEmpty.Linux
scripts/ciprintsCI: PASS(lints, C4, Model tests). The new files compile only in the macOS job ondev. No snapshot PNGs change.CoreGraphics APIs checked with the apple-docs MCP before use:
CGMutablePath.addCurve(to:control1:control2:transform:)(and the move/addLine/addQuadCurve/closeSubpath siblings it lists),CGColor.init(srgbRed:green:blue:alpha:),CGPath.applyWithBlock(_:),CGPathElementType,CGPath.boundingBoxOfPath,CGColor.components,CGColorSpace.name,CGColorSpace.sRGB.Belt-Lead: act-1a13b14336c-tqna
Feature: mac-platform
Fast-Check: pass
Head: 86fe480