Canvas2Dでかなり集中的なレンダリングを行うときに、デバッグが特に難しいものにぶつかりました。私は、いくつかの魔法を挟んでglobalCompositeOperation
、複数のオフスクリーンキャンバスまで、あらゆる種類のものを使用しています。drawImage
それは完全にうまくそしてスムーズに動作します:
- Chrome(26)[OSX 10.7.5]
- Safari(6.0.2)[OSX 10.7.5]
- Firefox(18と20の両方のAurora)[OSX 10.7.5]
- Chrome(24)[Windows 7]
- Firefox(12)[Windows 7]
- Chromium(24)[Archlinux、Gnome 3]
編集:Windows 7のテストを追加しました。不思議なことに、FF12(デュアルブートに古いバージョンがありました)で動作しますが、FF18にアップグレードすると明らかにパフォーマンスが低下します。ただし、WindowsでもLinuxほど悪くはなく、OSXの同じバージョンでも問題なく動作します。多分回帰?
何らかの理由で、FirefoxとLinux(18と20の両方のAuroraを試しました)では、ドラッグとレンダリングを同時に行うとレンダリングパフォーマンスが低下します。
アニメーションをファイアアンドフォーゲットすると、Chrome / Safariと同等になりますが、ドラッグしてレンダリングすると、ドラッグを放した後にエンドフレームしか表示されないことがよくあります。
requestAnimationFrame
マウスイベントハンドラーでの直接レンダリングも機能しません。- プロファイリング後、報告されたレンダリングパーツのタイミングは、許容範囲内(絶対最悪の場合は最大100ms)であり、画面に表示されるものとは完全に一致していません。
- いくつかのものを削除して負荷を減らしてみたところ、15ミリ秒未満のレンダリング時間が報告されましたが、表示されたものは変わりませんでした。
私を困惑させているのは、Linux上のFirefoxを除いて、他のほとんどすべての場所で機能することです。私がどこを見るべきか、バグレポートまたは私の問題の解決策について何か考えはありますか?