2

配列に生のビットマップ データ (ピクセル カラー、32 ビット) があります。このような「スプライト」を D3DImage に表示する簡単な方法はありますか? できればサードパーティのライブラリ (SharpDX など) を使用しないでください。

背景: 管理されていない DLL からの生のビットマップ フレームがあり、それらを WPF で高フレームレート/低 CPU 使用率で表示する必要があります。これまでのところ、WriteableBitmap と InteropBitmap を試してみましたが、遅すぎます (最大化されたウィンドウ (1680x1050 ディスプレイ)、Core i5 で ~110 fps が得られます)。これは、メモリをいっぱいにする簡単なテストにすぎません。 100% の CPU コア時間を使用せずにこれをはるかに高速に実行します)。VideoRendererElement ( C# で生の非圧縮バイト ソースからのライブ ビデオを表示: WPF と Win フォーム) も見ていますが、これは少し複雑です (管理されていない dll、regsvr32 登録などが含まれます)。

D3DImage のサンプルからわかるように、CPU に負荷をかけずに良好なフレームレートを実現しています。ビットマップ表示に使えるのかな。

UPD: 私はこれを見つけました: http://www.codeproject.com/Articles/113991/Using-Direct2D-with-WPF

これは基本的に私が探していたものです。私はそれを自分のプロジェクトにプラグインしました.InteropBitmapと同等ですが、少し遅くなります. 私の場合、メモリパフォーマンスがボトルネックになっているようです。どちらの場合も、ビットマップのコピーにほとんどの時間が費やされます (管理されていない memcpy を使用しています)。

4

0 に答える 0