Fix/修复无限画布图标文字模糊 #285

Merged
k88936 merged 17 commits from fix/blur-font into master 2026-09-09 16:32:43 +08:00
Member

closes #279
closes #284

实现: 从2(暂定)倍放大绘制的画布scale 0.5* 真正的scale

before:
shotmd-1788579338.jpg
shotmd-1788578910.jpg

after:
shotmd-1788580930.jpg
shotmd-1788583400.jpg
svg看起来stroke窄了一点点, 可以接受

closes #279 closes #284 实现: 从2(暂定)倍放大绘制的画布scale 0.5* 真正的scale before: ![shotmd-1788579338.jpg](/attachments/9d44ec5e-454c-449b-86bc-b2131fbbc8cc) ![shotmd-1788578910.jpg](/attachments/c9da61a2-b467-43eb-a5de-e5e4d5cb8f70) after: ![shotmd-1788580930.jpg](/attachments/f1f06e8e-90bf-45e2-a30b-a63ccc308c19) ![shotmd-1788583400.jpg](/attachments/c48ca741-e470-42b3-8030-064e0579f63a) svg看起来stroke窄了一点点, 可以接受
k88936 self-assigned this 2026-09-05 11:24:56 +08:00
k88936 added this to the 陶泥儿gameAgent project 2026-09-05 12:44:51 +08:00
k88936 added 3 commits 2026-09-05 12:48:01 +08:00
移除项目开发页自有 world 变换与动态矩形尺寸

通过共享 CanvasWorld 提供资源卡控件反向缩放变量
记录 CanvasWorld 默认 2 倍超采样与 viewport.scale 视觉比例契约

记录资源页继续使用 12000 正方形 world 且不新增矩形尺寸 API

记录 SVG 描边与资源页迁移验收边界
共享 CanvasWorld 统一超采样
Project CI / Repository checks (pull_request) Successful in 2m45s
Project CI / Frontend tests (pull_request) Failing after 2m52s
Project CI / Native shell tests (pull_request) Failing after 5m49s
Project CI / Backend tests (pull_request) Successful in 7m24s
f24949f732
默认以 2 倍内容分辨率渲染并保持 viewport.scale 的最终视觉比例

用反向 stroke-width 抵消资源卡 SVG 图标的超采样线宽

补充共享 CanvasWorld 超采样契约测试
k88936 force-pushed fix/blur-font from cfbc6c36a5 to f24949f732 2026-09-05 12:48:01 +08:00 Compare
k88936 added 1 commit 2026-09-05 15:21:33 +08:00
修复画布旧测试的逻辑缩放断言
Project CI / Repository checks (pull_request) Successful in 3m56s
Project CI / Frontend tests (pull_request) Successful in 4m31s
Project CI / Native shell tests (pull_request) Successful in 21m16s
Project CI / Backend tests (pull_request) Successful in 49m46s
be0ae6d716
抽取并导出逻辑 viewport 到渲染 transform 的共享转换函数

更新网站与 Tauri 画布测试,通过逻辑坐标和缩放值验证实际样式

同步画布公开契约和测试边界文档
k88936 marked the pull request as ready for review 2026-09-05 17:40:08 +08:00
k88936 requested review from kdletters 2026-09-05 17:40:19 +08:00
kdletters requested changes 2026-09-06 19:36:37 +08:00
kdletters left a comment
Member

审查结论:request changes。阻塞问题:packages/image-canvas-react/src/useImageCanvasStageInteractions.ts:345-350 仍只在 event.target 是 viewport 或 classList 包含 .genarrative-image-canvas__world 时创建框选。PR 在 CanvasWorld.tsx:41-50 新增 .genarrative-image-canvas__world-content 包裹层,实际点击/拖拽空白画布时 target 会是该内层 div,条件不成立,因此空白区域只能清焦点,无法创建选择框;现有 hook 单测手动把外层 world 作为 target,未覆盖真实 DOM。请改用 target.closest(.genarrative-image-canvas__world) 或保留内层命中契约,并补真实 DOM 回归测试。

审查结论:request changes。阻塞问题:packages/image-canvas-react/src/useImageCanvasStageInteractions.ts:345-350 仍只在 event.target 是 viewport 或 classList 包含 .genarrative-image-canvas__world 时创建框选。PR 在 CanvasWorld.tsx:41-50 新增 .genarrative-image-canvas__world-content 包裹层,实际点击/拖拽空白画布时 target 会是该内层 div,条件不成立,因此空白区域只能清焦点,无法创建选择框;现有 hook 单测手动把外层 world 作为 target,未覆盖真实 DOM。请改用 target.closest(.genarrative-image-canvas__world) 或保留内层命中契约,并补真实 DOM 回归测试。
k88936 marked the pull request as work in progress 2026-09-07 10:17:38 +08:00
k88936 added 2 commits 2026-09-07 10:50:42 +08:00
框选命中判断支持 world 的真实后代元素

