Mode exclusif DirectDraw

Notes

Cette rubrique s’applique uniquement à VMR-7. Dans VMR-9, vous activez le mode exclusif en fournissant votre propre allocateur en mode exclusif-présentateur. Cela est relativement simple si vous utilisez la méthode IVMRSurfaceAllocatorNotify9 :: AllocateSurfaceHelper . L’exemple VMR9Allocator montre comment implémenter un Allocator-Presenter personnalisé.

En mode exclusif DirectDraw, une application prend le contrôle exclusif du matériel graphique. Cela est utile pour les applications telles que les jeux, ou peut-être des applications vidéo plein écran. Normalement, VMR crée les objets DirectDraw et définit le niveau coopératif sur normal. Toutefois, pour exécuter VMR en mode exclusif DirectDraw, l’application elle-même doit créer l’objet DirectDraw et la surface principale, puis appeler SetCooperativeLevel pour spécifier le mode exclusif.

VMR possède un Allocator-Presenter spécial qui lui permet de s’exécuter en mode exclusif DirectDraw. Pour configurer VMR afin d’utiliser cet Allocator-presenter :

  1. créez le filtre Graph et ajoutez VMR à celui-ci à l’aide de la méthode IFilterGraph :: AddFilter . Pour obtenir un exemple de code, consultez mode sans fenêtre VMR.

  2. Créer l’allocateur en mode exclusif-présentateur :

    IVMRImagePresenterExclModeConfig* pExclModeConfig;
    CoCreateInstance(
            CLSID_AllocPresenterDDXclMode,
            NULL,
            CLSCTX_INPROC_SERVER,
            IID_IVMRImagePresenterExclModeConfig,
            (void**)&pExclModeConfig
            );
    
  3. Configurer le nouvel Allocator-présentateur :

    pExclModeConfig->SetXlcModeDDObjAndPrimarySurface(...);
    
  4. Branchez le nouvel Allocator-Presenter dans VMR.

  5. Générez le reste du graphique de filtre de la manière habituelle.

Modes de fonctionnement VMR