Tryb wykluczania DirectDraw
[Funkcja skojarzona z tą stroną, DirectShow, jest starszą funkcją. Został zastąpiony przez MediaPlayer, IMFMediaEnginei Audio/Video Capture w Media Foundation. Te funkcje zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer, IMFMediaEngine i Audio/Video Capture w programie Media Foundation zamiast DirectShow, jeśli to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]
Nuta
Ten temat dotyczy tylko maszyny wirtualnej VMR-7. W maszynie wirtualnej VMR-9 włącz tryb wyłączny, podając własny alokator-prezenter trybu wyłącznego. Jest to stosunkowo proste, jeśli używasz metody IVMRSurfaceAllocatorNotify9::AllocateSurfaceHelper. Przykład VMR9Allocator pokazuje, jak zaimplementować niestandardowy prezenter alokatora.
W trybie wyłączności DirectDraw aplikacja przejmuje wyłączną kontrolę nad sprzętem graficznym. Jest to przydatne w przypadku aplikacji, takich jak gry, lub aplikacje wideo pełnoekranowe. Zwykle maszyna wirtualna tworzy obiekty DirectDraw i ustawia poziom współpracy na normalny. Jednak aby uruchomić maszynę wirtualną VMR w trybie wyłączności DirectDraw, aplikacja musi utworzyć obiekt DirectDraw i powierzchnię podstawową, a następnie wywołać SetCooperativeLevel, aby określić tryb wyłączności.
Maszyna wirtualna ma specjalny prezenter alokatora, który umożliwia jego uruchamianie w trybie wyłącznym DirectDraw. Aby skonfigurować maszynę wirtualną do używania tego alokatora-prezentera:
Utwórz wykres filtru i dodaj do niego maszynę wirtualną przy użyciu metody IFilterGraph::AddFilter. Aby zapoznać się z przykładem kodu, zobacz tryb bez okien maszyny wirtualnej.
Utwórz alokator-prezenter trybu wyłącznego:
IVMRImagePresenterExclModeConfig* pExclModeConfig; CoCreateInstance( CLSID_AllocPresenterDDXclMode, NULL, CLSCTX_INPROC_SERVER, IID_IVMRImagePresenterExclModeConfig, (void**)&pExclModeConfig );
Skonfiguruj nowy prezenter alokatora:
pExclModeConfig->SetXlcModeDDObjAndPrimarySurface(...);
Podłącz nowy prezenter alokatora do maszyny wirtualnej.
Skompiluj resztę wykresu filtru w zwykły sposób.
Tematy pokrewne
-
tryby vmR operacji