Erstellen eines Geräts (Direct3D 9)
Um ein Direct3D-Gerät zu erstellen, erstellen Sie zuerst ein Direct3D-Objekt (siehe Direct3DCreate9). Alle von einem Direct3D-Objekt erstellten Renderinggeräte verwenden dieselben physischen Ressourcen. Wenn Sie mehrere Renderinggeräte aus einem einzelnen Direct3D-Objekt erstellen, entstehen extreme Leistungseinbußen, da sie die gleiche Hardware gemeinsam nutzen.
Initialisieren Sie zunächst Werte für die D3DPRESENT_PARAMETERS Struktur, die zum Erstellen des Direct3D-Geräts verwendet wird. Im folgenden Codebeispiel wird eine Fensteranwendung angegeben, bei der der Hintergrundpuffer nur während eines vertikalen Synchronisierungsvorgangs in den Frontpuffer kopiert wird.
LPDIRECT3DDEVICE9 d3dDevice = NULL;
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;
Erstellen Sie als Nächstes das Direct3D-Gerät. Der folgende IDirect3D9::CreateDevice Aufruf gibt den Standardadapter, ein HAL-Gerät (Hardware Abstraction Layer) und die Softwarevertexverarbeitung an.
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &d3dDevice ) ) )
return E_FAIL;
Beachten Sie, dass ein Aufruf zum Erstellen, Freigeben oder Zurücksetzen des Geräts nur im selben Thread wie die Fensterprozedur des Fokusfensters erfolgen sollte.
Legen Sie nach dem Erstellen des Geräts den Status fest.
Verwandte Themen