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:
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.
Erstellen Sie den Exklusivmodus-Zuweisungs-Presenter:
IVMRImagePresenterExclModeConfig* pExclModeConfig; CoCreateInstance( CLSID_AllocPresenterDDXclMode, NULL, CLSCTX_INPROC_SERVER, IID_IVMRImagePresenterExclModeConfig, (void**)&pExclModeConfig );
Konfigurieren Sie den neuen Zuweisungs-Presenter:
pExclModeConfig->SetXlcModeDDObjAndPrimarySurface(...);
Schließen Sie den neuen Zuweisungs-Presenter an die VMR an.
Erstellen Sie den Rest des Filterdiagramms auf die übliche Weise.
Zugehörige Themen