次の方法で共有


DirectDraw 排他モード

ここでの説明は VMR-7 にのみ適用される。VMR-9 には、排他モードを有効にする他の手法がある。

DirectDraw 排他モードで、アプリケーションはグラフィック ハードウェアを排他的に制御する。これは、ゲームなどのアプリケーションや、多くのフルスクリーン ビデオ アプリケーションで役立つ。通常、VMR が DirectDraw オブジェクトを作成し、協調レベルを標準に設定する。しかし、DirectDraw 排他モードで VMR を実行するには、アプリケーション自体が DirectDraw オブジェクトとプライマリ サーフェイスを作成し、SetCooperativeLevel を呼び出して排他モードを指定する必要がある。

VMR には、DirectDraw 排他モードで実行できるようにする特殊なアロケータ プレゼンタがある。VMR がこのアロケータ プレゼンタを使うように設定するには、次の処理を行う。

  1. フィルタ グラフを作成し、IFilterGraph::AddFilter メソッドを使ってそのグラフに VMR を追加する。サンプル コードについては、「VMR ウィンドウレス モード」を参照すること。

  2. 排他モードのアロケータ プレゼンタを作成する。

    IVMRImagePresenterExclModeConfig* pExclModeConfig;
    CoCreateInstance(
            CLSID_AllocPresenterDDXclMode,
            NULL,
            CLSCTX_INPROC_SERVER,
            IID_IVMRImagePresenterExclModeConfig,
            (void**)&pExclModeConfig
            );
    
  3. 新しいアロケータ プレゼンタを設定する。

    pExclModeConfig->SetXlcModeDDObjAndPrimarySurface(...);
    
  4. 新しいアロケータ プレゼンタを VMR にプラグインする。

  5. フィルタ グラフの残りの部分を通常どおり作成する。