Shuery
|
4662856963
|
fix: 初始化竞态、用户级覆盖语义与死代码(重构四个控制器)
初始化竞态(已实证):旧 changeConfig() 整个函数体都在 if (this.player) 里,含配置赋值,
WE 在 window.load 之前下发属性时被静默丢弃,导致背景/音乐已切到新壁纸、立绘还是旧的。
改为「状态先写、应用后置」:index.js 用单一 state 记录(presetId/audioSource/audioVolume),
render() 决定能否立刻应用;setConfig() 无条件记录配置,create() 用记下的配置创建。
- 删除 index.js 里重复的 wallpaperRegisterListener(该 API 在本机 WE 不存在)
- 删除 adjustCanvas():播放器每帧自己做 renderer.resize(1) 且已注册 resize 监听,
而它用 getBoundingClientRect() 写 canvas.width 却不乘 DPR,属于有害的重复实现
- 用户级音源/音量覆盖:切壁纸不再清回预设默认值(旧 PresetController 的启发式已移除)
- 同源设置改为 no-op:否则两档壁纸共用同一首曲子时一切换就从头播放
- 只在壁纸真的变了才重建播放器,否则拖动音量滑块会触发重新下载 3.6MB 骨架+贴图
- 未知 preset id 保持现状并告警,不再静默回退
验证:属性在 DOMContentLoaded 下发时玩家动画正确为 animation(kv37);
用户自定义音源 custom-track.mp3 与音量 0.2 在切壁纸后完整保留;
重发同一预设时音乐从 1.3s 连续到 1.9s 未重启;未知 id 不崩。
对拍:与重构前同强冻结设置 8 批次 6 配置逐像素完全相同(差异 0)。
|
2026-09-19 19:53:15 +08:00 |
|
Shuery
|
a391021041
|
perf: 体积从 105.1 MB 降到 28.9 MB(音频转 Opus、图片无损 WebP)
- 两首 flac 母带移入 masters/(gitignore,不入库),转 Opus 128k VBR:3.35 + 3.16 MB
- xilian 三张真 PNG RGBA → 无损 WebP(3.39→1.80、5.01→2.83、3.38→1.76 MB)
- kv37_xilian.png → 无损 WebP 5.13→2.75 MB
- kv37 五张图本来就是 WebP(扩展名误写成 .png),本次只改名并把 atlas 页名改为 .webp
- 删除死文件 dist/jsconfig.json
- 新增 tools/rawdiff.mjs(区分可见差异与仅透明下差异)、tools/atlas-pages.mjs
验证:check-paths 11/11;0 个非 favicon 的 404;无损 WebP 可见像素 0 差异;
libwebp 会改写完全透明像素下的 RGB(xilian 三图 32-49% 像素),渲染级对拍
与 PNG 版相差 0.052/255、热力图全空,确认未因 Linear 过滤渗色。
|
2026-09-19 19:41:41 +08:00 |
|
Shuery
|
09ff322fe8
|
refactor: 资源按 游戏/壁纸 分层,预设拆进各自壁纸目录
- assets/<游戏>/<壁纸>/{effects,images,audios}/,每档壁纸自包含
- 每档壁纸自带 preset.js:用 import.meta.url 推导自身资源路径,目录可整体搬走;
目录名用显示名(含「」),代码键用稳定 id(xilian/kv37,与 WE 属性值绑定)
- preset-store.js -> presets.js:静态 import 两份预设并建 id 索引
- 新增 CONTEXT.md 术语表与 ADR-0001/0002
- 新增 check-paths / compare / heatmap 三个验证工具;serve.mjs 改为每帧强制动画相位归零
验证:check-paths 11/11 路径存在(含此前零引用的 昔涟.flac);浏览器 0 个真实 404;
与基线 worktree 同冻结设置对拍,9 对跨版本比较中 4 对逐像素完全相同(差异 0),
其余 ≤0.19/255,远低于基线自身的双模态抖动(2.27/255)。
|
2026-09-19 19:26:46 +08:00 |
|
Shuery
|
d8c7e492f7
|
chore: 基线 — 已发布壁纸现状原样入库(未做任何改动)
dist/ 为 Wallpaper Engine 网页壁纸「【崩坏:星穹铁道】昔涟」(workshopid 3604974793, version 2),
含两套预设 xilian / kv37,总计 105.1MB。本次提交不做任何修改,仅作为后续优化的对拍基线。
|
2026-09-19 19:08:49 +08:00 |
|