Método IDirect3DSwapChain9::P resent (d3d9helper.h)

Presenta el contenido del siguiente búfer en la secuencia de búferes de reserva propiedad de la cadena de intercambio.

Sintaxis

HRESULT Present(
  [in] const RECT    *pSourceRect,
  [in] const RECT    *pDestRect,
  [in] HWND          hDestWindowOverride,
  [in] const RGNDATA *pDirtyRegion,
  [in] DWORD         dwFlags
);

Parámetros

[in] pSourceRect

Tipo: const RECT*

Puntero al rectángulo de origen (consulte RECT). Use NULL para presentar toda la superficie. Este valor debe ser NULL a menos que la cadena de intercambio se haya creado con D3DSWAPEFFECT_COPY. Si el rectángulo supera la superficie de origen, el rectángulo se recorta en la superficie de origen.

[in] pDestRect

Tipo: const RECT*

Puntero al rectángulo de destino en coordenadas de cliente (consulte RECT). Este valor debe ser NULL a menos que la cadena de intercambio se haya creado con D3DSWAPEFFECT_COPY. Use NULL para rellenar todo el área de cliente. Si el rectángulo supera el área cliente de destino, el rectángulo se recorta en el área de cliente de destino.

[in] hDestWindowOverride

Tipo: HWND

Ventana de destino cuyo área de cliente se toma como destino para esta presentación. Si este valor es NULL, el tiempo de ejecución usa el miembro hDeviceWindow de D3DPRESENT_PARAMETERS para la presentación.

[in] pDirtyRegion

Tipo: const RGNDATA*

Este valor debe ser NULL a menos que la cadena de intercambio se haya creado con D3DSWAPEFFECT_COPY. Consulta Voltear superficies (Direct3D 9).

Si este valor no es NULL, la región contenida se expresa en coordenadas de búfer de reserva. Los rectángulos dentro de la región son el conjunto mínimo de píxeles que deben actualizarse. Este método tiene en cuenta estos rectángulos al optimizar la presentación copiando solo los píxeles dentro de la región, o algún conjunto de rectángulos adecuadamente expandido. Se trata de una ayuda solo para la optimización y la aplicación no debe depender de la región que se copia exactamente. La implementación puede optar por copiar todo el rectángulo de origen.

[in] dwFlags

Tipo: DWORD

Permite a la aplicación solicitar que el método devuelva inmediatamente cuando el controlador informa de que no puede programar una presentación. Los valores válidos son 0 o cualquier combinación de D3DPRESENT_DONOTWAIT o D3DPRESENT_LINEAR_CONTENT.

  • Si dwFlags = 0, este método se comporta como hizo antes de Direct3D 9. Presente girará hasta que el hardware esté libre, sin devolver un error.
  • Si dwFlags = D3DPRESENT_DONOTWAIT y el hardware está ocupado procesando o esperando un intervalo de sincronización vertical, el método devolverá D3DERR_WASSTILLDRAWING.
  • Si dwFlags = D3DPRESENT_LINEAR_CONTENT, la corrección gamma se realiza desde el espacio lineal a sRGB para las cadenas de intercambio con ventanas. Esta marca solo surtirá efecto cuando el controlador exponga D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION (consulta Gamma (Direct3D 9)). Las aplicaciones deben especificar esta marca si el formato de búfer de fondo es de punto flotante de 16 bits para que coincida con el modo de ventana presente en el comportamiento gamma de pantalla completa.

Valor devuelto

Tipo: HRESULT

Si el método se ejecuta correctamente, el valor devuelto es D3D_OK. Si se produce un error en el método, el valor devuelto puede ser uno de los siguientes: D3DERR_DEVICELOST, D3DERR_DRIVERINTERNALERROR, D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, E_OUTOFMEMORY.

Comentarios

El método Present es un acceso directo a Present. Present se ha actualizado para tomar una marca que permite a la aplicación solicitar que el método devuelva inmediatamente cuando el controlador informa de que no puede programar una presentación.

Si es necesario, se aplica una operación de ajuste para transferir los píxeles dentro del rectángulo de origen al rectángulo de destino en el área cliente de la ventana de destino.

Se producirá un error si se llama a entre los pares BeginScene y EndScene , a menos que el destino de representación no sea el destino de representación actual (por ejemplo, el búfer de reserva que obtiene al crear una cadena de intercambio adicional). Este es un nuevo comportamiento para Direct3D 9.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado d3d9helper.h (incluya D3D9.h)
Library D3D9.lib

Consulte también

IDirect3DSwapChain9

Reset