DXGI_PRESENT

Las constantes DXGI_PRESENT especifican opciones para presentar fotogramas a la salida.

Constante o valor Descripción
0
Presente un marco de cada búfer (empezando por el búfer actual) a la salida.
DXGI_PRESENT_DO_NOT_SEQUENCE
0x00000002UL
Presentar un marco del búfer actual a la salida. Use esta marca para que la presentación pueda usar la sincronización en blanco vertical en lugar de secuenciar búferes en la cadena de la manera habitual.
Nota: Si la aplicación que realiza la llamada establece la constante DXGI_PRESENT_DO_NOT_SEQUENCE en la primera operación presente (es decir, cuando no hay ningún búfer actual), el tiempo de ejecución omite esa operación actual y no llama al controlador.
DXGI_PRESENT_TEST
0x00000001UL
No presente el marco en la salida. El estado de la cadena de intercambio se probará y se devolverán los errores adecuados. DXGI_PRESENT_TEST está pensado para su uso solo cuando se cambia del estado inactivo; no lo use para determinar cuándo cambiar al estado inactivo porque hacerlo puede dejar la cadena de intercambio incapaz de salir del modo de pantalla completa.
DXGI_PRESENT_RESTART
0x00000004UL
Especifica que el tiempo de ejecución descartará los regalos pendientes en cola.
DXGI_PRESENT_DO_NOT_WAIT
0x00000008UL
Especifica que se producirá un error en el tiempo de ejecución de la presentación (es decir, se producirá un error en una llamada a IDXGISwapChain1::P resent1) con el código de error DXGI_ERROR_WAS_STILL_DRAWING si se bloquea el subproceso que realiza la llamada; el tiempo de ejecución devuelve DXGI_ERROR_WAS_STILL_DRAWING en lugar de dormir hasta que se resuelva la dependencia.
Direct3D 11: Este valor de enumeración se admite a partir de Windows 8.
DXGI_PRESENT_RESTRICT_TO_OUTPUT
0x00000010UL
Indica que el contenido de la presentación solo se mostrará en la salida concreta. El contenido no será visible en otras salidas. Por ejemplo, si el usuario intenta reubicar el contenido de vídeo en otra salida, el contenido del vídeo no será visible.
Direct3D 11: Este valor de enumeración se admite a partir de Windows 8.
Nota: Esta marca solo se debe usar con el efecto de intercambio DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL o DXGI_SWAP_EFFECT_FLIP_DISCARD. El uso de esta marca con otros efectos de intercambio está en desuso y es posible que no funcione en versiones futuras de Windows.
DXGI_PRESENT_STEREO_PREFER_RIGHT
0x00000020UL
Indica que si el estéreo presente debe reducirse a mono, se usa la visualización de los ojos derecho en lugar de la visualización de los ojos izquierdos.
Direct3D 11: Este valor de enumeración se admite a partir de Windows 8.
DXGI_PRESENT_STEREO_TEMPORARY_MONO
0x00000040UL
Indica que la presentación debe usar el búfer izquierdo como un búfer mono. Una aplicación llama al método IDXGISwapChain1::IsTemporaryMonoSupported para determinar si una cadena de intercambio admite "mono temporal".
Direct3D 11: Este valor de enumeración se admite a partir de Windows 8.
DXGI_PRESENT_USE_DURATION
0x00000100UL
Esta marca debe establecerse mediante aplicaciones multimedia que usan actualmente una duración actual personalizada (frecuencia de actualización personalizada). Consulte IDXGISwapChainMedia.
Nota: Este valor se admite a partir de Windows 8.1.
DXGI_PRESENT_ALLOW_TEARING
0x00000200UL
Permitir el desgarro es un requisito de las pantallas de frecuencia de actualización variable.
Las condiciones para usar DXGI_PRESENT_ALLOW_TEARING durante el presente son las siguientes:
  • La cadena de intercambio debe crearse con la marca DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING .
  • El intervalo de sincronización pasado a Present (o Present1) debe ser 0.
  • La marca DXGI_PRESENT_ALLOW_TEARING no se puede usar en una aplicación que se encuentra actualmente en modo exclusivo de pantalla completa (se establece mediante una llamada a SetFullscreenState(TRUE)). Solo se puede usar en modo de ventana. Para usar esta marca en aplicaciones Win32 de pantalla completa, la aplicación debe estar presente en una ventana sin bordes de pantalla completa y deshabilitar el cambio automático de pantalla completa ALT+ENTRAR mediante IDXGIFactory::MakeWindowAssociation. Las aplicaciones para UWP que entran en modo de pantalla completa mediante una llamada Windows::UI::ViewManagement::ApplicationView::TryEnterFullscreen() a son ventanas sin borde de pantalla completa y pueden usar la marca .