回归测试覆盖共享 CanvasWorld 内层 pointerdown 冒泡

同步记录共享画布框选命中排障经验
Merge remote-tracking branch 'origin/master' into fix/blur-font
Project CI / Repository checks (pull_request) Successful in 5m1s
Project CI / Frontend tests (pull_request) Successful in 5m54s
Project CI / Backend tests (pull_request) Successful in 7m19s
Project CI / Native shell tests (pull_request) Successful in 19m58s
3520cd3915
# Conflicts:
#	docs/project-memory/shared-memory/pitfalls.md
k88936 added 1 commit 2026-09-07 15:44:34 +08:00
Merge branch 'master' into fix/blur-font
Project CI / Repository checks (pull_request) Successful in 2m55s
Project CI / Frontend tests (pull_request) Successful in 3m22s
Project CI / Backend tests (pull_request) Successful in 6m15s
Project CI / Native shell tests (pull_request) Successful in 19m55s
7bacfebcfd
k88936 requested review from kdletters 2026-09-07 15:44:38 +08:00
k88936 marked the pull request as ready for review 2026-09-07 15:44:55 +08:00
kdletters requested changes 2026-09-07 17:00:39 +08:00
kdletters left a comment
Member

请求修改:资源画布缩小时,音频/视频播放按钮会越过卡片边界并被裁切,详见行内评论。

上一轮 world-content 空白区域不能框选的问题已经修复。当前提交的共享画布、网站画布、素材画布和 AppSurface 共 6 个文件、588 项测试通过。

使用当前 CanvasWorld 和资源卡 CSS 在真实 Chromium 中验证:viewport.scale=0.5 时播放按钮越界 3.5px,scale=0.25 时越界 10.25px,底部被裁切区域不能点击;将缩放原点改为右下角后这两个比例下均回到卡片内部。现有 jsdom 测试未覆盖这项渲染与命中检查。远端 4 项 CI 仍在排队。

