estructura de D3DPRESENT_PARAMETERS

Describe los parámetros de presentación.

Sintaxis

typedef struct D3DPRESENT_PARAMETERS {
  UINT                BackBufferWidth;
  UINT                BackBufferHeight;
  D3DFORMAT           BackBufferFormat;
  UINT                BackBufferCount;
  D3DMULTISAMPLE_TYPE MultiSampleType;
  DWORD               MultiSampleQuality;
  D3DSWAPEFFECT       SwapEffect;
  HWND                hDeviceWindow;
  BOOL                Windowed;
  BOOL                EnableAutoDepthStencil;
  D3DFORMAT           AutoDepthStencilFormat;
  DWORD               Flags;
  UINT                FullScreen_RefreshRateInHz;
  UINT                PresentationInterval;
} D3DPRESENT_PARAMETERS, *LPD3DPRESENT_PARAMETERS;

Miembros

BackBufferWidth

Tipo: UINT

Ancho de los búferes posteriores de la nueva cadena de intercambio, en píxeles. Si Windowed es FALSE (la presentación es de pantalla completa), este valor debe ser igual al ancho de uno de los modos de presentación enumerados que se encuentran a través de EnumAdapterModes. Si Windowed es TRUE y BackBufferWidth o BackBufferHeight es cero, se toma la dimensión correspondiente del área de cliente de hDeviceWindow (o la ventana de enfoque, si hDeviceWindow es NULL).

BackBufferHeight

Tipo: UINT

Alto de los búferes posteriores de la nueva cadena de intercambio, en píxeles. Si Windowed es FALSE (la presentación es de pantalla completa), este valor debe ser igual al alto de uno de los modos de presentación enumerados que se encuentran a través de EnumAdapterModes. Si Windowed es TRUE y BackBufferWidth o BackBufferHeight es cero, se toma la dimensión correspondiente del área de cliente de hDeviceWindow (o la ventana de enfoque, si hDeviceWindow es NULL).

BackBufferFormat

Tipo: D3DFORMAT

Formato del búfer de reserva. Para obtener más información sobre los formatos, vea D3DFORMAT. Este valor debe ser uno de los formatos de destino de representación validados por CheckDeviceType. Puede usar GetDisplayMode para obtener el formato actual.

De hecho, se puede especificar D3DFMT_UNKNOWN para BackBufferFormat mientras está en modo de ventana. Esto indica al tiempo de ejecución que use el formato actual del modo de visualización y elimine la necesidad de llamar a GetDisplayMode.

En el caso de las aplicaciones con ventanas, el formato de búfer de reserva ya no necesita coincidir con el formato de modo de presentación porque el hardware puede realizar la conversión de color ahora (si el hardware admite la conversión de color). El conjunto de posibles formatos de búfer de reserva está restringido, pero el tiempo de ejecución permitirá que cualquier formato de búfer de reserva válido se presente a cualquier formato de escritorio. (Hay el requisito adicional de que el dispositivo sea operable en el escritorio; los dispositivos normalmente no funcionan en 8 bits por modos de píxel).

Las aplicaciones de pantalla completa no pueden realizar la conversión de colores.

BackBufferCount

Tipo: UINT

Este valor puede estar comprendido entre 0 y D3DPRESENT_BACK_BUFFERS_MAX (o D3DPRESENT_BACK_BUFFERS_MAX_EX cuando se usa Direct3D 9Ex). Los valores de 0 se tratan como 1. Si no se puede crear el número de búferes de reserva, el tiempo de ejecución producirá un error en la llamada al método y rellenará este valor con el número de búferes de reserva que se podrían crear. Como resultado, una aplicación puede llamar al método dos veces con la misma estructura de D3DPRESENT_PARAMETERS y esperar que funcione la segunda vez.

Se produce un error en el método si no se puede crear un búfer de reserva. El valor de BackBufferCount influye en qué conjunto de efectos de intercambio se permiten. En concreto, cualquier efecto de intercambio D3DSWAPEFFECT_COPY requiere que haya exactamente un búfer de reserva.

MultiSampleType

Tipo: D3DMULTISAMPLE_TYPE

Miembro del tipo enumerado D3DMULTISAMPLE_TYPE . El valor debe ser D3DMULTISAMPLE_NONE a menos que SwapEffect se haya establecido en D3DSWAPEFFECT_DISCARD. El muestreo múltiple solo se admite si el efecto de intercambio es D3DSWAPEFFECT_DISCARD.

MultiSampleQuality

Tipo: DWORD

