Partilhar via


Criando um dispositivo (Direct3D 9)

Para criar um dispositivo Direct3D, primeiro crie um objeto Direct3D (consulte Direct3DCreate9). Todos os dispositivos de renderização criados por um objeto Direct3D compartilham os mesmos recursos físicos. Se você criar vários dispositivos de renderização a partir de um único objeto Direct3D, penalidades extremas de desempenho serão incorridas porque eles compartilham o mesmo hardware.

Primeiro, inicialize valores para a estrutura D3DPRESENT_PARAMETERS usada para criar o dispositivo Direct3D. O exemplo de código a seguir especifica um aplicativo em janela onde o buffer traseiro é copiado para o buffer frontal apenas durante uma operação de sincronização vertical.

LPDIRECT3DDEVICE9 d3dDevice = NULL;

D3DPRESENT_PARAMETERS d3dpp; 

ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed   = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;

Em seguida, crie o dispositivo Direct3D. A seguinte chamada IDirect3D9::CreateDevice especifica o adaptador padrão, um dispositivo HAL (camada de abstração de hardware) e processamento de vértice de software.

if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
                                    D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                    &d3dpp, &d3dDevice ) ) )
    return E_FAIL;

Observe que uma chamada para criar, liberar ou redefinir o dispositivo deve acontecer somente no mesmo thread que o procedimento da janela de foco.

Depois de criar o dispositivo, defina seu estado.

dispositivos Direct3D