From 3efc7de149a5e772c480b17ff05c27806a2e7e96 Mon Sep 17 00:00:00 2001 From: Danila Poyarkov Date: Wed, 1 Jul 2026 23:22:14 +0300 Subject: [PATCH] fix(canvas): render CJK fallback text as outlines --- packages/core/src/canvas/scene.ts | 11 +- tests/e2e/fonts/cjk-rendering-visual.spec.ts | 121 ++++++++++++++++++ ...lback-text-rendering-openpencil-darwin.png | Bin 0 -> 52342 bytes 3 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 tests/e2e/fonts/cjk-rendering-visual.spec.ts create mode 100644 tests/e2e/fonts/cjk-rendering-visual.spec.ts-snapshots/cjk-fallback-text-rendering-openpencil-darwin.png diff --git a/packages/core/src/canvas/scene.ts b/packages/core/src/canvas/scene.ts index efb9041cb..823bc4d59 100644 --- a/packages/core/src/canvas/scene.ts +++ b/packages/core/src/canvas/scene.ts @@ -606,6 +606,12 @@ function drawOutlinedText(r: SkiaRenderer, canvas: Canvas, node: SceneNode): boo return true } +const CJK_TEXT_PATTERN = /[\u3040-\u30ff\u3400-\u9fff\uf900-\ufaff\uac00-\ud7af]/u + +function shouldRenderCJKAsOutline(node: SceneNode): boolean { + return CJK_TEXT_PATTERN.test(node.text) +} + function drawGradientText( r: SkiaRenderer, canvas: Canvas, @@ -666,7 +672,10 @@ export function renderText(r: SkiaRenderer, canvas: Canvas, node: SceneNode, fil canvas.restore() return } - if (shouldRenderTextAsOutline(fill) && drawOutlinedText(r, canvas, node)) { + if ( + (shouldRenderTextAsOutline(fill) || shouldRenderCJKAsOutline(node)) && + drawOutlinedText(r, canvas, node) + ) { canvas.restore() return } diff --git a/tests/e2e/fonts/cjk-rendering-visual.spec.ts b/tests/e2e/fonts/cjk-rendering-visual.spec.ts new file mode 100644 index 000000000..410953303 --- /dev/null +++ b/tests/e2e/fonts/cjk-rendering-visual.spec.ts @@ -0,0 +1,121 @@ +import { existsSync, readFileSync } from 'node:fs' + +import { expect, test, useEditorSetupWithClear } from '#tests/e2e/fixtures' + +const editor = useEditorSetupWithClear('/?test&no-chrome&no-rulers') +const appleGothic = '/System/Library/Fonts/Supplemental/AppleGothic.ttf' + +test.skip( + process.platform !== 'darwin' || !existsSync(appleGothic), + 'CJK visual snapshot uses macOS AppleGothic for Hangul coverage' +) + +async function expectCanvas(name: string) { + editor.canvas.assertNoErrors() + const buffer = await editor.canvas.canvas.screenshot() + expect(buffer).toMatchSnapshot(`${name}.png`) +} + +test('renders Simplified Chinese, Traditional Chinese, Japanese, and Korean fallback text', async () => { + await editor.page.route('**/__test-fonts/apple-gothic.ttf', async (route) => { + await route.fulfill({ body: readFileSync(appleGothic), contentType: 'font/ttf' }) + }) + + const smoke = await editor.page.evaluate(async () => { + const store = window.openPencil?.getStore?.() + if (!store) throw new Error('OpenPencil store not initialized') + const pageId = store.state.currentPageId + const { fontManager } = await import('/packages/core/src/text/fonts.ts') + + const [notoResponse, appleGothicResponse] = await Promise.all([ + fetch('/tests/fixtures/fonts/NotoSansSC-Regular.ttf'), + fetch('/__test-fonts/apple-gothic.ttf') + ]) + if (!notoResponse.ok) throw new Error(`Failed to load Noto Sans SC: ${notoResponse.status}`) + if (!appleGothicResponse.ok) { + throw new Error(`Failed to load AppleGothic: ${appleGothicResponse.status}`) + } + + fontManager.markLoaded('Noto Sans SC', 'Regular', await notoResponse.arrayBuffer()) + fontManager.markLoaded('AppleGothic', 'Regular', await appleGothicResponse.arrayBuffer()) + fontManager.setCJKFallbackFamily('Noto Sans SC') + fontManager.setCJKFallbackFamily('AppleGothic') + + const lines = [ + { label: 'Simplified Chinese', text: '你好世界' }, + { label: 'Traditional Chinese', text: '繁體中文' }, + { label: 'Japanese', text: '日本語かなカナ' }, + { label: 'Korean', text: '안녕하세요' } + ] + + store.graph.createNode('FRAME', pageId, { + name: 'CJK rendering visual backdrop', + x: 64, + y: 52, + width: 720, + height: 312, + cornerRadius: 20, + fills: [ + { type: 'SOLID', color: { r: 0.97, g: 0.98, b: 1, a: 1 }, visible: true, opacity: 1 } + ], + strokes: [ + { + color: { r: 0.78, g: 0.84, b: 0.95, a: 1 }, + weight: 1, + visible: true, + opacity: 1, + align: 'INSIDE' + } + ] + }) + + for (const [index, line] of lines.entries()) { + const y = 84 + index * 64 + store.graph.createNode('TEXT', pageId, { + name: `${line.label} label`, + x: 96, + y, + width: 210, + height: 28, + text: line.label, + fontFamily: 'Inter', + fontSize: 17, + fontWeight: 600, + fills: [ + { type: 'SOLID', color: { r: 0.25, g: 0.32, b: 0.45, a: 1 }, visible: true, opacity: 1 } + ] + }) + store.graph.createNode('TEXT', pageId, { + name: `${line.label} sample`, + x: 328, + y: y - 4, + width: 360, + height: 42, + text: line.text, + fontFamily: 'Inter', + fontSize: 32, + textAutoResize: 'HEIGHT', + fills: [ + { type: 'SOLID', color: { r: 0.04, g: 0.06, b: 0.12, a: 1 }, visible: true, opacity: 1 } + ] + }) + } + + await store.loadFontsForNodes(store.graph.getPages().flatMap((page) => page.childIds)) + store.clearSelection() + store.requestRender() + + return { + loaded: { + noto: fontManager.isStyleLoaded('Noto Sans SC', 'Regular'), + appleGothic: fontManager.isStyleLoaded('AppleGothic', 'Regular') + }, + fallbacks: fontManager.getCJKFallbackFamilies() + } + }) + + expect(smoke.loaded).toEqual({ noto: true, appleGothic: true }) + expect(smoke.fallbacks).toEqual(expect.arrayContaining(['Noto Sans SC', 'AppleGothic'])) + await editor.canvas.waitForRender() + await expectCanvas('cjk-fallback-text-rendering') +}) diff --git a/tests/e2e/fonts/cjk-rendering-visual.spec.ts-snapshots/cjk-fallback-text-rendering-openpencil-darwin.png b/tests/e2e/fonts/cjk-rendering-visual.spec.ts-snapshots/cjk-fallback-text-rendering-openpencil-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..71844438eccdd87c1c66fad0db65a0c3128ae756 GIT binary patch literal 52342 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 literal 0 HcmV?d00001