2017-11-20 57 views
1

SharpDXのtexture2dのサイズを変更するにはどうすればよいですか? SharpDXを使用して画面を複製しています。MediaFoundationを使用してテクスチャをビデオファイルにエンコードします。私の問題は、アプリケーションをフルスクリーンで開き、システムの解像度とは異なる解像度で録画したときに空白の画面が表示されたときです。パフォーマンスを損なうことなくmediafoundationにエンコードする前に、テクスチャのサイズを変更できるより良い方法はありますか?ハードウェアアクセラレーションを使用しています。ありがとう。Texture2Dのサイズ変更SharpDX

答えて

0

Media Foundationをどのくらい正確に使用しているかによって異なりますが、Video Processor MFTを明示的に使用できます。 IMFMediaSession/IMFTopologyを使用する場合は、このMFTをトポロジに追加する必要があります。シンクライターを使用する場合は、このMFTでサンプルを初期化して処理してください。この場合、MFT_MESSAGE_SET_D3D_MANAGERを使用してDXマネージャーをMFTに供給する必要があります。

このMFTは、Windows 8以上でのみ使用できます。したがって、古いWindowsバージョンをサポートする必要がある場合は、Video Resizerを使用できますが、ハードウェアアクセラレーションはされていません。

テクスチャのサイズを変更するもう1つの方法は、目的のサイズのレンダリングターゲットを作成し、それにテクスチャを描画することです。その後、レンダーターゲットをエンコーダに供給する必要があります。

+0

こんにちはVulvritご返信ありがとうございます。最後のオプションは、私が後で何をしたかですが、適切にそれを行う方法については、ソースコードをオンラインで見つけることができません。私はこのd3dプログラミングの新人であり、まだ学習しています。ときどき私はC++で書かれたコードを見つけたので、それをC#に変換します。 – kripto

+0

はい私はMFT_MESSAGE_SET_D3D_MANAGERを使用します。 – kripto

+0

あなたの実装ではIMFMediaSession/IMFTopologyを使用していますか? – VuVirt

関連する問題