Hvordan skape enhet i Direct3D Rende

Direct3D er en komponent i Microsoft DirectX rammeverk. Det gir et konsistent grensesnitt for tilgang til 3D-maskinvare og programvare enheter, og styres ved hjelp av et programmeringsspråk som har direkte eller wrapper-basert støtte for det. Programmering i 3D-miljøer krever opprettelse av et rør til Direct3D rendringsanordningen tidlig kode slik at informasjonen kan skrives inn i systemet for ombygging og display. Kjent som IDirect3DDevice9, er dette grensesnittet utvidbar og stammer fra Component Object Model IUnknown grensesnitt. Den lar deg tegne primitiver gjennom koden, last ressurser og komplekse objekter, endre applikasjonsvariabler, justere gamma og fargepalett innstillinger og bruke shadere til teksturer.

Bruksanvisning

1 Lag en struct i koden som definerer alle parametere som Direct3D enheten vil bli initialisert. DirectX API definerer en struct kjent som D3DPRESENT_PARAMETERS som inneholder alle relevante felt. Rådfør deg SDK hjelpefilen for D3DPRPESENT_PARAMETERS og IDirect3DDevice9 konstruktøren. Hjelp-filen er en CHM dokumentet i SDK install.

2 Lag en peker til IDirect3DDevice9 grensesnitt som ikke er initialisert. Du vil bruke denne pekeren referanse til Singleton IDirect3DDevice9 strukturen i minnet. Lag en nullpeker med denne koden: IDirect3DDevice9 * p_Device = NULL ;.

3 Bestem parametrene som du ønsker å initialisere Direct3D Device. Du må konsultere SDK referanse for en fullstendig liste over parametere for din versjon av DirectX, men nødvendig parametere er adapteren type, akselerasjon modus, en referanse til programvinduet i Windows, et toppunkt behandling modus, den D3DPRESENT_PARAMETERS struktur, og pekeren til enheten ble opprettet i trinn 2.

4 Pass alle parametere gjennom Direct3D-grensesnittet. En hresult vil bli returnert, angi om operasjonen var vellykket eller mislykket. For eksempel:
hresult = p_d3di-> CreateDevice (D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, appWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, og p_PresentParams, og p_Device) ;.

5 Utfør en sjekk på hresult av handlingen ved hjelp av flytkontroll operatører. Fortsett bare hvis du har en Direct3D-enhet til å skrive til for å hindre et program fra å krasje. For eksempel:
if (FAILED (hresult)) {// Deallocate alle ressurser, skjerm feilmelding boks, avslutte program}.