第一个三角形:九步动画
左边九步,每点一次就真实执行一次 WebGPU 调用。注意第 ⑤ 到 ⑧ 步画布一直是空的—— 这几步只是在录命令,第 ⑨ 步提交之后三角形才出现。
先点「下一步」。
画布未配置
灰白格子是网页背景。画布默认是透明黑,提交之前什么都没有。
这一帧录到的命令
真实返回值
对应代码
为什么 ⑤~⑨ 每次点击都会重放
getCurrentTexture() 拿到的纹理只在当前帧有效。规范里
「Expire the current texture」这一步会对它调用 destroy(),
所以慢慢点按钮(跨了很多帧)之后再提交,用的就是一张已经销毁的纹理。
这个页面的做法是:点 ⑤~⑨ 里的任一步,都在同一个 requestAnimationFrame 里
从 ⑤ 重放到当前步——录命令本身不改画布,只有 ⑨ 的 submit 会。