私はDirectX 9をラップするC#コントロールを作成しており、2Dピクセルレベルの描画を実行するための簡単なインターフェイスを提供しています。 .NETでは、このコードを安全でないコードブロックにラップし、安全でないコードを許可するオプションでコンパイルする必要があります。2Dレンダリングの安全でないC#とポインタ、良いか悪いですか?
私は、メモリのロックされた領域へのポインタを返す表面全体をロックしています。次に、「単純な」ポインタ演算を使用してピクセルデータを直接書き込むことができます。私はこれをテストしたパフォーマンスを持っていて、私が知っている他の "安全な"方法よりも大幅にスピードが向上しています。
これはC#.NETアプリケーションの個々のピクセルを操作する最も速い方法ですか?より良い、より安全な方法がありますか?ポインター操作を必要としない同等の速いアプローチがあった場合は、それを使用することが私の好みです。
(私はこれが2008年で知っていると我々はすべてなど、DirectXの3D、OpenGLを使用しなければならない、しかし、この制御は、2Dピクセルレンダリングのために排他的に使用されるべきであり、単に3Dレンダリングを必要としません。)