Modalità esclusiva DirectDraw

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Nota

Questo argomento si applica solo a VMR-7. In VMR-9 è possibile abilitare la modalità esclusiva fornendo il proprio agente di presentazione in modalità esclusiva. Ciò è relativamente semplice se si usa il metodo IVMRSurfaceAllocatorNotify9::AllocateSurfaceHelper . L'esempio vmR9Allocator illustra come implementare un relatore allocatore personalizzato.

 

In Modalità esclusiva DirectDraw un'applicazione prende il controllo esclusivo dell'hardware grafico. Questo è utile per applicazioni come giochi, o forse applicazioni video a schermo intero. In genere, vmR crea gli oggetti DirectDraw e imposta il livello di cooperazione su normale. Tuttavia, per eseguire vmR in modalità esclusiva DirectDraw, l'applicazione stessa deve creare l'oggetto DirectDraw e la superficie primaria e chiamare SetCooperativeLevel per specificare la modalità esclusiva.

VmR ha un relatore speciale allocatore che consente di eseguire in modalità esclusiva DirectDraw. Per configurare vmR per usare questo allocatore-relatore:

  1. Creare Il grafico filtro e aggiungerlo usando il metodo IFilterGraph::AddFilter . Per un esempio di codice, vedere Modalità senza finestre vmR.

  2. Creare l'allocatore in modalità esclusiva:Create the Exclusive Mode allocator-presenter:

    IVMRImagePresenterExclModeConfig* pExclModeConfig;
    CoCreateInstance(
            CLSID_AllocPresenterDDXclMode,
            NULL,
            CLSCTX_INPROC_SERVER,
            IID_IVMRImagePresenterExclModeConfig,
            (void**)&pExclModeConfig
            );
    
  3. Configurare il nuovo allocatore-relatore:

    pExclModeConfig->SetXlcModeDDObjAndPrimarySurface(...);
    
  4. Collegare il nuovo relatore allocatore alla macchina virtuale.

  5. Compilare il resto del grafico del filtro nei modi consueti.

Modalità vmR dell'operazione