Método IDirect3DDevice9::Reset (d3d9helper.h)
Restablece el tipo, el tamaño y el formato de la cadena de intercambio.
Sintaxis
HRESULT Reset(
[in, out] D3DPRESENT_PARAMETERS *pPresentationParameters
);
Parámetros
[in, out] pPresentationParameters
Tipo: D3DPRESENT_PARAMETERS*
Puntero a una estructura de D3DPRESENT_PARAMETERS , que describe los nuevos parámetros de presentación. Este valor no puede ser NULL.
Al cambiar al modo de pantalla completa, Direct3D intentará encontrar un formato de escritorio que coincida con el formato de búfer de reserva, de modo que los formatos de búfer de reserva y búfer frontal sean idénticos (para eliminar la necesidad de conversión de color).
Cuando este método devuelve:
- BackBufferCount, BackBufferWidth y BackBufferHeight se establecen en cero.
- BackBufferFormat se establece en D3DFMT_UNKNOWN solo para el modo con ventanas; Un modo de pantalla completa debe especificar un formato.
Valor devuelto
Tipo: HRESULT
Entre los valores devueltos posibles se incluyen: D3D_OK, D3DERR_DEVICELOST, D3DERR_DEVICEREMOVED, D3DERR_DRIVERINTERNALERROR o D3DERR_OUTOFVIDEOMEMORY (consulte D3DERR).
Comentarios
Si se produce un error en una llamada a IDirect3DDevice9::Reset , el dispositivo se colocará en el estado "perdido" (como se indica mediante un valor devuelto de D3DERR_DEVICELOST desde una llamada a IDirect3DDevice9::TestCooperativeLevel) a menos que ya esté en el estado "no reset" (como se indica mediante un valor devuelto de D3DERR_DEVICENOTRESET desde una llamada a IDirect3DDevice9::TestCooperativeLevel). Consulte IDirect3DDevice9::TestCooperativeLevel y Dispositivos perdidos (Direct3D 9) para obtener más información sobre el uso de IDirect3DDevice9::Reset en el contexto de los dispositivos perdidos.
Llamar a IDirect3DDevice9::Reset hace que se pierdan todas las superficies de memoria de textura, se vaciarán las texturas administradas de la memoria de vídeo y se perderá toda la información de estado. Antes de llamar al método IDirect3DDevice9::Reset para un dispositivo, una aplicación debe liberar los destinos de representación explícitos, superficies de galería de símbolos de profundidad, cadenas de intercambio adicionales, bloques de estado y recursos de D3DPOOL_DEFAULT asociados al dispositivo.
Hay dos tipos diferentes de cadenas de intercambio: pantalla completa o ventana. Si la nueva cadena de intercambio es de pantalla completa, el adaptador se colocará en el modo de presentación que coincida con el nuevo tamaño.
Las aplicaciones de Direct3D 9 pueden esperar que los mensajes se envíen a ellos durante esta llamada (por ejemplo, antes de que se devuelva esta llamada); Las aplicaciones deben tomar precauciones para no llamar a Direct3D en este momento. Además, cuando se produce un error en IDirect3DDevice9::Reset , los únicos métodos válidos a los que se puede llamar son IDirect3DDevice9::Reset, IDirect3DDevice9::TestCooperativeLevel y las distintas funciones miembro release. Llamar a cualquier otro método puede dar lugar a una excepción.
Se producirá un error en una llamada a IDirect3DDevice9::Reset si se llama a en un subproceso diferente al usado para crear el dispositivo que se está restableciendo.
Los sombreadores de píxeles y los sombreadores de vértices sobreviven a las llamadas IDirect3DDevice9::Reset para Direct3D 9. No es necesario que la aplicación vuelva a crearla explícitamente.
D3DFMT_UNKNOWN se puede especificar para el formato de búfer back en modo ventana al llamar a IDirect3D9::CreateDevice, IDirect3DDevice9::Reset e IDirect3DDevice9::CreateAdditionalSwapChain. Esto significa que la aplicación no tiene que consultar el formato de escritorio actual antes de llamar a IDirect3D9::CreateDevice para el modo ventanado. Para el modo de pantalla completa, se debe especificar el formato del búfer de reserva. Establecer BackBufferCount igual a cero (BackBufferCount = 0) da como resultado un búfer de reserva.
Al intentar restablecer más de un adaptador de pantalla en un grupo, establezca pPresentationParameters para que apunte a una matriz de estructuras de D3DPRESENT_PARAMETERS , una para cada presentación del grupo de adaptadores.
Si se creó un dispositivo de varios encabezados con D3DCREATE_ADAPTERGROUP_DEVICE, IDirect3DDevice9::Reset requiere una matriz de estructuras de D3DPRESENT_PARAMETERS donde cada estructura debe especificar una pantalla de pantalla completa. Para volver al modo con ventanas, la aplicación debe destruir el dispositivo y volver a crear un dispositivo que no sea multihead en modo con ventanas.
Requisitos
Plataforma de destino | Windows |
Encabezado | d3d9helper.h (incluya D3D9.h) |
Library | D3D9.lib |