Skip to content

4.5.20#939

Merged
MakinoharaShoko merged 52 commits into
mainfrom
dev
May 3, 2026
Merged

4.5.20#939
MakinoharaShoko merged 52 commits into
mainfrom
dev

Conversation

@MakinoharaShoko
Copy link
Copy Markdown
Member

No description provided.

TremblingMoeNew and others added 30 commits December 7, 2025 00:10
…tial runtime error caused by undefined parameters reported by review bot
- Use unique performName (baseName#animationName) for parallel performs
- Add prefix matching in unmountPerform and removePerformByName
- Fix force path splice ordering (before goNextWhenOver)
- Use baseTransform as default in updateEffect else path
- Remove isParallel dedup guard (unique IDs handle it naturally)
- 解决构建失败问题
- 兼容脚本变更可能导致的索引溢出问题
…support

feat: Decouple properties in timeline animations & support parallel animation
MakinoharaShoko and others added 20 commits April 25, 2026 22:35
feat: 增加已读历史记录能力,并支持区分已读文本,允许设置跳过是仅已读文本还是全部文本
feat: add nobreak argument for wait
feat: on-demand rendering
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented May 3, 2026

Deploying webgal-dev with  Cloudflare Pages  Cloudflare Pages

Latest commit: bad3204
Status: ✅  Deploy successful!
Preview URL: https://6455bc68.webgal-dev.pages.dev

View logs

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces several major features and optimizations to the WebGAL engine, including a bitset-based read history system, a "skip all" fast-forward mode, and support for parallel animations. Significant performance improvements were made to the PIXI rendering engine by implementing a reactive ticker that starts and stops based on activity, alongside a robust asset prefetching system utilizing a line-number gate and a task queue. The Service Worker logic was overhauled to use a cache-first strategy for hashed assets and to better handle local preview environments. Feedback was provided regarding a logic error in the vocal performance cleanup and potential performance gains by reducing the asset prefetch interval.

Comment on lines +107 to +115
const finishPerform = () => {
for (const e of WebGAL.gameplay.performController.performList) {
if (e.performName === performInitName) {
isOver = true;
e.stopFunction();
WebGAL.gameplay.performController.unmountPerform(e.performName);
}
}
};
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The finishPerform function contains a logic error and is inefficient. It iterates over performList and calls unmountPerform inside the loop. Since unmountPerform modifies the same performList by splicing elements, this can lead to skipping elements or other unexpected behavior during iteration. Furthermore, unmountPerform already stops and removes all matching performances, making the manual loop and e.stopFunction() call redundant. You should simply call unmountPerform once.

          const finishPerform = () => {
            isOver = true;
            WebGAL.gameplay.performController.unmountPerform(performInitName);
          };

}

const INITIAL_PARSE_LINE_LOOKAHEAD = 24;
const ASSET_PREFETCH_INTERVAL_MS = 220;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The interval of 220ms between each asset prefetch seems excessively high. For a scene with many assets (e.g., 50), it would take over 10 seconds to complete prefetching. Modern browsers are capable of handling multiple concurrent prefetch requests efficiently. Consider reducing this interval significantly (e.g., to 50ms or 100ms) or allowing a small number of concurrent prefetches to improve loading performance.

@MakinoharaShoko MakinoharaShoko merged commit 6faf573 into main May 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants