共用方式為


DirectDraw 獨佔模式

[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

注意

本主題僅適用于 VMR-7。 在 VMR-9 中,您可以藉由提供自己的獨佔模式配置器-簡報者來啟用獨佔模式。 如果您使用 IVMRSurfaceAllocatorNotify9::AllocateSurfaceHelper 方法,這相當簡單。 VMR9Allocator 範例示範如何實作自訂配置器簡報者。

 

在 DirectDraw 獨佔模式中,應用程式會獨佔控制圖形硬體。 這適用于遊戲或全螢幕視訊應用程式等應用程式。 一般而言,VMR 會建立 DirectDraw 物件,並將合作層級設定為一般。 不過,若要在 DirectDraw 獨佔模式中執行 VMR,應用程式本身必須建立 DirectDraw 物件和主要介面,然後呼叫 SetCocolLevel 來指定獨佔模式。

VMR 具有特殊的配置器簡報者,可讓它在 DirectDraw 獨佔模式中執行。 若要將 VMR 設定為使用此配置器簡報者:

  1. 建立 Filter Graph,並使用 IFilterGraph::AddFilter 方法將 VMR 新增至其中。 如需程式碼範例,請參閱 VMR 無視窗模式

  2. 建立獨佔模式配置器簡報者:

    IVMRImagePresenterExclModeConfig* pExclModeConfig;
    CoCreateInstance(
            CLSID_AllocPresenterDDXclMode,
            NULL,
            CLSCTX_INPROC_SERVER,
            IID_IVMRImagePresenterExclModeConfig,
            (void**)&pExclModeConfig
            );
    
  3. 設定新的配置器簡報者:

    pExclModeConfig->SetXlcModeDDObjAndPrimarySurface(...);
    
  4. 將新的配置器簡報者插入 VMR。

  5. 以一般方式建置其餘篩選圖形。

作業的 VMR 模式