Método IDXGISwapChain1::P resent1 (dxgi1_2.h)

Presenta un marco en la pantalla de presentación.

Sintaxis

HRESULT Present1(
       UINT                          SyncInterval,
       UINT                          PresentFlags,
  [in] const DXGI_PRESENT_PARAMETERS *pPresentParameters
);

Parámetros

SyncInterval

Entero que especifica cómo sincronizar la presentación de un marco con el espacio en blanco vertical.

Para el modelo de transferencia de bloques de bits (bitblt) (DXGI_SWAP_EFFECT_DISCARD o DXGI_SWAP_EFFECT_SEQUENTIAL), los valores son:

  • 0 - La presentación se produce inmediatamente, no hay sincronización.
  • De 1 a 4: sincronice la presentación después del vertical en blanco.
Para el modelo de volteo (DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL), los valores son:
  • 0 - Cancele el tiempo restante en el marco presentado anteriormente y descarte este fotograma si se pone en cola un fotograma más reciente.
  • De 1 a 4: sincronice la presentación para al menos n espacios en blanco verticales.
Para obtener un ejemplo en el que se muestra cómo afectan los valores de intervalo de sincronización a una cola de presentación invertida, vea Comentarios.

Si la región de actualización ejecuta más de una salida (cada una representada por IDXGIOutput1), Present1 realiza la sincronización con la salida que contiene el sub rectángulo más grande del área de cliente de la ventana de destino.

PresentFlags

Valor entero que contiene opciones de presentación de cadena de intercambio. Estas opciones se definen mediante las constantes DXGI_PRESENT .

[in] pPresentParameters

Puntero a una estructura DXGI_PRESENT_PARAMETERS que describe los rectángulos actualizados y la información de desplazamiento del marco que se va a presentar.

Valor devuelto

Entre los valores devueltos posibles se incluyen: S_OK, DXGI_ERROR_DEVICE_REMOVED , DXGI_STATUS_OCCLUDED, DXGI_ERROR_INVALID_CALL o E_OUTOFMEMORY.

Comentarios

Una aplicación puede usar Present1 para optimizar la presentación especificando rectángulos de desplazamiento y desfasados. Cuando el tiempo de ejecución tiene información sobre estos rectángulos, el tiempo de ejecución puede realizar bitblts necesarios durante la presentación de forma más eficaz y pasar estos metadatos al Administrador de ventanas de escritorio (DWM). Después, DWM puede usar los metadatos para optimizar la presentación y pasar los metadatos a pantallas indirectas y servidores terminales para optimizar el tráfico a través de la conexión. Una aplicación debe limitar sus modificaciones solo a las regiones desfasadas que pasa a Present1, así como modificar toda la región sucia para evitar que se exponga el contenido de recursos no definido.

En el caso de las cadenas de intercambio del modelo de presentación invertida que se crean con el conjunto de valores DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL , una presentación correcta da como resultado un enlace de búfer de reserva 0 de la canalización de gráficos, excepto cuando se pasa la marca DXGI_PRESENT_DO_NOT_SEQUENCE en el parámetro Flags .

Para obtener información sobre cómo cambian los valores de datos al presentar contenido a la pantalla, consulte Conversión de datos para el espacio de colores.

Para obtener información sobre cómo llamar a Present1 cuando la aplicación usa varios subprocesos, consulta Consideraciones de varios subprocesos y Multithreading y DXGI.

Voltear cola del modelo de presentación

Supongamos que los fotogramas siguientes con valores de intervalo de sincronización se ponen en cola de los más antiguos (A) a los más recientes (E) antes de llamar a Present1.

R: 3, B: 0, C: 0, D: 1, E: 0

Cuando se llama a Present1, el tiempo de ejecución muestra el marco A solo para un intervalo en blanco vertical. El tiempo de ejecución finaliza el fotograma A al principio debido al intervalo de sincronización 0 en el fotograma B. A continuación, el tiempo de ejecución muestra el fotograma D para un intervalo en blanco vertical y, a continuación, marco E hasta que envíe una nueva presentación. El tiempo de ejecución descarta los fotogramas B y C.

Se muestra la frecuencia de actualización variable

Se trata de un requisito de frecuencia de actualización variable que muestra que el desgarro está habilitado. El método CheckFeatureSupport se puede usar para determinar si esta característica está disponible y para establecer las marcas necesarias, consulte las descripciones de DXGI_PRESENT_ALLOW_TEARING y DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING, y la frecuencia de actualización variable muestra/Vsync off section of DXGI 1.5 Improvements( Mejoras de DXGI 1.5).

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 y actualización de plataforma para Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2012 y actualización de plataforma para Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado dxgi1_2.h
Library Dxgi.lib

Consulte también

IDXGISwapChain1

Presente