Nivel de calidad. El intervalo válido está comprendido entre cero y uno menor que el nivel devuelto por pQualityLevels usado por CheckDeviceMultiSampleType. Si se pasa un valor mayor, se devuelve el error D3DERR_INVALIDCALL. Los valores emparejados de destinos de representación o de superficies de galería de símbolos de profundidad y D3DMULTISAMPLE_TYPE deben coincidir.

SwapEffect

Tipo: D3DSWAPEFFECT

Miembro del tipo enumerado D3DSWAPEFFECT . El tiempo de ejecución garantizará la semántica implícita en relación con el comportamiento del intercambio de búfer; Por lo tanto, si Windowed es TRUE y SwapEffect se establece en D3DSWAPEFFECT_FLIP, el tiempo de ejecución creará un búfer de reserva adicional y copiará lo que se convierta en el búfer frontal en el momento de la presentación.

D3DSWAPEFFECT_COPY requiere que BackBufferCount esté establecido en 1.

D3DSWAPEFFECT_DISCARD se aplicará en el entorno de ejecución de depuración rellenando cualquier búfer con ruido después de presentarlo.

Diferencias entre Direct3D9 y Direct3D9Ex:

  • En Direct3D9Ex, se agrega D3DSWAPEFFECT_FLIPEX para designar cuando una aplicación adopta el modo de volteo. Es decir, whan el marco de una aplicación se pasa en modo de ventana (en lugar de copiado) al Administrador de ventanas de escritorio (DWM) para la composición. El modo flip proporciona un ancho de banda de memoria más eficaz y permite que una aplicación aproveche las estadísticas presentes en pantalla completa. No cambia el comportamiento de la pantalla completa. El comportamiento del modo volteo está disponible a partir de Windows 7.

 

hDeviceWindow

Tipo: HWND

La ventana del dispositivo determina la ubicación y el tamaño del búfer de reserva en pantalla. Esto lo usa Direct3D cuando el contenido del búfer de reserva se copia en el búfer frontal durante el presente.

  • Para una aplicación de pantalla completa, se trata de un identificador de la ventana superior (que es la ventana de enfoque).

    En el caso de las aplicaciones que usan varios dispositivos de pantalla completa (como un sistema multimonitor), exactamente un dispositivo puede usar la ventana de enfoque como ventana del dispositivo. Todos los demás dispositivos deben tener ventanas de dispositivo únicas.

  • En el caso de una aplicación en modo de ventana, este identificador será la ventana de destino predeterminada para Present. Si este identificador es NULL, se tomará la ventana de enfoque.

Tenga en cuenta que el tiempo de ejecución no realiza ningún intento para reflejar los cambios del usuario en el tamaño de la ventana. El búfer de reserva no se restablece implícitamente cuando se restablece esta ventana. Sin embargo, el método Present realiza un seguimiento automático de los cambios en la posición de la ventana.

Ventana

Tipo: BOOL

TRUE si la aplicación se ejecuta en ventana; FALSE si la aplicación se ejecuta en pantalla completa.

EnableAutoDepthStencil

Tipo: BOOL

Si este valor es TRUE, Direct3D administrará los búferes de profundidad de la aplicación. El dispositivo creará un búfer de galería de símbolos de profundidad cuando se cree. El búfer de galería de símbolos de profundidad se establecerá automáticamente como destino de representación del dispositivo. Cuando se restablece el dispositivo, el búfer de galería de símbolos de profundidad se destruirá y volverá a crear automáticamente en el nuevo tamaño.

Si EnableAutoDepthStencil es TRUE, AutoDepthStencilFormat debe ser un formato de galería de símbolos de profundidad válido.

AutoDepthStencilFormat

Tipo: D3DFORMAT

Miembro del tipo enumerado D3DFORMAT . Formato de la superficie de galería de símbolos de profundidad automática que creará el dispositivo. Este miembro se omite a menos que EnableAutoDepthStencil sea TRUE.

Marcas

Tipo: DWORD

Una de las constantes D3DPRESENTFLAG .

FullScreen_RefreshRateInHz

Tipo: UINT

Velocidad a la que el adaptador de pantalla actualiza la pantalla. El valor depende del modo en el que se ejecuta la aplicación:

  • Para el modo con ventana, la frecuencia de actualización debe ser 0.
  • Para el modo de pantalla completa, la frecuencia de actualización es una de las tasas de actualización devueltas por EnumAdapterModes.

PresentationInterval

Tipo: UINT

Velocidad máxima a la que se pueden presentar los búferes de reserva de la cadena de intercambio al búfer frontal. Para obtener una explicación detallada de los modos y los intervalos admitidos, consulte D3DPRESENT.

Requisitos

Requisito Value
Encabezado
D3D9Types.h

Consulte también

Estructuras de Direct3D

CreateDevice

CreateAdditionalSwapChain

Presente

Reset