Compartir a través de


Modo exclusivo de DirectDraw

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Nota:

Este tema solo se aplica a VMR-7. En VMR-9, se habilita el modo exclusivo proporcionando su propio modo exclusivo asignador-moderador. Esto es relativamente sencillo si usa el método IVMRSurfaceAllocatorNotify9::AllocateSurfaceHelper . En el ejemplo VMR9Allocator se muestra cómo implementar un asignador-moderador personalizado.

 

En el modo exclusivo de DirectDraw, una aplicación toma el control exclusivo del hardware gráfico. Esto es útil para aplicaciones como juegos o quizás aplicaciones de vídeo de pantalla completa. Normalmente, VMR crea los objetos DirectDraw y establece el nivel cooperativo en normal. Sin embargo, para ejecutar VMR en modo exclusivo de DirectDraw, la propia aplicación debe crear el objeto DirectDraw y la superficie principal, y llamar a SetCooperativeLevel para especificar el modo exclusivo.

VmR tiene un presentador de asignador especial que le permite ejecutarse en modo exclusivo de DirectDraw. Para configurar VMR para que use este asignador-moderador:

  1. Cree el gráfico de filtros y agréguele el VMR mediante el método IFilterGraph::AddFilter . Para obtener un ejemplo de código, consulte Modo sin ventana de VMR.

  2. Cree el asignador-moderador del modo exclusivo:

    IVMRImagePresenterExclModeConfig* pExclModeConfig;
    CoCreateInstance(
            CLSID_AllocPresenterDDXclMode,
            NULL,
            CLSCTX_INPROC_SERVER,
            IID_IVMRImagePresenterExclModeConfig,
            (void**)&pExclModeConfig
            );
    
  3. Configure el nuevo asignador-moderador:

    pExclModeConfig->SetXlcModeDDObjAndPrimarySurface(...);
    
  4. Conecte el nuevo asignador-moderador a VMR.

  5. Cree el resto del gráfico de filtros de las maneras habituales.

Modos de operación de VMR