Condividi tramite


Creazione di un dispositivo (Direct3D 9)

Per creare un dispositivo Direct3D, creare prima di tutto 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 per le prestazioni perché condividono lo stesso hardware.

Innanzitutto, inizializzare i valori per la struttura D3DPRESENT_PARAMETERS usata per creare il dispositivo Direct3D. Nell'esempio di codice seguente viene specificata un'applicazione con finestra in cui il buffer nascosto 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 seguente IDirect3D9::CreateDevice specifica l'adattatore predefinito, un dispositivo HAL (Hardware Abstraction Layer) e l'elaborazione dei vertici 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 essere eseguita solo sullo stesso thread della procedura della finestra con il focus.

Dopo aver creato il dispositivo, impostarne lo stato.

Dispositivi Direct3D