WPF の D3DImage で DirectX 10 (私は SlimDX を使用しています) を使用することは可能ですか? 私が見つけることができる唯一の例とドキュメントは、DX9 サーフェスの使用のみを示しています。
3 に答える
はい、WPF で D3DImage を使用して DirectX 10、11、および DirectWrite を使用できます。レンダー ターゲット サーフェスを共有として作成し、その共有テクスチャ ハンドルに基づいて DX9 テクスチャを作成して WPF で使用します。
これは、追加のオーバーヘッドや空域の問題なしで、基本的に 10、11、および DirectWrite を DX9 を使用するのと同じ方法で使用できることを意味します。
DX9、DX10、DX11、および DirectWrite を統合したサンプル WPF プロジェクトは、次のブログ投稿で参照できます。
Microsoft Code Pack には、Windows 7 の他のさまざまなアンマネージ ライブラリに加えて、DX9、DX10、DX11、DirectWrite などの Windows 7 コンポーネント用のシン マネージ ラッパーが含まれています。
SurfaceQueueInteropHelper は、WPF での DX9、10、および 11 コンテキストの自動作成を管理し、D3DImage の更新と、デバイスの損失イベントを含むレンダリング システムのその他のさまざまな側面を管理する WPF コントロールです。
私の知る限り、箱から出してはいけません。WPFはDirectXに基づいていますが、WPFはWindows XPでもサポートされているため、DirectX9に基づいています。
DirectX 10をWPFで使用できることは知っていますが、その場合、アプリケーションはXPで実行できなくなります。
DirectX 10(VistaおよびWindows 7)をサポートするBlingと呼ばれるWPF用のライブラリがあります。これは興味深いかもしれません。ここで見つけることができます。でも、どれだけ成熟しているかはわかりません。
また、 DirectX 10をWPFで使用することについて話しているこのブログ(主にフランス語)に出くわしました。
最後に、CodeProjectでDirectXでD3DImageを使用するための良い紹介があります
これがあなたの質問に正確に答えないことは知っていますが、とにかくそれをあなたと共有したいと思いました。幸運を祈ります。
DirectX 呼び出しに SlimDX を使用する場合は、SlimDXControl (slimdxcontrol.codeplex.com) を試すことができます。これは、'9 ではなく D3D10 のみを明示的にサポートする、私が作成した WPF コンテンツ コントロールです。
-mpg