听起来很奇怪(至少对我来说)但是如果我在动画的每一帧(使用fillRect调用)之前将画布涂成全白色,则后续动画的帧速率要高得多。即使指定了较新的alpha:标志,也是如此。
奇怪(也)如果我只覆盖一些画布白色,我也会得到一个糟糕的帧率。据推测,通过覆盖整个画布,一些优化正在进行中。这是对的吗?
答案 0 :(得分:1)
我怀疑你的推定是正确的。
GPU正在使用像素颜色数组绘制画布。
如果所有这些颜色都相同(例如,白色),GPU可以使用r,g,b简单地将该数组填充为全部255的值。(==快!)
如果某些颜色不同(例如,白色矩形但保留其他先前的图纸),则CPU和GPU必须协同工作以计算要保留的现有像素以及要更改的像素。 (==较慢)。