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 de reserva 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 del hDeviceWindow (o la ventana de enfoque, si hDeviceWindow es NULL).
-
BackBufferHeight
-
Tipo: UINT
-
Alto de los búferes de reserva 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 del hDeviceWindow (o la ventana de enfoque, si hDeviceWindow es NULL).
-
BackBufferFormat
-
Tipo: D3DFORMAT
-
Formato de 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. Puedes usar GetDisplayMode para obtener el formato actual.
De hecho, D3DFMT_UNKNOWN se pueden especificar para BackBufferFormat mientras están en modo de ventana. Esto indica al tiempo de ejecución que use el formato de modo de presentación actual y elimina 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 ahora el hardware puede realizar la conversión de color (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 se presente cualquier formato de búfer de reserva válido a cualquier formato de escritorio. (Hay el requisito adicional de que el dispositivo sea operable en el escritorio; los dispositivos normalmente no funcionan en modos de 8 bits por píxel).
Las aplicaciones de pantalla completa no pueden realizar la conversión de color.
-
BackBufferCount
-
Tipo: UINT
-
Este valor puede estar entre 0 y D3DPRESENT_BACK_BUFFERS_MAX (o D3DPRESENT_BACK_BUFFERS_MAX_EX al usar 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á 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 de 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 una vez presentado.
Diferencias entre Direct3D9 y Direct3D9Ex:
- En Direct3D9Ex, D3DSWAPEFFECT_FLIPEX se agrega para designar cuándo 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 de volteo proporciona un ancho de banda de memoria más eficaz y permite a una aplicación aprovechar las estadísticas presentes en pantalla completa. No cambia el comportamiento de pantalla completa. El comportamiento del modo de 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 la ventana del dispositivo. Todos los demás dispositivos deben tener ventanas de dispositivo únicas.
Para una aplicación en modo de ventana, este identificador será la ventana de destino predeterminada de Present. Si este identificador es NULL, se tomará la ventana de foco.
Tenga en cuenta que el tiempo de ejecución no realiza ningún intento para reflejar los cambios de 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 ejecuta 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 ventanas, 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, vea D3DPRESENT.
Requisitos
| Requisito | Value |
|---|---|
| Encabezado |
|
Vea también