estructura DD_FLIPDATA (ddrawint.h)
La estructura DD_FLIPDATA contiene información necesaria para hacer un volteo.
Sintaxis
typedef struct _DD_FLIPDATA {
PDD_DIRECTDRAW_GLOBAL lpDD;
PDD_SURFACE_LOCAL lpSurfCurr;
PDD_SURFACE_LOCAL lpSurfTarg;
DWORD dwFlags;
HRESULT ddRVal;
VOID *Flip;
PDD_SURFACE_LOCAL lpSurfCurrLeft;
PDD_SURFACE_LOCAL lpSurfTargLeft;
} *PDD_FLIPDATA, DD_FLIPDATA;
Miembros
lpDD
Apunta a la estructura DD_DIRECTDRAW_GLOBAL que describe el dispositivo del controlador.
lpSurfCurr
Apunta a la estructura DD_SURFACE_LOCAL que describe la superficie actual.
lpSurfTarg
Apunta a la estructura DD_SURFACE_LOCAL que describe la superficie de destino; es decir, la superficie a la que debe voltear el controlador.
dwFlags
Indica un conjunto de marcas que proporcionan al controlador detalles del volteo. Este miembro puede ser un OR bit a bit de las marcas siguientes:
Marca | Significado |
---|---|
DDFLIP_DONOTWAIT | Especifica que se devuelva DDERR_WASSTILLDRAWING si el acelerador está ocupado. El valor predeterminado es DDFLIP_WAIT. |
DDFLIP_EVEN | Superficie a la que apunta el miembro lpSurfTarg solo contiene el campo par de datos de vídeo. Esta marca solo es válida cuando la superficie es una superposición y es mutuamente excluyente de DDFLIP_ODD. |
DDFLIP_ODD | Superficie a la que apunta el miembro lpSurfTarg solo contiene el campo impar de datos de vídeo. Esta marca solo es válida cuando la superficie es una superposición y es mutuamente excluyente de DDFLIP_EVEN. |
DDFLIP_NOVSYNC | El controlador debe realizar el volteo y volver inmediatamente. Normalmente, el búfer de reserva actual (que solía ser el búfer frontal) sigue siendo visible hasta el siguiente retroceso vertical. Las operaciones posteriores que implican las superficies a las que apuntan los miembros lpSurfCurr y lpSurfTarg no comprueban si el volteo físico ha finalizado. Esto permite a una aplicación realizar volteos con una frecuencia mayor que la frecuencia de actualización del monitor, aunque podría introducir artefactos visibles. |
DDFLIP_INTERVAL2 | El controlador debe realizar el cambio en todas las demás sincronizaciones verticales. Debe devolver DDERR_WASSTILLDRAWING hasta que se haya producido el segundo retroceso vertical. Esta marca es mutuamente excluyente de DDFLIP_INTERVAL3 y DDFLIP_INTERVAL4. |
DDFLIP_INTERVAL3 | El controlador debe realizar el cambio en cada tercera sincronización vertical. Debe devolver DDERR_WASSTILLDRAWING hasta que se haya producido el tercer retroceso vertical. Esta marca es mutuamente excluyente de DDFLIP_INTERVAL2 y DDFLIP_INTERVAL4. |
DDFLIP_INTERVAL4 | El controlador debe realizar el cambio en cada cuarta sincronización vertical. Debe devolver DDERR_WASSTILLDRAWING hasta que se haya producido el cuarto retroceso vertical. Esta marca es mutuamente excluyente de DDFLIP_INTERVAL2 y DDFLIP_INTERVAL3. |
DDFLIP_STEREO | Especifica que se habilite el autoflipping estéreo (el hardware se voltea automáticamente entre los búferes izquierdo y derecho durante cada actualización de pantalla). |
DDFLIP_WAIT | Especifica que no se devolverá hasta que se produzca el volteo o se produzca un error. |
ddRVal
Especifica la ubicación en la que el controlador escribe el valor devuelto de la devolución de llamada DdFlip . Un código de retorno de DD_OK indica que se ha realizado correctamente. Para obtener más información, vea Valores devueltos para DirectDraw.
Flip
Lo usa la API de Microsoft DirectDraw y el controlador no debe rellenarlo.
lpSurfCurrLeft
Apunta a la estructura DD_SURFACE_LOCAL que describe la superficie izquierda actual.
lpSurfTargLeft
Apunta a la estructura DD_SURFACE_LOCAL que describe la superficie de destino izquierda a la que se va a voltear.
Requisitos
Requisito | Valor |
---|---|
Header | ddrawint.h (incluya Winddi.h) |