Método IDirectDrawSurface7::Flip (ddraw.h)

Hace que la memoria de la superficie asociada a la superficie DDSCAPS_BACKBUFFER se asote a la superficie del búfer frontal.

Sintaxis

HRESULT Flip(
  [in] LPDIRECTDRAWSURFACE7 unnamedParam1,
  [in] DWORD                unnamedParam2
);

Parámetros

[in] unnamedParam1

Puntero a la interfaz IDirectDrawSurface7 para una superficie arbitraria en la cadena de volteo. El valor predeterminado de este parámetro es NULL, en cuyo caso DirectDraw recorre los búferes en el orden en que se adjuntan entre sí. Si este parámetro no es NULL, DirectDraw voltea a la superficie especificada, en lugar de la siguiente superficie de la cadena de volteo. Se produce un error al voltear si la superficie especificada no es miembro de la cadena de volteo.

[in] unnamedParam2

Combinación de marcas que especifican opciones de volteo. Se definen las marcas siguientes:

DDFLIP_DONOTWAIT

En las interfaces IDirectDrawSurface7 , el valor predeterminado es DDFLIP_WAIT. Si desea invalidar el valor predeterminado y el tiempo de uso cuando el acelerador esté ocupado (como se indica en el valor devuelto DDERR_WASSTILLDRAWING), use DDFLIP_DONOTWAIT.

DDFLIP_EVEN

Para su uso solo al mostrar vídeo en una superficie superpuesta. La nueva superficie contiene datos del campo par de una señal de vídeo. Esta marca no se puede usar con la marca DDFLIP_ODD.

DDFLIP_STEREO

DirectDraw voltea y muestra una superficie estéreo principal. Cuando se establece esta marca, el autoflipping estéreo está habilitado. El hardware se voltea automáticamente entre los búferes izquierdo y derecho durante cada actualización de pantalla.

DDFLIP_INTERVAL2

DDFLIP_INTERVAL3

DDFLIP_INTERVAL4

Las marcas DDFLIP_INTERVAL2, DDFLIP_INTERVAL3 y DDFLIP_INTERVAL4 indican el número de reversos verticales que se deben esperar entre cada volteo. El valor predeterminado es 1. DirectDraw devuelve DERR_WASSTILLDRAWING para cada superficie implicada en el volteo hasta que se haya producido el número especificado de reversos verticales. Si se establece DDFLIP_INTERVAL2, DirectDraw se voltea en cada segunda sincronización vertical; si DDFLIP_INTERVAL3, en cada tercera sincronización; y si DDFLIP_INTERVAL4, en cada cuarta sincronización.

Estas marcas solo son efectivas si DDCAPS2_FLIPINTERVAL bit se establece en el miembro dwCaps2 de la estructura DDCAPS que se devuelve para el hardware de visualización.

DDFLIP_NOVSYNC

Hace que DirectDraw realice el volteo físico lo más cerca posible de la siguiente línea de examen. Las operaciones posteriores que implican las dos superficies volteadas no comprueban si el volteo físico ha finalizado; es decir, no devuelven DDERR_WASSTILLDRAWING por ese motivo (pero pueden por otras razones). Esto permite que una aplicación realice volteos con una frecuencia mayor que la frecuencia de actualización del monitor, pero podría introducir artefactos visibles.

Si DDCAPS2_FLIPNOVSYNC no se establece en el miembro dwCaps2 de la estructura DDCAPS que se devuelve para el hardware de visualización, DDFLIP_NOVSYNC no tiene ningún efecto.

DDFLIP_ODD

Para su uso solo al mostrar vídeo en una superficie superpuesta. La nueva superficie contiene datos del campo impar de una señal de vídeo. Esta marca no se puede usar con la marca DDFLIP_EVEN.

DDFLIP_WAIT

Normalmente, si no se puede configurar el volteo porque el estado del hardware de pantalla no es adecuado, el error DDERR_WASSTILLDRAWING devuelve inmediatamente y no se produce ningún volteo. Establecer esta marca hace que Flip siga intentando voltear si recibe el error de DDERR_WASSTILLDRAWING de la capa de abstracción de hardware (HAL). Flip no devuelve hasta que se haya configurado correctamente la operación de volteo u otro error, como DDERR_SURFACEBUSY, se devuelve.

Valor devuelto

Si el método se realiza correctamente, el valor devuelto se DD_OK.

Si se produce un error, el método puede devolver uno de los siguientes valores de error:

  • DDERR_GENERIC
  • DDERR_INVALIDOBJECT
  • DDERR_INVALIDPARAMS
  • DDERR_NOFLIPHW
  • DDERR_NOTFLIPPABLE
  • DDERR_SURFACEBUSY
  • DDERR_SURFACELOST
  • DDERR_UNSUPPORTED
  • DDERR_WASSTILLDRAWING

Comentarios

Con IDirectDrawSurface7, el comportamiento predeterminado de Flip es esperar a que finalice el acelerador. Por lo tanto, en condiciones predeterminadas, Flip nunca devuelve DDERR_WASSTILLDRAWING. Si desea ver los códigos de error y no esperar hasta que la operación de volteo se realice correctamente, use la marca DDFLIP_DONOTWAIT.

Solo se puede llamar a Flip para una superficie que tenga las funcionalidades de DDSCAPS_FLIP y DDSCAPS_FRONTBUFFER. La memoria de presentación asociada anteriormente con el búfer frontal está asociada al búfer de reserva.

El parámetro lpDDSurfaceTargetOverride se usa en casos poco frecuentes en los que el búfer de reserva no es el búfer que debe convertirse en el búfer frontal. Normalmente, este parámetro es NULL.

Voltear siempre se sincroniza con el espacio en blanco vertical. Si la superficie se ha asignado a un puerto de vídeo, este método actualiza la superficie de superposición visible y la superficie de destino del puerto de vídeo.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado ddraw.h
Library Ddraw.lib
Archivo DLL Ddraw.dll

Consulte también

IDirectDrawSurface7