Método IDirect3DDevice9::Reset (d3d9.h)

Redefine o tipo, o tamanho e o formato da cadeia de troca.

Sintaxe

HRESULT Reset(
  [in, out] D3DPRESENT_PARAMETERS *pPresentationParameters
);

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 de fundo, para que os formatos de buffer traseiro e buffer frontal sejam idênticos (para eliminar a necessidade de conversão de cores).

Quando este método retorna:

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

Retornar valor

Tipo: HRESULT

Os valores retornados possíveis incluem: D3D_OK, D3DERR_DEVICELOST, D3DERR_DEVICEREMOVED, D3DERR_DRIVERINTERNALERROR ou D3DERR_OUTOFVIDEOMEMORY (consulte D3DERR).

Comentários

Se uma chamada para IDirect3DDevice9::Reset falhar, o dispositivo será colocado no estado "perdido" (conforme indicado por um valor retornado de D3DERR_DEVICELOST de uma chamada para IDirect3DDevice9::TestCooperativeLevel), a menos que ele já esteja no estado "não redefinido" (conforme indicado por um valor retornado de D3DERR_DEVICENOTRESET de uma chamada para IDirect3DDevice9::TestCooperativeLevel). Consulte IDirect3DDevice9::TestCooperativeLevel and Lost Devices (Direct3D 9) para obter mais informações sobre o uso de IDirect3DDevice9::Reset no contexto de dispositivos perdidos.

Chamar IDirect3DDevice9::Reset faz com que todas as superfícies de memória de textura sejam perdidas, texturas gerenciadas sejam liberadas da memória de vídeo e todas as informações de estado sejam perdidas. Antes de chamar o método IDirect3DDevice9::Reset para um dispositivo, um aplicativo deve liberar quaisquer destinos de renderização explícitos, superfícies de estêncil de profundidade, cadeias de troca adicionais, blocos de estado e D3DPOOL_DEFAULT recursos associados ao dispositivo.

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 Direct3D 9 podem esperar que as mensagens sejam enviadas a eles durante essa chamada (por exemplo, antes que essa chamada seja retornada); No momento, os aplicativos devem tomar precauções para não chamar o Direct3D. Além disso, quando IDirect3DDevice9::Reset falha, os únicos métodos válidos que podem ser chamados são IDirect3DDevice9::Reset, IDirect3DDevice9::TestCooperativeLevel e as várias funções membro Release. Chamar qualquer outro método pode resultar em uma exceção.

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

Sombreadores de pixel e sombreadores de vértice sobrevivem a chamadas IDirect3DDevice9::Reset para Direct3D 9. Eles não precisam ser recriados explicitamente pelo aplicativo.

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

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 tiver sido criado com D3DCREATE_ADAPTERGROUP_DEVICE, IDirect3DDevice9::Reset exigirá uma matriz de estruturas D3DPRESENT_PARAMETERS em que cada estrutura deve especificar uma tela inteira. Para voltar para o 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 (inclua D3D9.h)
Biblioteca D3D9.lib

Confira também

D3DPRESENT_PARAMETERS

D3DSWAPEFFECT

IDirect3DDevice9

IDirect3DDevice9::Present

Multihead (Direct3D 9)