Files
SpineWallpaper/.scratch/wallpaper-optimization/issues/04-aspect-adaptation.md
T
Shuery 8ad177c822 docs: 优化工作台的 spec 与 6 个实施 issue(.scratch/wallpaper-optimization/)
按本仓 issue-tracker 约定落盘:spec.md 记决策与验收,issues/NN-*.md 一步一票。
01 已完成,02-06 待做。
2026-09-19 19:27:47 +08:00

917 B

04 比例适配:按容器比例重算视口

Status: ready-for-agent

问题

viewport 以等比 "contain" 映射到画布:单轴贴边、另一轴多露出世界,因此现在的负 padding 只在目标比例下成立; 在超宽屏(3440×1440)或竖屏(1080×1920)下会露出多余的世界或裁掉主体。

步骤

  1. 测出每档壁纸在 21:9 / 16:9 / 9:16 下的构图偏差(已有对拍矩阵)。
  2. 按容器宽高比在运行时重算 pad(视口是活对象:原地改 pad 后调用 player.setViewport(当前动画名) 即生效, 整体替换 viewport 会丢 viewport.animations 并在 spine-player 第 14973 行崩溃)。
  3. 目标:主体完整、底部对齐、无空边。

验收

  • 三种比例下都对拍留档,主体不被裁切、底部不悬空。
  • 切换窗口大小时不重建播放器(用 setViewport),连续 resize 无内存增长。