DirectDraw 排他モード
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
注意
このトピックは VMR-7 にのみ適用されます。 VMR-9 では、独自の排他モード アロケーター 発表者を指定して排他モードを有効にします。 IVMRSurfaceAllocatorNotify9::AllocateSurfaceHelper メソッドを使用する場合、これは比較的簡単です。 VMR9Allocator サンプルは、カスタム アロケーター 発表者を実装する方法を示しています。
DirectDraw 排他モードでは、アプリケーションはグラフィックス ハードウェアを排他的に制御します。 これは、ゲームなどのアプリケーションや、おそらく全画面表示のビデオ アプリケーションに役立ちます。 通常、VMR は DirectDraw オブジェクトを作成し、協調レベルを標準に設定します。 ただし、DirectDraw 排他モードで VMR を実行するには、アプリケーション自体で DirectDraw オブジェクトとプライマリ サーフェスを作成し、 SetCooperativeLevel を呼び出して排他モードを指定する必要があります。
VMR には、DirectDraw 排他モードで実行できる特別なアロケーター 発表者があります。 このアロケーター 発表者を使用するように VMR を構成するには:
フィルター グラフを作成し、 IFilterGraph::AddFilter メソッドを使用して VMR を追加します。 コード例については、「 VMR ウィンドウレス モード」を参照してください。
排他モード アロケーター 発表者を作成します。
IVMRImagePresenterExclModeConfig* pExclModeConfig; CoCreateInstance( CLSID_AllocPresenterDDXclMode, NULL, CLSCTX_INPROC_SERVER, IID_IVMRImagePresenterExclModeConfig, (void**)&pExclModeConfig );
新しいアロケーター 発表者を構成します。
pExclModeConfig->SetXlcModeDDObjAndPrimarySurface(...);
新しいアロケーター 発表者を VMR に接続します。
通常の方法でフィルター グラフの残りの部分を作成します。
関連トピック