5

D2D と D3D11 を使用してビデオにテキストを描画する Media Foundation Transform を作成しようとしています。D3D11 リソースの上に D2D RenderTarget を構築しようとしていますが、残念ながら、D2D と D3D の相互運用のほとんどの手段には D3D10 が必要ですが、これはこのプロジェクトでは利用できません。

使用する必要があるパラメーターは次のとおりです: ID3D11Device *pDevice、ID3D11Texture2D *pInput、UINT uiInIndex、ID3D11Texture2D *pOutput、および UINT uiOutIndex。

このチュートリアルのアドバイスに従おうとしましたが、ID3D10Texture2D オブジェクトが必要であることがわかりました。これも私にとっては選択肢ではありません。

4

3 に答える 3

5

基本的に、フレームを入力テクスチャから出力テクスチャにコピーしてから、次の手順を実行してIDXGIサーフェスを取得します。

IDXGISurface *surface;
pOutput->QueryInterface(&surface);

次に、このチュートリアルの手順に従って、サーフェスをDirect2Dレンダリングターゲットに変換します。レンダリングターゲットを取得したら、チュートリアルでグラデーションを描画するのと同じ方法で描画できます。

于 2012-08-02T21:25:53.217 に答える
5

以前に同じ問題に遭遇しました。実行しているシステムによって異なります。

  1. Windows 7 では、Direct3D 10 のサポートのみが Direct2D と相互運用します。
  2. Windows 8 では、Direct2D は Direct3D 11 と相互運用できます。
于 2012-11-10T13:04:42.603 に答える
1

スワップ チェーンを作成しますか? XAML UI を使用する場合は、IDXGIFactory2::CreateSwapChainForCoreWindow または CreateSwapChainForComposition で作成できます。次に、d3d のものをレンダリングした後、この d3d チュートリアル サンプルのように、d2d ターゲットを作成し、その上にレンダリングできます。「sampleOverlay.cpp」を探します。

http://code.msdn.microsoft.com/windowsapps/Direct3D-Tutorial-Sample-08667fb0/sourcecode?fileId=44730&pathId=1319002242

于 2012-08-02T05:21:00.897 に答える