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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: a lo largo de 2024, eliminaremos gradualmente los problemas de GitHub como mecanismo de comentarios para el contenido y lo reemplazaremos por un nuevo sistema de comentarios. Para obtener más información, consulte:Enviar y ver comentarios de