Método IDXGISwapChain::P resent (dxgi.h)

Presenta una imagen representada al usuario.

Sintaxis

HRESULT Present(
  UINT SyncInterval,
  UINT Flags
);

Parámetros

SyncInterval

Tipo: UINT

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 espacio en blanco vertical.
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 estraba más de una salida (cada una representada por IDXGIOutput), Present 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.

Flags

Tipo: UINT

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

Valor devuelto

Tipo: HRESULT

Entre los valores devueltos posibles se incluyen: S_OK, DXGI_ERROR_DEVICE_RESET o DXGI_ERROR_DEVICE_REMOVED (consulte DXGI_ERROR), DXGI_STATUS_OCCLUDED (consulte DXGI_STATUS) o D3DDDIERR_DEVICEREMOVED.

Nota El método Present puede devolver DXGI_ERROR_DEVICE_REMOVED o D3DDDIERR_DEVICEREMOVED si se ha quitado físicamente una tarjeta de vídeo del equipo o se ha producido una actualización del controlador para la tarjeta de vídeo.
 

Comentarios

A partir de Direct3D 11.1, considere la posibilidad de usar IDXGISwapChain1::P resent1 porque, a continuación, puede usar rectángulos sucios y el rectángulo de desplazamiento en la presentación de la cadena de intercambio y, como tal, usar menos ancho de banda de memoria y como resultado menos energía del sistema. Para obtener más información sobre el uso de rectángulos sucios y el rectángulo de desplazamiento en la presentación de la cadena de intercambio, consulte Uso de rectángulos sucios y el rectángulo de desplazamiento en la presentación de la cadena de intercambio.

Para obtener el mejor rendimiento al voltear búferes de cadena de intercambio en una aplicación de pantalla completa, consulte Sugerencias de rendimiento de aplicaciones de pantalla completa.

Dado que llamar a Present puede hacer que el subproceso de representación espere en el subproceso de bomba de mensajes, tenga cuidado al llamar a este método en una aplicación que use varios subprocesos. Para obtener más información, consulte Consideraciones de multithreading.

Diferencias entre Direct3D 9 y Direct3D 10:

Especificar DXGI_PRESENT_TEST en el parámetro Flags es análogo a IDirect3DDevice9::TestCooperativeLevel en Direct3D 9.

Para las cadenas de intercambio de modelos de presentación invertida que se crean con el DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL o DXGI_SWAP_EFFECT_DISCARD conjunto de valores, una presentación correcta desenlace el búfer de reserva 0 (normalmente establecido por OMSetRenderTargets) desde 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.

Voltear la cola del modelo de presentación

Supongamos que los siguientes fotogramas 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 Present.

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

Cuando se llama a Present, el tiempo de ejecución muestra el marco A para solo 1 intervalo en blanco vertical. El tiempo de ejecución finaliza el fotograma A temprano debido al intervalo de sincronización 0 en el marco B. A continuación, el tiempo de ejecución muestra el marco 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 desmontaje 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 se muestra la frecuencia de actualización variable.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado dxgi.h
Library DXGI.lib

Consulte también

IDXGISwapChain