Skip to content

fix(render): honor thickness on semantic line regions - #25

Merged
scbrown merged 3 commits into
mainfrom
gennaro/line-thickness-20261024
Oct 24, 2026
Merged

scbrown merged 3 commits into
mainfrom
gennaro/line-thickness-20261024

Conversation

@scbrown

@scbrown scbrown commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

Semantic line regions accepted thickness but always drew a one-pixel Bresenham centreline. A four-pixel line with thickness 3 now covers an 18-pixel square-brush band; omitted/thickness 1 keeps the original four pixels. This also fixes nested lines in union/subtract/intersect regions and keeps mask/validation coverage consistent with rendering.

Defines centred odd widths, a deterministic negative-side bias for even widths and an empty width-zero line. Adds odd/even/default/zero/diagonal/compound controls and an end-to-end PNG/mask/z-order/clipping test; strict clipping still reports a warning.

Validation: 2,607 passing tests across 21 native test executables with lsp,wasm, clippy all-targets with warnings denied, formatting and demo-documentation check. Native feature testing is not a browser-WASM claim; hosted CI runs the remaining surfaces.

Demo (sanitized transcript of the same local 8x8 fixture, base 686b366 versus head 4802322):

base: thickness 1: hair_pixels=4; adjacent pixel=skin
base: thickness 3: hair_pixels=4; adjacent pixel=skin
head: thickness 1: hair_pixels=4; adjacent pixel=skin
head: thickness 3: hair_pixels=18; adjacent pixel=hair
head: nested thickness 3: hair_pixels=18; adjacent pixel=hair

Reproduce with cargo test --test line_thickness --features lsp,wasm, or render a region {line:[[2,4],[5,4]],thickness:3} on an 8x8 canvas, then pxl mask fixture.pxl --sprite thick --count --json. The transcript reports actual local candidate behavior; it is not an installed release claim. A replayable terminal capture is retained privately; no public recording host is configured.

Bead: aegis-8t76.1

Overlap preflight: 4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945

Current integration refresh c6939d4e9d44145b022195143081284b4da08f8e includes base c665831c after the publishing repair landed. The entire three-path line-thickness proposal replays forward and inverse exactly, with no behavior changes in the refresh. The line-thickness PNG/mask control passes at this candidate; fresh hosted CI remains required. Earlier test-launch attempts stopped before testing because the sandbox lacked toolchain configuration; the successful run uses explicit compiler paths, with HOME guard verification retained privately. No release, tag, publication or product installation is requested.

@scbrown scbrown changed the title Honor thickness on semantic line regions fix(render): honor thickness on semantic line regions Oct 24, 2026
@scbrown
scbrown merged commit c79ce9b into main Oct 24, 2026
19 checks passed
@github-actions github-actions Bot mentioned this pull request Oct 24, 2026
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