directx api

Figyelem! Ez az oldal nem frissül. Új verzió: shatalov.su

Végül már befejeződött vizsgálata C ++, és létrehozott egy munkadarab programot használjuk WinAPI. Mától kezdjük a második szakaszban - a tanulmány DirectX API (API - a felület programozására az alkalmazás), amely a DirectX SDK.

Az elkövetkező hónapokban nézzük meg az alapvető funkciók DirectX API-t. Ezután lehet majd próbálni, hogy egy egyszerű játék.

Azt akarom mondani egyszerre, hogy fogunk tanulni - nem nehéz, de nagyon-nagyon kemény! Be kell majd méltó erőfeszítéseket. Mi lesz, hogy keményen dolgoznak, hogy mindent megtanulni. De hidd el, az eredmény megéri!

DirectX alapul modellje COM (C omponent O bject M odel - Component Object Model). A COM, minden osztály örökli az egyik alap osztály IUnknown. Ez az osztály a három módszer. Ennek megfelelően minden származtatott osztályok (beleértve azokat is, amelyek részei a DirectX API) öröklik képességek IUnknown. Fogunk csak egyféle módon ennek az osztálynak Release. Ez a módszer felszabadítja a memóriát, hogy tartotta a tárgyat. Például, van egy mutatót IDirect3D objektum (az alap osztály Direct3D) - D3D. Memóriát szabadíthat fel, meg kell hívni az eljárás Release:

Ne felejtsük el, használja a törlendő DirectX tárgyak nem lehet!.

Nem fogunk még kitérni COM. Készítsen COM objektumok nehéz. De ez könnyen kezelhető COM. Minden DirectX objektumok olyan objektumok COM.

Osztályok nevezzük COM interfészek. Mielőtt minden felület neve az I betű: IDirect3DDevice9, IDirect3DVertexBuffer9. Eleinte úgy tűnhet, hogy egy csomó interfészek. De nem ez a helyzet. A Direct3D csak húsz interfészek (osztály).

Vegye figyelembe, hogy nincs új művelet létrehozásához használt tárgyak (felületek példányban). Az a tény, hogy van egy különleges módszer az alap osztály a IUnknown, amely lehetővé teszi, hogy bármilyen COM interfészen keresztül. Amint ez megtörténik, akkor hatályán kívül maradnak a mai leckét. Általánosságban elmondható, hogy az ilyen lehetőségeket COM nem fogjuk használni (kivéve a módszer Release) - DirectX API fejlesztők elrejtette minden csatlakoztatva COM, ahelyett, hogy egy kényelmes felületen módszerekkel.

Még egy dolog, ami a felület nevét: a különböző képzési anyagok jelenhetnek meg a következő kódot:

És így minden felületen. Mindhárom vonal nem ugyanaz a dolog - hozzon létre egy mutatót IDirect3DVolumeTexture. Csak az utolsó két sor használja a felülírás IDirect3DVolumeTexture9 * segítségével typedef. Mi mindig az első lehetőséget.

És még egy fontos dolog: az összes interfész (objektumok) jönnek létre a mutatókat! Miért van az, még mindig megvitatják.

DirectX 9 vs. DirectX 10 és DirectX 11

Megvizsgáljuk a DirectX 9. DirectX 10 és DirectX 11, sok különbség. Van működnek a dolgok egy kicsit másképp. Tizedik verzió, valószínűleg nem is tanulni. Talán egyenesen a 11. Miért van az, hogy megtudjuk, a DirectX 9 Az első: DirectX 9 telt az idő próbáját - 6 éves, ez nem vicc. Másodszor, a legtöbb Windows-felhasználók még mindig a Windows XP és ezzel az operációs rendszer nem képes futtatni alkalmazásokat készített DirectX 10 és DirectX 11 Ezzel szemben, a Windows Vista és a Windows 7, akkor a program futtatásához DirectX 9.

Abból, amit, mit készülnek Direct3D

DirectX API több részből áll. Most mi érdekli az a része, amely felelős a grafika. A DirectX grafikus reagál Direct3D.

Direct3D DirectX modul felelős a háromdimenziós grafika. A DirectX nincs modul megjelenítéséhez kétdimenziós grafika. A kétdimenziós grafikonon jelenik útján Direct3D. Korábban volt egy külön modul DirectDrawot. És a tizenegyedik verzióját fogja tartoznak a reinkarnáció Direct2D.

Interfészek. Mint korábban írtam, van húsz darab. Interface - rendszeres osztályban. Nem kap hozzáférést az adatokhoz felületek, de mindegyik felület olyan módszereket alkalmaz. Minden kölcsönhatás DirectX interfészek útján történik módszerek.

A fő felületen Direct3D IDirect3DDevice9. Ennek alapján a felületen, a teljes program épül. A IDirect3DDevice9 több mint száz módszerek. Más módszerek a felület sokkal kisebb. Ez történik három módon.

Ismét: interfészek - ezek közönséges osztályok egy sor módszerek.

A következő eleme a Direct3D - funkciót. Vagyis ezek a funkciók nem kötődnek semmilyen felületen. Tartalmaz egy kis - csak négyen.

A legfontosabb funkciója - Direct3DCreate9. Ez a funkció lehetővé teszi, hogy hozzon létre egy objektumot IDirect3D9 (alap felület, amely kezdődik a program). Ez a funkció lehetővé teszi, hogy ne kerüljön a belsejébe COM. Ha ez nem, akkor meg kell használni a COM eszközöket IDirect3D9 felület.

A következő rész - makrók. A makrók funkciók segítségével definiálható meghatározni. Például:

Arkanoid

directx api

fényképezőgép
directx api

sejteket
directx api

sprite
directx api