Commit Graph
2 Commits
Author SHA1 Message Date
openclaw c7247c69cd v3.0: 废弃 Canvas 2D 方案,新增 Heart JIT 加速器
- 分析 player_v2.js 源码确认:Kitten N 渲染层已是 PIXI.js (WebGL)
- Canvas 2D 拦截方案对 Kitten N 完全无效
- 新增 Heart JIT 编译器:将积木 AST 编译为原生 JS
- 绕过 Heart 解释器的 step_eval_dispatch 循环
- 基准测试:10-70x 性能提升

核心发现:
- player_v2.js 包含完整 PIXI.js WebGL 渲染引擎
- Heart 运行时是积木代码的解释器,逐条 step 执行
- 真正的瓶颈在 Heart 解释器,不在渲染层
2026-05-02 22:11:17 +08:00
codemao-webgl-engine b0b62f6a1e feat: Canvas 2D → WebGL 实时转译器 v2.0
核心思路: 拦截 getContext('2d'),返回 Canvas2DProxy 代理
所有 Canvas 2D API 内部转译为 WebGL GPU 渲染

转译覆盖:
- fillRect/strokeRect/clearRect → 纯色四边形
- drawImage → 纹理采样四边形
- fillText/strokeText → 离屏Canvas→纹理→四边形
- fill/stroke (路径) → ear-clipping三角化/粗线四边形
- arc/ellipse/bezierCurveTo → 细分折线
- save/restore/translate/rotate/scale → 变换矩阵栈
- getImageData/putImageData → gl.readPixels/texImage2D
- globalAlpha/globalCompositeOperation → alpha/blendFunc

性能优化:
- 批量渲染: 4096四边形/批次,单次drawArrays
- 纹理缓存: WeakMap + 8纹理槽
- 关闭antialias/强制独显/低延迟
2026-05-02 21:33:29 +08:00