Tworzenie urządzenia (Direct3D 9)
Aby utworzyć urządzenie Direct3D, najpierw utwórz obiekt Direct3D (zobacz Direct3DCreate9). Wszystkie urządzenia renderowania utworzone przez obiekt Direct3D współdzielą te same zasoby fizyczne. Jeśli utworzysz wiele urządzeń renderowania z jednego obiektu Direct3D, zostaną naliczone ekstremalne kary za wydajność, ponieważ współużytkują ten sam sprzęt.
Najpierw zainicjuj wartości struktury D3DPRESENT_PARAMETERS używanej do tworzenia urządzenia Direct3D. Poniższy przykład kodu określa aplikację okienną, w której bufor wsteczny jest kopiowany do buforu frontu tylko podczas operacji synchronizacji pionowej.
LPDIRECT3DDEVICE9 d3dDevice = NULL;
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;
Następnie utwórz urządzenie Direct3D. Następujące wywołanie IDirect3D9::CreateDevice określa domyślny adapter, urządzenie warstwy abstrakcji sprzętu (HAL) i przetwarzanie wierzchołków za pomocą oprogramowania.
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &d3dDevice ) ) )
return E_FAIL;
Należy pamiętać, że wywołanie tworzenia, zwalniania lub resetowania urządzenia powinno być wykonywane tylko w wątku, w którym działa procedura okna z fokusem.
Po utworzeniu urządzenia ustaw jego stan.
Tematy pokrewne