Llamar a Present (o Present1) con esta marca y no cumplir las condiciones anteriores producirá un error DXGI_ERROR_INVALID_CALL que se devuelve a la aplicación que realiza la llamada.

Comentarios

Las opciones de presentación se proporcionan durante la llamada IDXGISwapChain::P resent o IDXGISwapChain1::P resent1 . Los búferes se especifican en la descripción de la cadena de intercambio (consulte DXGI_SWAP_CHAIN_DESC o DXGI_SWAP_CHAIN_DESC1).

DXGI_PRESENT_RESTART solo es válido para cadenas de intercambio de modelo invertida y pantalla completa. Las aplicaciones pueden usar DXGI_PRESENT_RESTART para recuperarse de problemas en la reproducción, así como para descartar presentaciones previamente en cola. Descartar presentaciones previamente en cola es útil si esas presentaciones en cola son escenarios con ventanas. En concreto, la presentación en cola anterior podría haber asumido que la ventana es un tamaño antiguo (es decir, se produjo una operación de cambio de tamaño después del envío).

DXGI_PRESENT_RESTRICT_TO_OUTPUT solo es válido para las cadenas de intercambio que especificaron una salida determinada para restringir el contenido a cuando se crearon esas cadenas de intercambio (IDXGIFactory2::CreateSwapChainForHwnd). Si no hay ninguna salida a la que restringir, la marca no es válida.

DXGI_PRESENT_STEREO_PREFER_RIGHT indica que si el estéreo presente debe reducirse a mono el ojo derecho debe usarse en lugar del ojo izquierdo (predeterminado). Puedes usar esta marca si un lado es de mayor calidad (por ejemplo, si el par estéreo se sintetiza a partir de una imagen estándar).

DXGI_PRESENT_STEREO_TEMPORARY_MONO indica que el presente debe usar el búfer izquierdo como un búfer mono. Puede usar esta marca para evitar actualizar el búfer correcto cuando una aplicación no tiene contenido estéreo temporalmente. Debe usar esta marca siempre que sea posible, ya que permite una optimización significativa por parte del sistema operativo y, en algunas circunstancias, puede evitar artefactos de cambio de modo visibles.

Debe usar la marca DXGI_PRESENT_STEREO_TEMPORARY_MONO en preferencia para cambiar a una cadena de intercambio mono para la mayoría de las aplicaciones que prevé que usarán estéreo de nuevo. Debe equilibrar el uso de esta marca en aplicaciones que son extremadamente largas o que rara vez muestran estéreo contra la desventaja de la memoria no utilizada.

Nota

Las aplicaciones de pantalla completa que cambian a una cadena de intercambio mono provocan un cambio de modo que generalmente tiene artefactos visibles (por ejemplo, "parpadeando"). Sin embargo, es posible que no se admita mono temporal para cadenas de intercambio de pantalla completa.

 

Las marcas DXGI_PRESENT_STEREO_PREFER_RIGHT y DXGI_PRESENT_STEREO_TEMPORARY_MONO solo se aplican a cadenas de intercambio estéreo. Si los usa al presentar cadenas de intercambio mono, se produce una operación no válida.

Si usa la marca DXGI_PRESENT_STEREO_TEMPORARY_MONO cuando presenta una cadena de intercambio estéreo que no admite mono temporal, se produce un error, la cadena de intercambio no se muestra y la presentación devuelve DXGI_ERROR_INVALID_CALL.

Requisitos

Requisito Value
Encabezado
DXGI.h

Consulte también

Constantes DXGI