DirectDraw 排他モード
ここでの説明は VMR-7 にのみ適用される。VMR-9 には、排他モードを有効にする他の手法がある。
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 にプラグインする。
フィルタ グラフの残りの部分を通常どおり作成する。