Skapa en enhet (Direct3D 9)
Skapa en Direct3D-enhet genom att först skapa ett Direct3D-objekt (se Direct3DCreate9). Alla renderingsenheter som skapats av ett Direct3D-objekt delar samma fysiska resurser. Om du skapar flera renderingsenheter från ett enda Direct3D-objekt uppstår extrema prestandapåföljder eftersom de delar samma maskinvara.
Initiera först värden för den D3DPRESENT_PARAMETERS struktur som används för att skapa Direct3D-enheten. I följande kodexempel anges ett fönsterprogram där bufferten på baksidan kopieras till den främre bufferten endast under en vertikal synkroniseringsåtgärd.
LPDIRECT3DDEVICE9 d3dDevice = NULL;
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;
Skapa sedan Direct3D-enheten. Följande IDirect3D9::CreateDevice-anrop anger standardadapter, en enhet för hårdvaruavbildningslager (HAL) och programvaruvertexbehandling.
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &d3dDevice ) ) )
return E_FAIL;
Observera att ett anrop för att skapa, släppa eller återställa enheten endast ska ske i samma tråd som fönsterproceduren i fokusfönstret.
När du har skapat enheten anger du dess tillstånd.
Relaterade ämnen