4.6.5 - #1038
4.6.5#1038
Conversation
sceneParser 在逐语句 map 里用 [...assetsList, ...sentenceAssets] 复制整个 已累积列表,资源密集脚本的整体复杂度因此是 Θ(资源数²):8000 条语句 (5333 个资源引用)解析耗时 47.8ms,而同样语句数、不带资源的脚本只要 6.7ms(线性)。 改为就地 push 追加,结果内容与顺序完全不变。新增回归测试: - 多条语句的资源/子场景累积顺序、类型去重与 prefetcher 入参保持一致 - 语句数 ×4 时耗时不得超过 ×8(旧实现在该测试下比值约 22)
…quadratic fix(parser): accumulate assets and subscenes in place to remove superlinear cost
编辑器类调用方只需要语句结构,却要传一个空函数来满足签名,并为此付出每条语句 资源扫描、场景级汇总与去重的开销。把 assetsPrefetcher 改成可选:省略时不收集 资源,sentenceAssets / subScene / assetsList / subSceneList 均为空数组。 现有调用方行为不变(传了回调就照旧收集)。每条语句都带资源引用的脚本上,解析 耗时约降低 1/5 到 1/3(8000 条语句 10.0ms → 7.4ms)。
…fetcher feat(parser): make assetsPrefetcher optional to skip asset collection
chore: 移除构建产物中的 gz 压缩文件
效果编辑器会话中的保存场景、自动保存、预览面板刷新都会发一次不带 transformBaselineRevision 的 sync-scene。handleSyncScene 对所有无 token 的 sync 都执行 invalidateCurrentRevision() 并清空 setEffectBaselines,于是同一编辑指针上 的重复 sync 会打掉自己的基线:之后 preview.command.set-effect 的稀疏 payload 只能 用 baseTransform 合并,继承字段被解析成默认值(立绘丢缩放、滤镜)。写回语句不受 影响。 改为按 (sceneName, sentenceId) 判定失效:同指针的重复 sync 不失效 current snapshot;指针变化、runtime reset / reload、run-snippet / run-scene-content 仍然 失效。set-effect 的合并基线不再单独缓存,每次由 baseTransform + ready snapshot 现算,避免缓存与 snapshot 各有一套有效期。 revision-bound sync 的 settle 判定改用 replay 写回的 stoppedAtTarget(同场景且 停止指针不早于解析后的停点):原实现拿 payload 原始指针做严格相等,多行语句的 续行指针与 -next 链越点都会被误判为未停点,把刚在正确采样点发布的 snapshot 撤销。 不新增 wire 字段。
feat: use transformFrom arg
…fetime fix(webgal): 预览基线有效期绑定编辑指针,修复保存后丢失继承变换字段
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f2b31dc266
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| !!texture?.valid && | ||
| !texture.trim && | ||
| !texture.rotate && | ||
| texture.baseTexture.alphaMode !== ALPHA_MODES.NPM && |
There was a problem hiding this comment.
Allow default Pixi textures through the diff path
For ordinary PNG/JPEG assets loaded with Texture.from, Pixi 6 uses the default ALPHA_MODES.UNPACK, which aliases ALPHA_MODES.NPM. This predicate therefore rejects the normal static textures that addFigure creates, so even equal-size, fully prefetched changeFigureDiff images never reach createFigureTextureBlend and always fall back to replacing the object with fade-out/fade-in. Accept the default mode here, or test only the texture properties that actually make the off-screen blend unsafe.
Useful? React with 👍 / 👎.
Deploying webgal-dev with
|
| Latest commit: |
1391d45
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://ef8e99f8.webgal-dev.pages.dev |
No description provided.