Yshopnoosa.com

Hur man skapar Direct3D Rendering enheten

Direct3D är en komponent i Microsoft DirectX ramen. Det ger ett konsekvent gränssnitt för åtkomst till 3D hårdvara och mjukvara enheter och styrs med hjälp av ett programmeringsspråk som har direkt eller wrapper-baserat stöd för den. Programmering i 3D-miljöer kräver om ett rör till Direct3D rendering enheten tidigt i kod så att informationen kan skrivas in i systemet för ändring och uppvisning. Känd som IDirect3DDevice9, är gränssnittet utbyggbara och härledda från Component Object Model IUnknown-gränssnitt. Det kan du rita primitiver genom koden, ladda resurser och komplexa objekt, ändra programvariabler, justera gamma och färg palett och gälla din texturer shaders.

Instruktioner

1 Skapa en struct i koden som definierar alla parametrar som Direct3D-enheten kommer att initieras. DirectX API definierar en struct känd som D3DPRESENT_PARAMETERS som innehåller alla fält. Konsultera din SDK hjälpfilen för D3DPRPESENT_PARAMETERS och konstruktorn IDirect3DDevice9. Hjälpfilen är ett chm dokument ligger i SDK installationskatalog.

2 Skapa en pekare till gränssnittet IDirect3DDevice9 som inte har initierats. Du kommer att använda denna pekare för att referera singleton IDirect3DDevice9 struktur i minnet. Skapa en null-pekare med denna kod: IDirect3DDevice9 * p_Device = NULL;.

3 Fastställa de parametrar som du vill initiera Direct3D-enheten. Du kommer att behöva konsultera SDK referensen för en fullständig lista med parametrar för din version av DirectX, men nödvändiga parametrar är korttypen, acceleration läge, ett handtag till programmets fönster i Windows, ett läge som vertex, D3DPRESENT_PARAMETERS struktur och pekaren till enheten skapade i steg 2.

4 Passera alla parametrar genom din Direct3D gränssnitt. Ett hresult returneras, ange om åtgärden lyckades eller inte. Till exempel:HRESULT = p_d3di -> CreateDevice (D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, appWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, & p_PresentParams, & p_Device);.

5 Utföra en kontroll på hresult åtgärden flöde kontroll aktörer. Fortsätt bara om du har en Direct3D enhet att skriva till för att hindra programmet från att krascha. Till exempel:IF(Failed(HRESULT)) {/ / Deallocate alla resurser, Visa misslyckande meddelanderuta, avsluta programmet}.