Freigeben über


Exklusiver DirectDraw-Modus

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Hinweis

Dieses Thema gilt nur für VMR-7. In VMR-9 aktivieren Sie den exklusiven Modus, indem Sie Ihren eigenen Exklusivmodus-Zuweisungs-Presenter bereitstellen. Dies ist relativ einfach, wenn Sie die IVMRSurfaceAllocatorNotify9::AllocateSurfaceHelper-Methode verwenden. Das VMR9Allocator-Beispiel zeigt, wie sie einen benutzerdefinierten Zuweisungs-Presenter implementieren.

 

Im exklusiven DirectDraw-Modus übernimmt eine Anwendung die exklusive Kontrolle über die Grafikhardware. Dies ist nützlich für Anwendungen wie Spiele oder möglicherweise Vollbild-Videoanwendungen. Normalerweise erstellt die VMR die DirectDraw-Objekte und legt die Kooperativenebene auf normal fest. Um die VMR jedoch im exklusiven DirectDraw-Modus auszuführen, muss die Anwendung selbst das DirectDraw-Objekt und die primäre Oberfläche erstellen und SetCooperativeLevel aufrufen, um den exklusiven Modus anzugeben.

Die VMR verfügt über einen speziellen Zuweisungs-Presenter, mit dem sie im exklusiven DirectDraw-Modus ausgeführt werden kann. So konfigurieren Sie die VMR für die Verwendung dieses Zuweisungs-Presenters:

  1. Erstellen Sie den Filter graph, und fügen Sie die VMR mit der IFilterGraph::AddFilter-Methode hinzu. Ein Codebeispiel finden Sie unter VMR-Fensterloser Modus.

  2. Erstellen Sie den Exklusivmodus-Zuweisungs-Presenter:

    IVMRImagePresenterExclModeConfig* pExclModeConfig;
    CoCreateInstance(
            CLSID_AllocPresenterDDXclMode,
            NULL,
            CLSCTX_INPROC_SERVER,
            IID_IVMRImagePresenterExclModeConfig,
            (void**)&pExclModeConfig
            );
    
  3. Konfigurieren Sie den neuen Zuweisungs-Presenter:

    pExclModeConfig->SetXlcModeDDObjAndPrimarySurface(...);
    
  4. Schließen Sie den neuen Zuweisungs-Presenter an die VMR an.

  5. Erstellen Sie den Rest des Filterdiagramms auf die übliche Weise.

VMR-Betriebsmodi