请求修改:资源画布缩小时,音频/视频播放按钮会越过卡片边界并被裁切,详见行内评论。 上一轮 world-content 空白区域不能框选的问题已经修复。当前提交的共享画布、网站画布、素材画布和 AppSurface 共 6 个文件、588 项测试通过。 使用当前 CanvasWorld 和资源卡 CSS 在真实 Chromium 中验证:viewport.scale=0.5 时播放按钮越界 3.5px,scale=0.25 时越界 10.25px,底部被裁切区域不能点击;将缩放原点改为右下角后这两个比例下均回到卡片内部。现有 jsdom 测试未覆盖这项渲染与命中检查。远端 4 项 CI 仍在排队。
@@ -5976,0 +5979,4 @@
.game-resource-card-media-control {
transform: scale(var(--genarrative-image-canvas-inverse-scale, 1));
transform-origin: center;
Member

[P2] 将固定屏幕尺寸的播放控件锚定在卡片内

播放按钮原有 right/bottom 都是 9px、尺寸 34px,这里按 inverse-scale 放大并以中心为原点,会向右下方额外扩张;父级 .game-resource-card 又设置了 overflow:hidden。因此正常缩小画布时按钮会被裁切,部分点击区域丢失。真实 Chromium 中,scale=0.5 和 0.25 分别向右/下越界 3.5px、10.25px。请改为与 right/bottom 一致的右下角缩放原点,或补偿定位偏移,并验证小于 1 的缩放下整个播放按钮仍位于卡片内且可命中。

[P2] 将固定屏幕尺寸的播放控件锚定在卡片内 播放按钮原有 right/bottom 都是 9px、尺寸 34px,这里按 inverse-scale 放大并以中心为原点,会向右下方额外扩张;父级 .game-resource-card 又设置了 overflow:hidden。因此正常缩小画布时按钮会被裁切,部分点击区域丢失。真实 Chromium 中,scale=0.5 和 0.25 分别向右/下越界 3.5px、10.25px。请改为与 right/bottom 一致的右下角缩放原点,或补偿定位偏移,并验证小于 1 的缩放下整个播放按钮仍位于卡片内且可命中。
k88936 marked this conversation as resolved
k88936 requested review from kdletters 2026-09-07 20:37:09 +08:00
k88936 removed review request for kdletters 2026-09-07 20:37:28 +08:00
k88936 added 1 commit 2026-09-08 11:08:28 +08:00
修复资源画布播放控件缩放越界
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / Frontend tests (pull_request) Successful in 3m12s
Project CI / Native shell tests (pull_request) Successful in 19m7s
cd75b9a1b9
将资源卡音视频播放控件的缩放原点固定到右下角。

增加播放控件缩放原点的样式回归断言。
k88936 added 1 commit 2026-09-08 11:59:10 +08:00
Merge branch 'master' into fix/blur-font
Project CI / Repository checks (pull_request) Successful in 2m8s
Project CI / Frontend tests (pull_request) Failing after 5m33s
Project CI / Backend tests (pull_request) Successful in 9m23s
Project CI / Native shell tests (pull_request) Failing after 5m30s
89fc64a54d
k88936 added 1 commit 2026-09-08 17:43:43 +08:00
修正预览画布快捷缩放测试
Project CI / Frontend tests (pull_request) Successful in 2m50s
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / Native shell tests (pull_request) Successful in 17m4s
e9ca9a456b
预览缩放测试改按逻辑 viewport.scale 断言

补充超采样渲染与用户缩放比例的验证约定
k88936 added 1 commit 2026-09-08 18:53:07 +08:00
Merge branch 'master' into fix/blur-font
Project CI / Repository checks (pull_request) Successful in 2m22s
Project CI / Native shell tests (pull_request) Failing after 14m6s
Project CI / Frontend tests (pull_request) Successful in 2m57s
Project CI / Backend tests (pull_request) Successful in 6m19s
9895666257
kdletters requested review from kdletters 2026-09-09 10:16:40 +08:00
kdletters declined to review 2026-09-09 10:16:42 +08:00
kdletters requested review from kdletters 2026-09-09 10:16:45 +08:00
kdletters declined to review 2026-09-09 10:16:47 +08:00
k88936 added 1 commit 2026-09-09 10:18:22 +08:00
Merge remote-tracking branch 'origin/master' into fix/blur-font
Project CI / Repository checks (pull_request) Successful in 5m29s
Project CI / Frontend tests (pull_request) Successful in 5m34s
Project CI / Backend tests (pull_request) Failing after 6m26s
Project CI / Native shell tests (pull_request) Failing after 5m8s
3acfaa3795
# Conflicts:
#	docs/project-memory/shared-memory/decision-log.md
k88936 added 3 commits 2026-09-09 11:34:19 +08:00
提取 getSafeViewportScale 供 world transform 与逆缩放变量复用

导出共享缩放辅助函数并保持现有渲染行为
移除占位图标继承 inverse-scale 的统一 stroke-width 规则

保留资源依赖关系线的 non-scaling-stroke 几何覆盖行为
修复资源卡片缩放控件裁剪
Project CI / Repository checks (pull_request) Successful in 4m19s
Project CI / Frontend tests (pull_request) Successful in 3m3s
Project CI / Native shell tests (pull_request) Failing after 6m31s
Project CI / Backend tests (pull_request) Successful in 8m55s
25df114b93
将卡片容器改为可见溢出,避免逆缩放徽标和媒体控件在低缩放时被截断

保留视觉内容层的溢出裁剪并继承卡片圆角
kdletters reviewed 2026-09-09 11:37:10 +08:00
kdletters left a comment
Member

审查 head sha: 25df114b93

未发现明确问题。已检查本次变更及相关测试;针对画布超采样渲染和交互路径的现有测试通过。

审查 head sha: 25df114b934b638da407f2c8391210b87892a39a 未发现明确问题。已检查本次变更及相关测试;针对画布超采样渲染和交互路径的现有测试通过。
k88936 added 1 commit 2026-09-09 13:35:05 +08:00
Merge branch 'master' into fix/blur-font
Project CI / Repository checks (pull_request) Successful in 3m6s
Project CI / Frontend tests (pull_request) Successful in 4m3s
Project CI / Backend tests (pull_request) Successful in 8m27s
Project CI / Native shell tests (pull_request) Failing after 17m44s
1d807e35ec
k88936 added 1 commit 2026-09-09 14:30:48 +08:00
Merge branch 'master' into fix/blur-font
Project CI / Repository checks (pull_request) Successful in 5m42s
Project CI / Backend tests (pull_request) Successful in 8m26s
Project CI / Frontend tests (pull_request) Successful in 12m34s
Project CI / Native shell tests (pull_request) Successful in 19m36s
7754d3d6af
k88936 merged commit 7288c6f641 into master 2026-09-09 16:32:43 +08:00
k88936 deleted branch fix/blur-font 2026-09-09 16:34:43 +08:00
Sign in to join this conversation.