Condividi tramite


Creazione di un dispositivo (Direct3D 9)

Per creare un dispositivo Direct3D, creare prima un oggetto Direct3D (vedere Direct3DCreate9). Tutti i dispositivi di rendering creati da un oggetto Direct3D condividono le stesse risorse fisiche. Se si creano più dispositivi di rendering da un singolo oggetto Direct3D, verranno applicate sanzioni estreme sulle prestazioni perché condividono lo stesso hardware.

Prima di tutto, inizializzare i valori per la struttura D3DPRESENT_PARAMETERS usata per creare il dispositivo Direct3D. Nell'esempio di codice seguente viene specificata un'applicazione finestrata in cui il buffer indietro viene copiato nel buffer anteriore solo durante un'operazione di sincronizzazione verticale.

LPDIRECT3DDEVICE9 d3dDevice = NULL;

D3DPRESENT_PARAMETERS d3dpp; 

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

Creare quindi il dispositivo Direct3D. La chiamata IDirect3D9::CreateDevice specifica l'adattatore predefinito, un dispositivo HAL (Hardware Abstraction Layer) e l'elaborazione del vertice software.

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

Si noti che una chiamata per creare, rilasciare o reimpostare il dispositivo deve verificarsi solo sullo stesso thread della procedura della finestra dello stato attivo.

Dopo aver creato il dispositivo, impostarne lo stato.

Dispositivi Direct3D