Direct3D er en komponent i Microsoft DirectX rammeverket . Det gir et konsistent grensesnitt for tilgang 3D hardware og software 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 etablering av et rør til Direct3D rendering enheten tidlig i kode slik informasjon 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 primitive gjennom koden , last ressurser og komplekse objekter , endre programmet variabler , justere gamma og fargepalett , og gjelder shaders til teksturer. Instruksjoner
en
Opprett 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 med SDK hjelp-filen for D3DPRPESENT_PARAMETERS og IDirect3DDevice9 konstruktør . Hjelp-filen er en . CHM dokumentet i SDK install katalogen.
2
Lag en peker til IDirect3DDevice9 grensesnitt som ikke er initialisert. Du vil bruke denne pekeren å referere 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 full liste over parametere for din versjon av DirectX , men nødvendige parameterne er adapteren type, akselerasjonen modus , et håndtak til programmets vindu i Windows , et toppunkt prosessering modus, D3DPRESENT_PARAMETERS struktur, og pekeren til enheten ble opprettet i trinn to .
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 bruker flytkontroll operatører. Fortsett kun om du har en Direct3D -enhet til å skrive til for å hindre et program fra å krasje . For eksempel : en
if ( FAILED ( HRESULT ) ) { //deallocate alle ressurser , skjerm feilmelding boks, avslutter program }
.