Método IDirect3DDevice9Ex::ResetEx (d3d9.h)

Redefine o tipo, o tamanho e o formato da cadeia de troca com todas as outras superfícies persistentes.

Sintaxe

HRESULT ResetEx(
  [in, out] D3DPRESENT_PARAMETERS *pPresentationParameters,
  [in, out] D3DDISPLAYMODEEX      *pFullscreenDisplayMode
);

Parâmetros

[in, out] pPresentationParameters

Tipo: D3DPRESENT_PARAMETERS*

Ponteiro para uma estrutura D3DPRESENT_PARAMETERS , descrevendo os novos parâmetros de apresentação. Esse valor não pode ser NULL.

Ao alternar para o modo de tela inteira, o Direct3D tentará encontrar um formato de área de trabalho que corresponda ao formato de buffer traseiro, de modo que os formatos de buffer traseiro e buffer frontal sejam idênticos (para eliminar a necessidade de conversão de cores).

Quando esse método retorna:

  • BackBufferCount, BackBufferWidth e BackBufferHeight estão definidos como zero.
  • BackBufferFormat é definido como D3DFORMAT somente para o modo em janelas; um modo de tela inteira deve especificar um formato.

[in, out] pFullscreenDisplayMode

Tipo: D3DDISPLAYMODEEX*

Ponteiro para uma estrutura de D3DDISPLAYMODEEX que descreve as propriedades do modo de exibição desejado. Esse valor deve ser fornecido para aplicativos de tela inteira, mas pode ser NULL para aplicativos em janelas.

Retornar valor

Tipo: HRESULT

O método pode retornar: D3D_OK, D3DERR_DEVICELOST ou D3DERR_DEVICEHUNG (consulte D3DERR).

Se esse método retornar D3DERR_DEVICELOST ou D3DERR_DEVICEHUNG, o aplicativo só poderá chamar IDirect3DDevice9Ex::ResetEx, IDirect3DDevice9Ex::CheckDeviceState ou liberar o ponteiro da interface; qualquer outra chamada à API causará uma exceção.

Comentários

Se uma chamada para IDirect3DDevice9Ex::ResetEx falhar, o dispositivo será colocado no estado perdido (conforme indicado por um valor retornado de D3DERR_DEVICELOST de uma chamada para IDirect3DDevice9Ex::CheckDeviceState). Consulte IDirect3DDevice9Ex::CheckDeviceState e Alterações de comportamento do dispositivo perdido para obter mais informações sobre o uso de IDirect3DDevice9Ex::ResetEx no contexto de dispositivos perdidos.

Ao contrário das versões anteriores do DirectX, chamar IDirect3DDevice9Ex::ResetEx não faz com que superfícies, texturas ou informações de estado sejam perdidas.

Sombreadores de pixel e sombreadores de vértice sobrevivem às chamadas IDirect3DDevice9Ex::ResetEx para Direct3D 9. Eles não precisam ser recriados explicitamente pelo aplicativo.

Há dois tipos diferentes de cadeias de troca: tela inteira ou janelas. Se a nova cadeia de troca for de tela inteira, o adaptador será colocado no modo de exibição que corresponde ao novo tamanho.

Os aplicativos podem esperar que as mensagens sejam enviadas a eles durante essa chamada (por exemplo, antes que essa chamada seja retornada); os aplicativos devem tomar precauções para não chamar o Direct3D no momento.

Uma chamada para IDirect3DDevice9Ex::ResetEx falhará se for chamada em um thread diferente daquele usado para criar o dispositivo que está sendo redefinido.

D3DFMT_UNKNOWN pode ser especificado para o formato de buffer de back do modo em janela ao chamar IDirect3D9Ex::CreateDeviceEx, IDirect3DDevice9Ex::ResetEx e IDirect3DDevice9::CreateAdditionalSwapChain. Isso significa que o aplicativo não precisa consultar o formato da área de trabalho atual antes de chamar IDirect3D9Ex::CreateDeviceEx para o modo em janela. Para o modo de tela inteira, o formato de buffer traseiro deve ser especificado. Definir BackBufferCount igual a zero (BackBufferCount = 0) resulta em um buffer traseiro.

Ao tentar redefinir mais de um adaptador de exibição em um grupo, defina pPresentationParameters para apontar para uma matriz de estruturas D3DPRESENT_PARAMETERS , uma para cada exibição no grupo de adaptadores.

Se um dispositivo multihead foi criado com D3DCREATE_ADAPTERGROUP_DEVICE, IDirect3DDevice9Ex::ResetEx requer uma matriz de estruturas D3DPRESENT_PARAMETERS em que cada estrutura deve especificar uma tela inteira. Para voltar ao modo de janela, o aplicativo deve destruir o dispositivo e recriar um dispositivo não multihead no modo de janela.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho d3d9.h
Biblioteca D3D9.lib

Confira também

Idirect3ddevice9ex