From 94dd6cf3aa6590fbb6dd4ee19c6305830f24e713 Mon Sep 17 00:00:00 2001 From: Danila Poyarkov Date: Tue, 26 May 2026 21:21:49 +0300 Subject: [PATCH] fix(canvas): tune Figma pattern origin --- packages/core/src/canvas/fills.ts | 15 ++++++++++----- ...ls-from-source-nodes-openpencil-darwin.png | Bin 50904 -> 49234 bytes tests/engine/render/canvas/image-fill.test.ts | 2 +- .../visual-comparison-report.json | 14 ++++++++------ 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/packages/core/src/canvas/fills.ts b/packages/core/src/canvas/fills.ts index f014cc095..dee9638e3 100644 --- a/packages/core/src/canvas/fills.ts +++ b/packages/core/src/canvas/fills.ts @@ -105,9 +105,14 @@ interface PatternTileLayout { positions: Vector[] } -function patternAlignmentOffset(alignment: Fill['horizontalAlignment'], gap: number): number { - if (alignment === 'CENTER') return gap / 2 - if (alignment === 'END') return gap +function patternAlignmentOffset( + alignment: Fill['horizontalAlignment'], + gap: number, + sourceSize: number, + axis: 'x' | 'y' +): number { + if (alignment === 'CENTER') return axis === 'x' ? -gap / 2 : -sourceSize / 2 + if (alignment === 'END') return -gap return 0 } @@ -120,8 +125,8 @@ export function patternTileLayout(source: SceneNode, fill: Fill): PatternTileLay const gapY = scaledHeight * spacing.y const width = scaledWidth + gapX const height = scaledHeight + gapY - const x = patternAlignmentOffset(fill.horizontalAlignment, gapX) - const y = patternAlignmentOffset(fill.verticalAlignment, gapY) + const x = patternAlignmentOffset(fill.horizontalAlignment, gapX, scaledWidth, 'x') + const y = patternAlignmentOffset(fill.verticalAlignment, gapY, scaledHeight, 'y') const positions = [{ x, y }] if (fill.patternTileType === 'HORIZONTAL_HEXAGONAL') { diff --git a/tests/e2e/canvas/renderer-visuals.spec.ts-snapshots/pattern-fills-from-source-nodes-openpencil-darwin.png b/tests/e2e/canvas/renderer-visuals.spec.ts-snapshots/pattern-fills-from-source-nodes-openpencil-darwin.png index ac131ff739003eac06051bbda4b9465365353279..4d831c72d0522e38d6516adfb17de38fcd7db449 100644 GIT binary patch literal 49234 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 z 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ν{E$}umH4aU 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 D{UN0h diff --git a/tests/engine/render/canvas/image-fill.test.ts b/tests/engine/render/canvas/image-fill.test.ts index 6d3536014..18a74ca53 100644 --- a/tests/engine/render/canvas/image-fill.test.ts +++ b/tests/engine/render/canvas/image-fill.test.ts @@ -42,7 +42,7 @@ describe('canvas pattern fills', () => { expect(layout).toEqual({ rect: { x: 0, y: 0, width: 50, height: 30 }, scale: 2, - positions: [{ x: 5, y: 10 }] + positions: [{ x: -5, y: -10 }] }) }) diff --git a/tests/fixtures/figma-oracles/visual-comparison-report.json b/tests/fixtures/figma-oracles/visual-comparison-report.json index ec603b56d..c58377f31 100644 --- a/tests/fixtures/figma-oracles/visual-comparison-report.json +++ b/tests/fixtures/figma-oracles/visual-comparison-report.json @@ -8,13 +8,15 @@ { "name": "pattern-visible-source-frame", "nodeId": "296784:2258", - "output": "/tmp/open-pencil-oracles/pattern-visible-source-norm", + "output": "/tmp/open-pencil-oracles/pattern-visible-source-tuned", "figmaSize": "190x110", "openPencilSize": "190x110", - "differentPixels": 13026, - "differentPercent": 62.33, - "rmseNormalized": 0.361297, - "finding": "This is the reliable pattern oracle: source and target are copied together and Figma renders the pattern. OpenPencil now resolves the source, but tile origin/spacing still differs from Figma." + "differentPixels": 7180, + "differentPercent": 34.35, + "rmseNormalized": 0.235698, + "previousDifferentPixels": 13026, + "previousDifferentPercent": 62.33, + "finding": "This is the reliable pattern oracle: source and target are copied together and Figma renders the pattern. OpenPencil resolves the source and now uses a closer Figma-like pattern origin, but exact row spacing/tile origin still differs." }, { "name": "rich-text-decorations", @@ -61,7 +63,7 @@ } ], "nextActions": [ - "Tune pattern tile origin and spacing against pattern-visible-source-frame.", + "Continue tuning pattern row spacing and tile origin against pattern-visible-source-frame.", "Use perceptual/color-tolerant image diff for mask comparisons instead of raw absolute-error counts.", "Tune rich text line metrics before treating underline placement diffs as actionable." ]