NSViewのすべてのdrawRect(約300x300ピクセルボックス)でNSBezierPathを使用して4000〜10000セグメントを描画しようとしています。これは非常に重いリソースであり、描画に多くの時間がかかっています(比較的長い時間)。NSBezierPathを使用した高速描画少なくとも4000セグメントの描画
誰かがこれに代わるものを提案できますか?一度に1つのNSBezierPathを1000個のセグメントに使用しようとしましたが、それでも資源が重すぎます。
私は可能な代替案を探しています。私はOpenGLがより速くなると確信していますが、私が必要とすることをするために新しいプラットフォームを学ばなければならないかどうかはわかりません。私は提案に開放されています。
300 x 300 = 90000と10000セグメントには20000のエンドポイントがあります。各セグメントが非常に短く、例えば4ピクセルと仮定すると、使用されるピクセルは40000ピクセルも追加されます。したがって、あなたの描画面の50%以上が塗りつぶされている可能性があります。非常に混乱しているようです。あなたはそれらの数字について確かですか?私が間違っている? –
あなたの2番目のパラグラフからは、それらの4000+パスは1つのシェイプのコピー/インスタンスと見なすことができます。そして、セグメント(またはそれらのサブセット)の出現はすべて互いに異なっていますか? (方向、サイズ、視覚的な外観など)さらに:それらは重なりますか?はいの場合:zオーダーは問題ですか? – Regexident
zオーダーは重要ですが、セグメントは1つの図形のコピーではありません。小さな線分(ランダムな4〜10ピクセルの長さ)です。それらは色と方向が異なり、ビューを通してスクロールされます。基本的には、右から左にスクロールして、多くのセグメントを持つグラフです(したがって、多くのセグメントで多くの再描画が行われます)。 – David